November 2019

You are browsing the site archives by month.

Arculator v2.0 ist da

Sarah Walker hat heute die Verfügbarkeit von Arculator v2.0 verkündet. Die letzte releaste Version, 0.99, hatte Mitte des Jahres 10 Jahre Geburtstag gefeiert. Wahnsinn. Sollte jemand Arculator noch nicht kennen: während RPCEmu sich um die Emulation der Maschinengeneration Risc PC und A7000 kümmert (und damit um RISC OS-Versionen ab 3.50 aufwärts), nimmt sich Arculator dem Namen entsprechend der Generation Archimedes an – vom A310 bis zum A5000, also alles, was mit RISC OS bis einschließlich Version 3.19 lief.

Was ist neu in der Version 2.0? Ein so großer Versionssprung legt ja doch gewisse tiefgreifende Verbesserungen nahe, aber Zahlen sind bekanntlich geduldig. Also gehen wir ins Detail. Ich habe noch nicht alles durchgetestet, das ist nur ein erster Eindruck. Vorab: die Beschäftigung mit der neuen Version lohnt auf jeden Fall!

Neu ist die Maschinenkonfiguration. Bisher startete Arculator mit den letzten Einstellungen, was maschinenspezifische Dinge anging – ARM2 oder ARM3, old-style I/O (A540 und früher) oder new-style I/O (A5000 und später), Betriebssystemversion, RAM. Gewisse Dinge waren dann fest mit anderen Details verhenkelt – wenn man beispielsweise old-style I/O konfigurierte, wurde automatisch das Risc Developments IDE-Podule emuliert mit IDEFS, bei new-style I/O hingegen das IDE-Interface vom A5000 über ADFS. Beide verwendeten hartcodiert hd4.hdf und hd5.hdf als Festplattenimages. Jetzt ist alles anders: man kann eine beliebige Anzahl von zu emulierenden Maschinen konfigurieren – man nimmt eine Basismaschine (A310, A540, A3000, A5000…) und stellt dann die Details ein – ARM2 oder ARM3, welche Frequenz. MEMC1 oder MEMC1a, RAM mit 8 MHz oder 12 MHz, FPA10 oder nicht, welches Betriebssystem steckt drin (Arthur 0.30 bis RISC OS 3.19), wieviel RAM ist an Bord, gibt es ein Joystick-Interface und sind Podules aktiv. Vor allem letztes eröffnet schöne neue Möglichkeiten, denn es wird eine illustre Reihe an Podules angeboten: das klassische Acorn SCSI-Podule, das sowohl Festplatten als auch CD-ROMs emulieren kann (virtuell oder aufs Host-CD-Laufwerk mappend – für die Detailverliebten: es wird ein Toshiba XM3301 emuliert, ein alter Caddy-Recke, der von den stets mit CDFS gelieferten CDFSSoftEESOX-Treibern unterstützt wird). Verschiedene IDE-Podules. Das Acorn ST506-Podule (MFM-Platten, die Älteren erinnern sich). Dazu noch das Wild Vision Midi-Podule und das Computer Concepts Lark-Podule, eine in freier Wildbahn selten gesehene Sound-Erweiterung (auch von Wild Vision designed) mit MIDI, 16bit-Stereo-Output und 16bit-Sound-Sampler. Eher exotisch: das HCCS Ultimate CD-ROM-Podule, das den Betrieb eines der damals gängigen Mitsumi-Laufwerken erlaubte, bevor IDE-ATAPI-CD-ROMs die Herrschaft übernahmen. Auch hier kann man ein physisches oder virtuelles Laufwerk zuordnen, aber da es diese Möglichkeit ja auch schon beim SCSI-Podule gibt, ist der Zusatznutzen eher gering.

Bei der Maschinenkonfiguration ist zu beachten, dass man nicht beliebig kombinieren kann – so ist ein A3000 mit Arthur als OS nicht möglich, genausowenig wie mit dem MEMC1. Ein ARM3 geht stets nur mit dem MEMC1a zusammen. FPA10 erfordert zwingend einen ARM3. Und in einen A5000 kann man keinen ARM2 reinkonfigurieren. So viel Realismus muss sein.

Und noch mehr Liebe zum Detail ist erkennbar: so kann man pro Maschine die “Unique ID” einstellen. Das ist eine Acorn-Erfindung, die seit dem A5000 sein Unwesen treibt. Damit konnte Software sich bei der Installation an diese ID binden und so als eine Art Kopierschutz fungieren. Da aber ältere Maschinen ohne diese ID kamen, haben clevere Zeitgenossen einfach die ID so manipuliert, dass sie als nicht initialisiert galt und damit der Software vorgaukelte, eine alte Maschine ohne ID zu sein. Kurz gesagt: eine Flop-Idee. Allerdings könnte es natürlich sein, dass jemand noch Originaldisketten im Bestand hat, die an eine bestimmte ID gebunden sind. Von daher ist die Simulation der ID eine lobenswerte Sache für diese seltenen Fälle.

Was gibt es unter der Haube zu vermelden? Das ungeliebte Allegro-Framework ist Geschichte, jetzt ist alles SDL2-basiert, mit wxWidgets für die grafische Oberfläche. Daran ist höchstens schade, dass damit eine Portierung nach RISC OS sehr aufwändig wird, weil beide Bibliotheken noch(?) nicht portiert wurden. Aber unter RISC OS gibt es mit ArcEm, ArchiEmu und ADFFS ja sowieso reichlich Auswahl zum Zwecke der Retro-Archimedes-Emulation.

Jedenfalls soll die CPU- und MEMC-Emulation nun deutlich präziser sein, weshalb die feine Unterscheidung von MEMC1 und MEMC1a jetzt Sinn ergibt. ARM2 mit 8 MHz, ARM250 mit 12 MHz, ARM3 mit irgendwas zwischen 20 und 35 MHz (je nach konfigurierter Basismaschine ist die Auswahl beschränkt), dazu ein Turbo-RAM-Modus mit 16 MHz – alles ist möglich. Der direkte Floppy-Zugriff wurde auch neu implementiert.

Auch videotechnisch sind einige Optionen dazugekommen, Direct3D und OpenGL kann nun als Methode ausgewählt werden, was letztlich der SDL2-Basis zu verdanken ist. Aber auch Software-Rendering ist weiterhin möglich.

Noch eine gute Nachricht: das sich öfter etwas merkwürdig verhaltende ArculFS als native Zugriffsmöglichkeit auf das Host-Dateisystem wurde kurzerhand durch HostFS von RPCEmu ersetzt. Eine gute Entscheidung.

Und zum guten Schluss: es gibt nun Floppy-Geräusche!

Sowohl die Windows- als auch die Linux-Version gibt es direkt zum Download, Sourcecode ist mit im Archiv. Also, downloaden und experimentieren.

MIST Archimedes-Core jetzt mit IDE

MIST und MISTer, die beiden genialen Open-Source-FPGA-Plattformen zur Emulation bzw. Simulation älterer Computer, Spielkonsolen und Arcade-Automaten waren schon mehrfach hier und in meinem IT-Blog Thema. Seit 2015 experimentiere ich mit dem MIST und dort vor allem mit dem Archimedes-Core.

Jetzt hat dank Slingshot aka gyurco (Usernamen aus dem Atari-Forum bzw. von GitHub) der Archimedes-Core einen großen Schritt nach vorne gemacht. Es ist jetzt ein Risc Developments IDE-Podule integriert, so dass man mit von den Emulatoren bekannten Festplattenimages (typischerweise mit der .hdf-Extension) arbeiten kann – gegenüber der bisherigen Floppy-Images-Only-Betriebsweise ein riesiger Schritt nach vorne.

Der Core kann auch ein CMOS.RAM von der MIST-SD-Karte laden, leider aber geänderte Settings noch nicht speichern.

Zur Feier des Tages habe ich ein entsprechendes Image zusammengebaut und zur Verfügung gestellt. Es basiert auf dem RISC OS 3.1-UniBoot aus den letzten Acorn-Tagen inklusive aller Standardanwendungen wie ChangeFSI oder Printers, zusätzlich angereichert um aktualisierte Toolbox-Module, den lebensnotwendigen Utilities wie SparkPlug, die Read-Only-Version von SparkFS und PackDir. Und dazu noch drei der inzwischen freigegebenen Spieleklassikern: Burn’Out, Elite und Star Fighter 3000. Ersteres und letzteres zeigen allerdings, dass noch etwas Feintuning am ARM-Core notwendig ist, um hier adäquate Performance für diese Spiele bereitzustellen.

Ich gedenke, das Image noch weiter anzureichern mit lizenztechnisch unproblematischen Dingen – GCC, Template-Editoren, Zap und StrongEd, DrawPlus, Ovation, Impression Style (vor kurzem kostenlos freigegeben), Pipedream sowie ein paar der essentiellen Tools, an die ich mich schon gar nicht mehr erinnere – da muss ich mal wieder den FTP-Server der Uni Stuttgart konsultieren sowie mein altes A3000-Image. Der Test von ADFFS steht noch aus, jetzt wo nicht mehr ADFS-Floppy das einzige unterstützte Medium ist gibt es da durchaus Hoffnung, und das würde bezüglich der möglichen Retro-Experience die Sache stark vereinfachen.

Für die Detaildiskussion kann man alles im Atari-Forum (quasi das offizielle MIST-Forum, weil das MIST bekanntlich mit dem Atari-ST-Core geboren wurde) nachlesen. Hier der Link zum GitHub-Repo des Archimedes-Core.

Natürlich gibt es weiterhin viele zusätzliche Wünsche an den Core – schnellere CPU (der verwendete Amber-ARM-Core hat eigentlich einen Cache a la ARM3 intus, aufgrund von Zuverlässigkeitsproblemen ist der aber derzeit deaktiviert), Quad-MEMC-Emulation für bis zu 16 MiB RAM, Anbindung des MIST-Scandoublers um auch auf VGA-Monitoren die 15 kHz-Modes ohne Letterboxing und RAM-bandbreitenfressende Bildwiederholrate verwenden zu können, und natürlich das Schreiben der CMOS-Values. Direkte Unterstützung der zwei anderen Disketten-Image-Formaten APD und JFD wäre super. FPA10-Emulation wäre wohl eher aus der Kategorie “weil man es kann”, bekanntlich konnte man Floating-Point-intensive Software mit der Lupe suchen. Endgültig Kür wäre dann Netzwerkunterstützung, das wäre dann aber eher der Bereich des MISTer, für den der aktuelle Core aber noch nicht portiert wurde. Und wie wäre es mit Econet?