Emulation

Neue Testversion von Aemulor verfügbar

Korrektur 2019-09-24: die vormals hier stehenden Infos zum ARMBook von R-Comp waren falsch. Es basiert auf dem Pinebook, nicht auf dem Pinebook Pro wie vormals fälschlicherweise hier geschrieben (vermutlich war der Wunsch Vater des Gedankens – eine sehr optimistische Interpretation der vorliegenden Informationen). Was wieder zeigt, dass auch knapp fünf Jahre nach diesem Blogeintrag die Problematik der Transparenz von Informationen weiterhin gegeben ist.

Adrian Lees, Entwickler von Aemulor (wer aus unverständlichen Gründen nicht weiß, was Aemulor ist und wozu es gut ist, kann es hier detailliert nachlesen), hat die Verfügbarkeit einer neuen Test- bzw. Entwicklungsversion verkündet. 2.51 ist die Versionsnummer, Download von hier.

Was ist neu? Eine der ungünstigen Nebenwirkungen von Aemulor war immer, dass nicht nur der Application Memory Slot (aka Wimpslot) für die emulierten 26bit-Anwendungen auf die unter RISC OS 4 und früher üblichen 28 MiB RAM eingeschränkt wurde, sondern auch der für alle anderen Anwendungen. Die neue Entwicklungsversion schafft hier nun etwas mehr Platz als früher: durch Anpassungen der Memory Map stehen nun 52 MiB RAM im Wimpslot zur Verfügung. Diese Anpassung ist optional, man kann auch mit der alten Konfiguration arbeiten.

Für die nicht-so-RISC OS-Erfahrenen: das 28 MiB-Limit kommt aus der 26bit-Zeit, also alles bis einschließlich RISC OS 4, als die CPU wie zu Zeiten des ARM2 1986 den Programmcode nur innerhalb der ersten 64 MiB ausführen konnte – weil der Program-Counter, also das Register (R15 übrigens), das die derzeitige Ausführungsadresse enthält, nur die unteren 26bit für die Adresse verwendete. Und dann hat Acorn zur Vereinfachung der restlichen Hardware (damit die MMU genannt “MEMC” eben nur diese adressieren können muss) kurzerhand diese 64 MiB in gewisse Blöcke aufgeteilt wie die RMA, das ROM, den System-Heap und IO-Bereiche. Hier ist die vollständige Übersicht zu sehen. Wenn man so will, ganz ähnlich wie die DOS-Memory-Map mit ihrem 640 KiByte-Problem.

Und um keine Missverständnisse aufkommen zu lassen: das 28 MiB-Limit bedeutet nicht, dass eine Anwendung nur 28 MiB nutzen kann. Es bedeutet nur, dass der ausgeführte Programmcode maximal 28 MiB groß sein darf – Daten können auch (seit RISC OS 3.5 und dem ARM6xx – seither können nämlich die vollen 32 Bit adressiert werden) in den sogenannten “dynamic areas” liegen. Die Erhöhung von 28 MiB auf 52 MiB ist also bei den RISC OS-typischen eher kleinen Programmen tatsächlich nur für spezielle Anwendungen interessant. Dort aber potenziell lebensrettend.

Und wie läuft er nun, der neue Aemulor? Kann ich noch nicht sagen. Bin mitten in den Vorbereitungen für die DoReCo-Party kommendes Wochenende, da ist für die Kür erst Zeit, wenn die Pflicht erledigt ist. Interessant auf jeden Fall, dass diese Aemulor-Version auf dem brandneuen ARMBook von R-Comp (ein Pinebook mit RISC OS) schon getestet wurde. Im Pinebook dreht ein Allwinner A64, also grob gesagt Cortex-A53 mit Mali-400, coretechnisch also identisch mit dem Raspberry Pi 3(+). Solange also “bekannte” Cores am Start sind, scheint die Produktion von kompatiblen Aemulor-Versionen für Adrian keine besondere Herausforderung zu sein.

ADFFS 2.72 (auch via PackMan) verfügbar

Jon Abbott vom JASPP hat heute (yeah, brandaktuelle News in meinem bescheidenen Blog!) die Verfügbarkeit von ADFFS 2.72 verkündet. Wieder stand die Stabilität im Vordergrund, ebenso Abrundungen bezüglich Kompatibilität. Auch DOS- und Atari-Images können nun gelesen werden. Als neu unter RISC OS 5 unterstützte Spiele kamen Sim City 2000 und Burn’Out dazu. Vor allem das saubere Beenden von Spielen unter ADFFS-Kontrolle per Ctrl+Shift+F12 funktioniert nun in viel mehr Fällen. Ebenso werden nun Abstürze im Spielecode, während der ADFFS-JIT aktiv ist, sauber abgefangen um einen sauberen Systemzustand nach dem kontrollierten Beenden des gecrashten Spiels sicherzustellen.

Auch die Unterstützung für WIMP-basierte Spiele hat Fortschritte gemacht, ist aber noch lange nicht rund, wie Jon nicht müde wird zu betonen. Und eine merkwürdige Unverträglichkeit mit StrongEd wurde behoben.

Wie seit 2.69 üblich ist auch 2.72 über PackMan verfügbar, ebenso die bisher unter JASPP-Flagge re-releasten Spiele-Klassiker.

Aufmerksame Beobachter fragen sich jetzt, wo denn Version 2.71 geblieben ist? Jon sind schlicht die Buchstaben ausgegangen – er “nummeriert” die Entwicklungsversionen nach dem Muster 2.71a..2.71z durch, und nach 2.71z kam eben 2.72a, und erst mit 2.72k war Jon glücklich, woraus dann die jetzt veröffentlichte 2.72-Release-Version entstand.

ADFFS 2.70 (auch via PackMan) verfügbar

Jon Abbott vom JASPP hat (schon vor einiger Zeit) die Verfügbarkeit von ADFFS 2.70 verkündet. Hauptsächlich Bugfixes fanden Einzug, damit funktionieren nun auch einige weniger populäre Spiele neueren Datums wie “DragonBall”, “Sally und Wally” oder die StrongARM-kompatible Version von “Saloon Cars Deluxe” aus dem Jahr 2000.

Wie schon 2.69 ist auch 2.70 über PackMan verfügbar, ebenso die bisher unter JASPP-Flagge re-releasten Spiele-Klassiker.

ISO-Images können nun direkt aus ADFFS erzeugt werden – das muss ich dringend mal testen. Leicht verbessert zeigt sich die Integration von USBJoystick, die ich leider immer noch nicht getestet habe. Aber demnächst bestimmt…

Jon arbeitet bereits an 2.71, das verbesserte Unterstützung für Spiele, die zunächst ins WIMP starten, mitbringen soll. Aldebaran, Elite, Karma, Sim City…da sind ein paar interessante Kandidaten dabei. Ist aber aufgrund der Art und Weise, wie ADFFS die Emulation implementiert, eine ziemlich harte Nuss zu knacken, weil man sich um die ganze WIMP-Environment-Handler-Grütze kümmern und mit anderen Anwendungen friedlich koexistieren muss.

RPCEmu 0.9.1 ist da

Ich muss noch ein paar aktualisierte Versionen nachliefern, beginnend mit dem Emulator der Herzen, dem RPCEmu.

Vor kurzem wurde die Version 0.9.1 veröffentlicht. Hauptsächlich Feinarbeit und kleinere Bugfixes prägen das Changelog. Der Netzwerk-Pseudo-Podule-Treiber wurde nun besser integriert, ist 26/32bit-neutral und SharedCLib-neutral und kann deshalb problemlos per Podule-Loader ohne explizites Softloading ins System gebracht werden. Etwas später wurden auf der Mailingliste noch Patches gereviewed, um unter MacOSX die Tastaturunterstützung wieder sauber zu ziehen, da gab es bei der Umstellung von Allegro auf Qt ein paar Verwerfungen. Eventuell sind die Patches auch hilfreich für die RISC OS-Portierung von RPCEmu, die mal experimentell von Chris Gransden durchgeführt wurde – dort haperte es auch an der Tastaturunterstützung.

Bei meinen Versuchen unter Linux bin ich letztens gescheitert beim Versuch, das Netzwerk wie hier beschrieben einzurichten – die chown-root-Methode funktioniert mit der von mir verwendeten Qt-Version nicht mehr, Qt lehnt das Starten der Anwendung mit Root als Owner schlicht ab. Es zeichnet sich allerdings ab, dass eine alternative Netzwerk-Lösung seinen Weg in den RPCEmu finden könnte, auf Basis von Slirp, das auch von QEMU und VirtualBox verwendet wird. Das wäre dann die lang ersehnte “zero config”-Variante, mit der sich RPCEmu direkt in das Netzwerk der Hostmaschine integrieren könnte, ganz ohne Tunelling und Bridging und das ganze unhandliche Gedöns. Wir hoffen weiter!

ADFFS 2.69 (auch via PackMan) verfügbar

Jon Abbott vom JASPP hat die Verfügbarkeit von ADFFS 2.69 verkündet. Nur ein kleineres Update gegenüber 2.68, hauptsächlich um die neueste Version nebst allen frei verfügbaren und unterstützten Spielen via Paket-Management (sprich !PackMan) verfügbar zu machen. Außerdem wird das USBJoystick-Modul nun automatisch beim Startup geladen, und es gab einige kleienre Bugfixes sowohl bei den Game-Start- und Patch-Scripts als auch in ADFFS selbst.

Die primäre Testplattform ist übriens inzwischen der Raspberry Pi 3, also quasi die maximale Inkompatibilität gegenüber den alten Kisten (RISC OS 5.24, ARMv8).

Seit dem letzten ADFFS-Update hat Jon auch noch ein paar alte Spiele sauber paketiert freigegeben, S.W.I.V. dürfte darunter das bekannteste (und aus meiner Sicht auch das beste) sein. Ein paar weniger bekannte Spiele von Cambridge International Software sind auch mit dabei, das bekannteste darunter dürfte MicroDrive sein, ein Golf-Spiel nach Leaderboard-Art, das angeblich eines der realistischeren seines Genres sein soll. Mein absolutes RISC OS-Lieblingsspiel, Spheres of Chaos, hat inzwischen auch das Licht der Welt erblickt. Auf einem A3000 mit Gamer’s Upgrade – 4 Spieler am Joystick, einer an der Maus und drei an der Tastatur – wäre zu versuchen, ob das mit ADFFS und USBJoystick nun wieder möglich wäre. Ein Projekt für die Weihnachtsfeiertage.

Danke an Jon und an Alan Buckley für die neue Variante via Paket-Management – das sollte die Sache für viele Benutzer stark vereinfachen.

ADFFS 2.68 verfügbar

Jon Abbott vom JASPP hat die Verfügbarkeit von ADFFS 2.68 verkündet. Hauptneuheit ist partielle Unterstützung für WIMP-basierte 26bit-Spiele wie Aldebaran, Elite oder Sim City – also Spiele, die zunächst sich nach dem Start auf der Iconbar wie eine normale RISC OS-Anwendung installieren, dort begrenze Interaktion erlauben (Highscores anschauen, Version anschauen, Einstellungen vornehmen) und nach Click aufs Icon erst den Bildschirm vollständig übernehmen. Auch die Unterstützung von USB-Joysticks ist nun erstmals in einer Release-Version verfügbar. Dazu wie üblich eine größere Menge Bugfixes und Erweiterungen, um weitere Spiele ans Laufen zu kriegen – insbesondere die wenig bekannten Topologika-Titel waren wohl eine harte Nuss.

Einfach mal testen – und nicht vergessen: “Boot floppy” verwenden zum Start der Spiele! Das JASPP hat auch ein paar neue Spiele in den letzten Monaten freigegeben, einfach regelmäßig hier nachschauen. Die 32bit-Version von Exodus ist sicher das Highlight, dazu Lemmings 2 und die CD-Version von Dune II, für die Jon extra eine aufgebohrte Version von CDFaker gebaut hat (siehe hier).

Happy (Retro) Gaming!

RPCEmu 0.9.0 ist da

Im Oktober 2017 gab es die erste RPCEmu-Testversion, die auf Qt statt auf Allegro basierte – hier meine damalige kurze Zusammenfassung der Vorteile der Qt-Implementierung gegenüber Allegro. Vor allem die neue Software-Skalierung im Fullscreen-Modus ist Gold wert, weil es im Windows-Umfeld sehr sauber und problemlos funktioniert, und die Software-Skalierung oft sogar bessere Ergebnisse liefert als die Skalierungsfunktion von Betriebssystem oder Bildschirmhardware.

Heute ist RPCEmu 0.9.0 erschienen, die erste Qt-basierte Release-Version nach einer Reihe von Testversionen, um diverse obskure Bugs zu fixen. Der Qt-Branch wurde gleichzeitig wieder in das Hauptrepository (Mercurial) gemergt .

Meine Wünsche für die Version 1.0:

  • konfigurierbarer Pfad für HostFS – dann kann es auch wieder einen Windows 7ff-tauglichen Installer geben, damit die Software nach “Programme” und die Daten woandershin können
  • Unterstützung von MimeMap in HostFS (ich arbeite noch dran, die RPCEmu-Entwickler davon zu überzeugen, dass das eine gute Idee ist)
  • multiple Mounts für HostFS – System-Profile-Definitionen, um einfach zwischen verschiedenen RISC OS-Versionen, RAM-Configs und HostFS-Mounts zu wechseln
  • Bug bezüglich IDE-Emulation für RISC OS 5 fixen
  • Erscheinungsdatum noch 2018 🙂

Update: ich habe meine Seite “Emulatoren für RISC OS” auch auf den neuesten Stand gebracht.

ADFFS 2.65 public beta und Joysticks

Jon Abbott hat ADFFS 2.65 als “public beta” zum Download bereitgestellt. Ein großer Schritt nach vorne, arbeitet es doch eng verzahnt mit Richard Walkers USBJoystick-Modul zusammen, um endlich die Freuden des Knüppels abseits der Originalhardware bereitzustellen.

Joystick-Unterstützung war immer ein schwieriger Fall bei Acorns 32bittern. Erst der A3010 hatte eingebaute Joystick-Ports, und erst mit dem darauf ausgelieferten RISC OS 3.10 bequemte sich Acorn dazu, eine SWI-Schnittstelle zur sauberen Joystick-Unterstützung bereitzustellen. Offenbar waren Spiele auf Computern zu unseriös für die auf den Bildungsmarkt zielenden Acornianer.

Der geneigte Joystick-Nutzer und Archimedes-Zocker war also lange Zeit (wie schon auf den BBC-8bittern) auf 3rd party Interfaces angewiesen – The Serial Port, Vertical Twist, RTFM, Voltmace, LogikJoy, Gamer’s Upgrade, JoyConnect…man ahnt es schon, jedes einzelne nur zu sich selbst kompatibel. Eine Ausnahme – RTFM und LogikJoy, beide steckte man in den meist ungenutzten Econet-Steckplatz, waren Hardware-kompatibel. Und später gab es immerhin für fast alle Hardware-Interfaces ein Modul, welches Kompatibilität mit den Acorn-SWIs herstellte. Nicht unerwähnt soll auch Ian Haylocks Joystick-Interface für den Parallel-Port bleiben, das hatte ich jahrelang erfolgreich am Risc PC betrieben.

Jedenfalls hat sich Jon Abbott die Mühe gemacht, quasi alle Spiele die es je für RISC OS gab auf ihre Joystick-Kompatibilität zu prüfen. Ursprünglich basiert das auf der Analyse des Codes und welche SWIs drin genutzt werden, inwieweit diese Liste inzwischen experimentell erhärtet wurde weiß ich nicht.

Unverzichtbar auf den modernen Plattformen ist Richard Walkers USBJoystick-Modul. Im Prinzip unterstützt es alle HID-kompatiblen USB-Joysticks, egal ob analog oder digital. Im Moment muss ggf. noch händisch gemappt werden, welcher Knopf denn nun Feuerknopf 1 ist und welche Achsenbewegungen auf x- und y-Achse wirken. Als Besonderheit im Zusammenwirken mit ADFFS kann ADFFS die über USBJoystick bereitgestellten Informationen so bereitstellen, als wenn ein RTFM-Interface diese ausgelesen hätte – notwendig für einige Spiele älteren Datums, die direkt die Hardware des RTFM-Interfaces angesprochen haben.

Wenn man Jons Erkenntnisse so im Zusammenhang liest, muss man sich teilweise wundern, dass die Spiele damals überhaupt auf der Originalhardware liefen. Dass damals gerne mal am Betriebssystem vorbei programmiert wurde, ist ja lange leidvolle Erfahrung und ein steter Quell von Inkompatibilitäten aller Art.

Meine eigenen Experimente mit ADFFS und meinen diversen USB-Joysticks stehen noch aus. Ich muss mal in den diversen Bastelkisten kramen, aber ich habe auf jeden Fall folgendes am Start:

  • Competition Pro USB (in der goldenen Jubiläums-Edition)
  • PS3-Joypad
  • USB-PS2-Joypad-Adapter
  • diverse USB-Gameport-Adapter und ebenso diverse Gameport-Joysticks vom Competition Pro (Mini) bis zum Gravis Analog Joystick

ADFFS 2.63 verfügbar

Jon Abbott vom JASPP hat die Verfügbarkeit von ADFFS 2.63 verkündet. Es gab viele Verbesserungen und Bugfixes, insbesondere für ARM7-basierte Systeme (Risc PC mit ARM710, A7000(+)) und für den IYONIX, der jetzt auf Augenhöhe mit dem Pi bezüglich der Spielekompatibilität sein sollte – wichtig ist hier, ein entsprechendes MDF am Start zu haben mit den für Spiele typischerweise notwendigen Auflösungen. Nebst einem Monitor, der diese auch verarbeiten kann.

Unter den Spielen, die nun unter ADFFS funktionieren, ist sicher Heroes of Might and Magic 2 am bekanntesten.

Außerdem wurden diverse Spiele von Alpine Software im Rahmen des JASPP freigegeben. Dabei handelt es sich um klassische Grafik-/Text-Adventures, neudeutsch “Interactive Fiction”, die noch den Geist der 80er atmen. Und tatsächlich teilweise aus den späten 80ern stammen. Cool: mit ALPS wurde auch das Authoring-System freigegeben, mit dem der geneigte User selbst solche Adventures kreieren kann.

Hier kann man ADFFS 2.63 runterladen.

Aemulor 2.40 ist da

Adrian Lees hat sein Versprechen wahr gemacht und hat aktuelle Entwicklungsversionen von Aemulor für alle relevanten Plattformen veröffentlicht. Hier gehts zu den Downloads. Zum ersten Mal ist auch der Pi3 (Cortex-A53, ARMv8) unter den unterstützten Plattformen. Ebenfalls sollte diese Aemulor-Version nun mit den neueren RISC OS-Versionen zurecht kommen – Stichwort Zero Page Protection und High Vectors.

Alle Plattformen, für die es jemals Aemulor gab? Nein, die Formulierung “alle relevanten Plattformen” war mit Bedacht gewählt. Denn der A9home ist nicht darunter…arme kleine blaue Kiste.