Emulatoren für RISC OS

(Update 2019-10-27 – RPCEmu 0.9.2 neu)

Lange Zeit sah es so aus, als wenn RISC OS als “emulated platform” in die Historie eingehen würde – als klar war, dass es keinen IYONIX 2 geben würde, sah es nicht gut aus für die “native hardware”-Fraktion, und die PCs waren inzwischen so schnell, dass die emulierte Lösung teilweise schneller war als der IYONIX pc – preiswerter war die x86-Hardware ja schon seit Langem.

Obwohl inzwischen leistungsfähige und preiswerte native RISC OS-Hardware zur Verfügung steht, sind Emulatoren natürlich immer noch eine interessante Lösung für viele Anwendungsgebiete:

  • Kompatibilitätstests über verschiedene RISC OS-Versionen auf einer Hardware
  • Profitieren von leistungsfähiger Hardware (vulgo PC)
  • optimal für Cross-Platform-Entwicklung (entwickeln auf PC, testen im Emulator)
  • Einsatz alter Software mit hoher Performance (26bit, RISC OS 3.1 etc.)
  • Retro-Gaming

Eine Seite die sich dem Problem des Einsatzes von alter Software auf neuer RISC OS-Hardware widmet, ist derzeit in Vorbereitung – Aemulor, ADFFS, ArcEm und ArchiEmu werden dort die Themen sein.

VirtualRPC

Ein kommerzieller Emulator von VirtualAcorn. Ab 25 UKP geht es los (die neue Download-Only-Variante VirtualRPC-DL, nur im RISCOS Ltd.-Shop erhältlich), die Top-Variante VirtualRPC-AdjustSA kostet 79 UKP. Verfügbar für Windows und MacOS X (G4, G5 und Intel-Macs), die Mac-Version gibt es nur als VirtualRPC-AdjustSA. Die DL-Variante gibt es nur für Windows.

Emuliert wird ein Risc PC bzw. A7000. Die CPU-Emulation arbeitet mit einem JIT-Compiler und ist dementsprechend recht schnell. Wird das hostbasierte Dateisystem genutzt, profitiert man direkt von der guten I/O-Performance des Host-Systems.

Als Betriebssystem wird RISC OS 4.02 (VirtualRPC-DL, VirtualRPC-SE, VirtualRPC-SA) bzw. RISC OS 4.39 (VirtualRPC-AdjustSA) mitgeliefert. Eine Verwendung von RISC OS 5 ist nicht möglich.

Die Integration ins Host-Betriebssystem ist gut gelungen, egal ob es ums Drucken, den Zugriff auf das Dateisystem oder die Handhabung von USB-Speichern geht. Auch der Netzwerkzugriff funktioniert problemlos. Die Topversion VirtualRPC-AdjustSA verwöhnt den Benutzer mit dem “Popup-Drive”-Feature – steckt man z.B. einen USB-Stick in den PC, so kann dieser direkt als Laufwerk unter der Emulation eingebunden werden.

Aus meiner Sicht gibt es aber auch gravierende Schwächen, die eigentlich – zumal nach all den Jahren der Entwicklung – schon sehr ärgerlich sind. Etwas so simples wie ein funktionierender Maus-Sync (wenn der Mauszeiger im Emulator-Fenster ist, steuert die Maus den Emulator-Mauszeiger, sonst den Host-Mauszeiger) gibt es bis heute nicht, faktisch ist also nur der Fullscreen-Modus sinnvoll nutzbar. Der Zugriff über RDP ist ebenfalls nicht möglich, der Emulator steigt mit einer DirectX-Fehlermeldung aus. Wer nun glaubt, VNC sei eine Alternative, der irrt – mit dem beschleunigten VNC-Server steigt der Emulator ebenfalls aus, im Standard-Modus ist es unbenutzbar langsam.

Dazu kommen sporadisch auftauchendes Phänomen, von dem viele Benutzer regelmäßig berichten: vergessene Mausclicks wenn das System unter hoher Last ist, und ein plötzliches Einbrechen der Performance. Ebenfalls ein seit Jahren bekanntes Problem: ein oft ruckeliger Mauszeiger.

Früher existierende Probleme unter jüngeren Windows-Versionen sind inzwischen ausgemerzt – die einzige wichtige Empfehlung die bleibt ist, niemals unter “Programme” zu installieren.

Nur die DL-Variante kommt ohne die lästige Registrierung aus – alle anderen Versionen erfordern das Einsenden eines Codes (der auf der ersten MAC-Adresse basiert, die VirtualRPC im System findet), man erhält dann den Registrierungscode zurück – VirtualRPC ist erst lauffähig, wenn dieser eingegeben wird.

VirtualA5000

Ein weiterer kommerzieller Emulator. Die ursprüngliche Version war das erste Produkt von VirtualAcorn, wenn ich mich recht erinnere erschien es Ende der 90er. Seit Erscheinen von VirtualRPC war er nicht mehr erhältlich, aber nun, ähnlich wie VirtualRPC-DL, gibt es ihn als Download-only-Version für 15 UKP. Er emuliert, wie es der Name schon nahelegt, einen Acorn A5000, und zwar in der Konfiguration “volle Hütte” – 16 MiB RAM (das theoretische Maximum für RISC OS 3.1x und MEMC-basierte Systeme), ausgequetschter VIDC für 800×600 bei 256 Farben und 1024×768 bei 16 Farben, und HostFS ist natürlich auch dabei für benutzerdefinierte Mounts. RISC OS 3.11 ist mitgeliefert.

Leider sind auch hier keine alternativen RISC OS-Versionen möglich – klar, RISC OS 2 wäre nicht möglich, weil dort der Support für die A5000-IO-Hardware nicht drin ist, aber die deutsche Version 3.19 wäre doch interessant für den Betrieb gewesen. Oder auch RISC OS 3.00, die erste ausgelieferte Version mit dem A5000, um nochmal die Unfertigkeit und die Bugs zu begutachten, über die damals so viel gesprochen wurde.

Es ist unverständlich, warum gerade bei VirtualA5000 die doch phantastisch funktionierende Emulation der alten Archimedes-Modelle außen vor bleibt (OK, man müsste dann vielleicht über eine Umbenennung nachdenken…) und alternative RISC OS-Versionen (oder gar RISCiX) außen vor bleiben. Aber es ist halt eher ein Produkt für den reinen Anwender als für den technisch interessierten Enthusiasten – auch das Packaging mit den vielen gebundelten Anwendungen weist darauf hin. Die Frage ist, welcher reine Anwender aber heute noch Bedarf für einen RISC OS 3.1-Emulator hat.

Sehr gut funktioniert übrigens das Ansprechen eines “echten” Diskettenlaufwerks auf PCs, die das noch intus haben.

RPCEmu

RPCEmu ist ein Open Source-Risc PC-Emulator, fertige Binaries gibt es derzeit nur für Windows (Version 0.9.2) und von einer früheren Version 0.8.14 für MacOSX, Freunde der unixoiden Betriebssysteme compilieren natürlich selbst. Die Oberfläche basiert inzwischen auf Qt5, was das Compilieren von Linux bis NetBSD stark erleichtert.

Emuliert wird ein Risc PC (ARM610, ARM710, StrongARM) oder ein A7000. Ein ROM-Image eines kompatiblen Betriebssystems muss jeder selbst beibringen, funktionieren tut alles, was in den Original-Rechnern auch funktioniert – RISC OS 3.5, 3.6, 3.7, 4.0, verschiedene Select-Versionen, 4.39 (Adjust) und natürlich die neuesten Versionen von RISC OS 5. Sogar der nie offiziell erschienene Risc PC 2, die Acorn Phoebe kann emuliert werden – auch wenn das in der Praxis nicht wirklich sinnvoll ist.

Die CPU-Emulation läuft wahlweise als JIT-Recompiler oder als Interpreter und arbeitet recht flott, auf ähnlichem Niveau wie VirtualRPC.

Sehr gut funktioniert der Maus-Sync. Davon könnte sich VirtualRPC eine Scheibe abschneiden. Auch die Skalierung des Bildschirms im Fullscreen-Modus ist absolut top – es wird hier Software-Skalierung verwendet, d.h. der PC bleibt in seinem nativen Bildschirmmodus, was Moduswechsel sehr viel unproblematischer macht.

RPCEmu hat leider einige Schwächen (die man aber natürlich einer 0-EUR-Lösung leichter verzeiht als einer kommerziellen Offerte wie VirtualRPC), die einem ziemlich auf die Nerven gehen können:

  • leicht suboptimale Einrichtung der Netzwerkunterstützung unter Windows
    • vor Version 0.9.2 war es eher komplex und extrem fehlerträchtig bis unmöglich…
  • unflexible Anbindung des Host-Dateisystems – keine Mounts möglich, es wird aus einem festen Verzeichnis gelesen
  • IDE-Emulation für RISC OS 5 im Moment deaktiviert wegen Gefahr des Datenverlusts
  • leichte Instabilitäten der CPU-Emulation, nicht perfektes Verhalten der ARM-Emulation vor allem bei Aborts
  • keinerlei Unterstützung für den Parallelbetrieb mehrerer RISC OS-Versionen (ROMs, CPU-Emulation, CMOS…)

Red Squirrel

Red Squirrel ist quasi der Vorgänger von VirtualRPC (oder noch früher, von VirtualA5000). Er emuliert sowohl klassische Archimedes-Hardware als auch die A5000-ähnlichen Maschinen und die neuere Risc PC/A7000-Varianten. CPU-Emulation ist per Interpreter realisiert und demzufolge eher gemächlich. Ein HostFS gibt es auch, man kann multiple Verzeichnisse mounten.

Die Emulation gilt als sehr präzise, was ARM und den Chipsatz angeht. Von Arthur bis RISC OS 4 läuft alles. RISC OS 5 habe ich ehrlich gesagt noch nicht ausprobiert.

Aktuelle Version ist 0.6, kein Sourcecode, nur für Windows.

Arculator

Arculator emuliert die “alte Welt”, also alles zwischen A305 und A5000, schlicht alles auf dem RISC OS 3.1 läuft – Arculator kann aber auch Arthur, RISC OS 2 und NetBSD. Optimal geeignet, um die alten Spiele mal wieder zu zocken, oder den Horror von Arthur wieder auferstehen zu lassen. Arculator gibt es nur für Windows, aber die Sourcen sind inkludiert, damit dürfte einer Linux-Portierung nichts im Wege stehen – wie früher auch RPCEmu verwendet Arculator Allegro.

Arculator unterstützt nativ Floppy-Images im Format APD, das ist besonders nützlich wenn man kopiergeschützte Floppies verimaged und nicht zusätzlich ADFFS einsetzen will.

Arculator emuliert das Timing der alten Maschinen sehr präzise, deshalb ist er die erste Wahl für Spiele aus der guten alten Zeit.

ArcEm

ArcEm ist ein auf Portabilität ausgerichteter Open Source-Emulator für die alten “Archimedes”-Rechner. ArcEm läuft auf Windows, RISC OS, Mac OS X, Amiga OS und diversen Unix-Systemen, wenn X11 verfügbar ist. Getestet ist die Emulation der Betriebssysteme ARM Linux sowie diverser RISC OS-Versionen wie 3.10, 3.11 und 3.19.

Die CPU-Emulation ist rein interpretierend, aber dank diverser Performance-Optimierungen von Jeffrey Lee anständig performant.

Dem Emulator fehlen leider ein paar sinnvolle Frontend-Funktionen, so kann man z.B. nicht mal einfach so das Floppy-Image wechseln.

MAME

MAME ist der “Multi Arcade Machine Emulator”, quasi eine Art Multi-Emulator-Framework, das ursprünglich auf die Emulation von Spielautomaten spezialisiert war. Vor langer Zeit gab es das Schwesterprojekt MESS (“Multi Emulator Super System”), das sich um Spielkonsolen und Computer kümmerte. Vor einiger Zeit sind beide Projekte unter dem MAME-Dach vereinigt worden. Und mit der neuen Version 0.181 wurde die Archimedes-Emulation entscheidend verbessert. Das Setup ist etwas anstrengend, es werden momentan nur ADF-Images unterstützt, aber prinzipiell läuft das. Hier der passende Blog-Eintrag mit einigen Hinweisen zu Konfiguration und Betrieb.