Die Kette von "Atari-High-Level-Emulatoren" MagicMac, MagicMacX und AtariX ist schon länger eine Sackgasse, seit letzteres nicht mehr auf neueren Macs funktioniert.
Aus eher unangenehmem, gegegeben Anlaß (Bewegungseinschränkung, man wird alt, und manche werden halt ein paar Dekaden früher alt als andere, wenn sie überhaupt so alt werden) habe ich gerade viel Zeit, und was hilft gegen Depri? Alkohol oder Hacken.
Jedenfalls hatte ich schon lange den Wunsch, meinem Stiefkind AtariX einen soliden Nachfolger zu geben, und das ist für mich kein proprietäres System wie macOS (bisher mit Carbon) oder Windows, sondern Linux. Weil der Name "Magic Linux" vergeben ist, habe ich "MagicOnLinux" geschrieben.
Hier ist das Repository für MagicOnLinux. Es enthält nur Quellen, das Programm sollte sich aber zumindest unter Ubuntu einfach bauen lassen. Wie man an das "root file system" kommt, ist auch beschrieben. Und nein, komfortabel ist das (noch) nicht, und schön schon gar nicht.
https://gitlab.com/AndreasK/magiclinuxFür das "debugging" habe ich einen Disassembler benötigt. Ich habe deshalb meinen von GEMDOS nach Linux portiert:
https://gitlab.com/AndreasK/disass68k(Scheiß-Little-Endian...)
[Andere Emulatoren]
Angesichts von Hatari und Aranym ist mein Emulator eher uninteressant, aber ich habe das ja auch für mich gemacht. Meiner ist etwa 20mal so schnell wie Hatari und etwa so schnell wie Aranym ohne JIT. Aranym-jit ist unerreicht, etwa 20- bis 40mal so schnell wie meiner. Grafikausgabe ist noch schneller, weil teilweise nativ. Von der FPU-Emulation ganz zu schweigen...
Wobei Hatari mit Emutos prima, out-of-the-box mit toll geschriebener Anleitung stabil läuft und ich dagegen bei Aranym ohne Afros nur geflucht habe. Mit Afros lief es dann. Mit dem Mauszeiger haben aber Hatari und Aranym derbe Problem, und Drag&Dop geht auch nicht.
[technisches Blabla]
Die letzte, leidlich funktionierende Version, AtariX, habe ich als Grundlage genommen. Ich habe einiges rausgeworfen, aber auch viel hinzugefügt, insbesondere die Fähigkeit, "disk images" sehr einfach einzubinden.
Beim Portieren war nicht nur die proprietäre Apple-API ein Problem, sondern auch meine Kurzsichtigkeit, im Jahre 1994 auf 32-Bit-Call-Back-Zeiger zu setzen. Die habe auch dringelassen und mit einem abenteuerlichen Verfahren weiterverwendet, weil ich keine lauffähige Atari-"tool chain" mehr greifbar hatte, um den MagiC-Kernel zu ändern und neu zu compilieren. Als das System dann so halbwegs lief, habe ich im Emulator den MagiC-Kernel zumindest besser ans neue Dateisystem anpassen können. Ich war nämlich 1994 so kurzsichtig gewesen, das fileID/vRefNum-Schema für das Dateisystem zu verwenden, weil das so bequem schien. Dämlich. Aber ich war halt jung und brauchte das Geld.
Überhaupt war das Neuschreiben des "host file system" eine Sisiphos-Arbeit. Alles von Carbon auf POSIX. Da sind auch noch ein paar Unschönheiten und Fehler drin.
Im Gegensatz zu MagicMacX und AtariX funktionieren jetzt auch die "interleaved plane"-Modi. Da hatte ich nämlich irgendwann Anfang der 2000er natürlich kein Bindestrich Jahre einen kleinen Fehler gemacht...
Wie die anderen Emulatoren beruht auch MagicOnLinux immer noch auf SDL. Mit dem Unterchied, daß auch unter X11 die Umlauttasten funktionieren und nicht nur unter Wayland. Was für ein Quatsch, was da in SDL gemacht wird! Aber wer braucht schon Umlaute?
Im Prinzip müßte sich das Programm mit vertretbarem Aufwand auf macOS portieren lassen, wobei man SDL wohl nachinstallieren kann. Windows hat eine ganz andere Dateisystem-API, soviel ich weiß. Ich habe aber nur einen alten Mac, und Windows tue ich mir nicht an.