#44 – RetroVM für alte Spiele

Bereits vor gut 5 Jahren habe ich bereits mal einen Versuch unternommen, einige alte Spieleklassiker aus meiner Kindheit in portabler Form in einer „Retrogamebox“ zusammenzufassen. Ich habe sogar ein kleines C++-Frontend dafür (damals noch mit der Bloodshed DevC++ IDE) geschrieben. Das sah so aus:

Die meisten Anwendungen werden jeweils in einer eigens dafür konfigurierten DosBox emuliert. Einige weitere laufen aber auch nativ im jeweiligen Zielsystem. Das funktionierte eigentlich ganz gut und war sogar so portabel, dass die entsprechenden Dateien einfach auf jeden Rechner kopiert werden und die Spiele ohne Installation gestartet werden konnten (hier z.B. Siedler 2).

Das große Problem: Mit Einführung der 64-Bit-Rechnerarchitektur spielen einige der damals für Windows 95 designten Anwendungen nicht mehr mit. Auf alten 32-Bit PCs oder Laptops läuft das einwandfrei! 😉

Nun wird es Zeit, eine neue Umgebung zu basteln, welche die alten Spiele auch auf neueren Rechner lauffähig bekommt. Hierfür verwende ich die kostenlose Virtualisierungssoftware „VirtualBox“. Diese bietet die Möglichkeit sog. „virtuelle Maschinen“ zu erstellen und diese als Anwendung auf dem eigentlichen Betriebssystem laufen zu lassen. Es existiert sogar eine portable Version davon, welche von z.B. einem USB-Stick ausgeführt werden kann. Mit dieser Version wollen wir es mal probieren, denn wir wollen ja möglichst flexibel bleiben…

Nach dem Herunterladen können wir VirtualBox zum ersten Mal starten:

Als Betriebssystem verwenden wir ein Windows XP 32 Bit, ich hoffe damit können wir einen Großteil der Spiele abdecken. Wer könnte außerdem dem freundlichen Maskottchen in der Dateisuche widerstehen? 😉

Fun Fact: Der Hund heißt übrigens „Fredo“ – kein Scheiß! 😀 Ob Fredo wohl auch in naher Zukunft ein Comeback wie sein Office-Kollege Karl Klammer feiern wird? Wir bleiben gespannt… 😉

Nachdem einige essentielle Parameter, wie der Betriebssystemtyp, der Name der virtuellen Maschine sowie die Größe des Arbeitsspeichers festgelegt wurden, muss eine virtuelle Festplatte für das System erzeugt werden.

Fun Fact: Die Virtuelle Festplatte kann in unserem Fall maximal bis zu 25GB groß werden, allerdings wird sie „dynamisch alloziert“, d.h. es wird immer nur so viel Speicherplatz benötigt, wie das Gastbetriebssytem benötigt – clever! 🙂

Somit ist die Grundkonfiguration der virtuellen Maschine erfolgt und man kann sich deren Eigenschaften im Übersichtsfenster ansehen:

Nun müssen noch einige „Feineinstellungen“ wie z.B. die Größe des virtuellen Grafikspeichers sowie die 3D-Beschleunigung oder die Anzahl der Bildschirme festgelegt werden:

Ebenso muss ein virtuelles CD-Image angegeben werden, von dem wir das Betriebssystem installieren können. Gut, dass ich noch ein altes Windows-XP aus Schulzeiten herumliegen habe! 🙂

Anschließend kann die VM zum ersten Mal gestartet werden. Das sieht doch schon mal gut aus – zumindest wird die Installation von Windows XP gestartet! Ach ja… Der Installationsdialog bringt eine gewaltige Portion Nostalgie in Form von viel zu viel verschwendeter Zeit mit PC-Installationen zurück. Gute alte Zeit. 😀

Und schon sind wir bei den abschließenden Schritten der Installation. Selbstverständlich darf die obligatorische Lizenz-Key-Abfrage nicht fehlen:

Nun kann XP zum ersten Mal gestartet werden:

*Seufz* – manches hat sich in den vielen Jahren nicht geändert. Einige Klassiker wie „sind Sie sicher?“ oder „möchten Sie sich wirklich nicht registrieren?“ werden uns wohl für immer erhalten bleiben! An dieser Stelle ein Hoch auf alle, die sich immer noch nicht bei Microsoft registriert haben! 😀

Und da ist sie auch schon unsere allseits beliebte (aber zugegeben noch unbefleckte) grüne Wiese! 🙂

Grundsätzlich ist es immer sinnvoll die Gasterweiterungen (wird z.B. für die Funktion der geteilten Ordner benötigt) zu installieren. Hierfür muss XP allerdings im abgesicherten Modus (F8 beim booten) gestartet werden:

Nachdem wir die nervigen Update- und Virenscanner-Benachrichtigungen deaktiviert haben, sollten wir noch die Sprache des Systems anpassen – auf Deutsch liest sich es sich doch einfacher. Da das nicht bei jeder System- bzw. Lizenzversion von Haus aus klappt, verwende ich immer ein Tool namens „WinXP_MUI_Changer“. Die ISO-Datei kann einfach über das virtuelle Laufwerk eingebunden werden. Anschließend kann die „deutsche Sprache“ nachinstalliert werden:

Nach einem Neustart haben wir Windows XP auf Deutsch – sehr schön. Nun können wir mit der eigentlichen Konfiguration der Spiele loslegen. Hierfür habe ich mir einen geteilten Ordner „transfer“ eingerichtet. Mit Hilfe dessen können Dateien zwischen den Betriebssystemen ausgetauscht werden. Praktischerweise kann der Ordner einfach als Netzlaufwerk eingebunden werden:

Als ersten Schritt habe die Dateien der bisherigen „Retrogamebox“ kopiert um einige Spiele davon zu übernehmen. Bei einigen hatte ich Glück, da diese meistens nur aus einer Hand voll Dateien bestehen und noch nativ unter Windows XP laufen (z.B. Alien Force). Für jedes ältere Dos-Spiel habe ich eine eigene Batch-Datei erstellt, welches DosBox startet und nach Verlassen des Spiels automatisch wieder beendet. Ebenso werden die Debug-Konsole sowie das startende Batch-File unterdrückt. So sieht z.B. ein Aufruf für „Blockout“ aus:

Für die Verknüpfung des Batch-Files auf dem Desktop habe ich dann noch individuelle Icons erstellt. So lässt sich ein Spiel leichter zuordnen.

Ein „Zwischenfazit“ der bereits zum Laufen gebrachten Games:

Fun Fact: Selbstverständlich habe ich auch Verknüpfungen für die „klassischen“ Windows-Spiele (Solitaire, Minesweeper, Pinball, …) angelegt – die gehören einfach dazu! 😉

Einige andere Spiele mussten wiederum fest auf der Maschine installiert werden. Dabei gab es einige sehr lustige Erfahrungen. So musste z.B. bei den Setups einiger alter Spiele von Sierra immer angegeben werden, ob man denn ein abgespieltes Soundfile gehört hat:

Nicht zu vergessen die klassischen Installationsdialoge mit den bunten Ladebalken mit fragwürdiger Aussagekraft auf der linken Seite:

Nachdem die einfachen (meist älteren Spiele) aus dem Weg geräumt waren, ging es so langsam an die zähen Brocken ran. Diese benötigen zwingend die Spiel-CD im CD-Laufwerk (z.B. Roller Coaster Tycoon). Wenn man Glück hat, kann man die Spiele mit sogenannten „No-CD-Cracks“ austricksen, manche wurden allerdings so sorgfältig (oder schlampig) programmiert, sodass das nicht möglich ist. In dem Fall bliebt uns nur noch übrig, die CD tatsächlich ins Laufwerk zu legen – virtuell versteht sich! 😉

Da das unter Windows XP leider noch nicht nativ möglich war, verwende ich hierfür WinCDEmu, ein kostenloses Tool zum Emulieren von Laufwerken, welches auch Kommandozeilenbefehle anbietet. Damit ich diese einfacher ausführen kann, habe ich die Pfadvariable angepasst:

Anschließend habe ich mir ein ISO-Image des Spiels erstellt. Dieses wird beim Doppelklick auf das Desktopsymbol im Hintergrund gemountet und das Spiel kann somit gestartet werden.

Ein weiterer Punkt sind frühe 3D-Titel, welche zu Windows 9x-Zeiten angesagt waren. Diese funktionieren leider sehr unterschiedlich und es ist nahezu unmöglich eine perfekte Umgebung für alle Spiele aufzubauen. So läuft z.B. „Tony Hawks Pro Skater 3“ nativ mit dem in der VirtualBox integriertem 3D-Beschleuniger, während einige andere Titel wie z.B. „Croc – Legend of the Gobbos“ oder „Gex 3D – Enter the Gecko“ spezielle 3D-Beschleuniger (3dfx) benötigen.

Für solche „Härtefälle“ haben findige Entwickler eine 3D-Virtualisierungsschnittstelle namens „nglide“ entwickelt. Diese gaukelt dem Rechner vor, er würde einen Voodoo-Grafikchipsatz besitzen. Die Entwickler haben sogar eine Kompatibilitätsliste herausgegeben, welche ggf. spezielle Anforderungen für jedes Spiel aufführt. Theoretisch können so diverse Klassier wieder zum Laufen gebracht werden, allerdings funktioniert nglide leider nicht wirklich im Zusammenspiel mit VirtualBox. Eine emulierte 3D-Umgebung, welche in einem virtualisierten Betriebssystem durch virtualisierte Grafiktreiber emuliert wird, ist dann eben doch mindestens eine Ebene zu viel… 🙂

Dann gibt es noch „extreme Härtefälle“, welche einige Extrakniffe wie z.B. virtuellen RAM konfigurieren, Batch- und VBS-Dateien zwischenschalten oder sogar die CPU künstlich verlangsamen benötigen. Doch selbst diese Tricks helfen meist nur bedingt und sind und erfordern ein hohes Maß an Frustrationstoleranz (Stichwort „trial and error“). Es gibt also einen Bodensatz an Spielen, auf die ich wohl schlicht und einfach verzichten muss. Als „Workaround“ kann man noch versuchen eine andere Version des Spiels für ein anderes System (z.B. N64, PS2, etc.) auf dem Computer mit einem Emulator zum Laufen zu bekommen. So schaffen wir es z.B. mit „Project64“ (einem Nintendo 64 Emulator) den guten alten Gex auf den Computer zu bringen:

Fazit: Mit viel Zeit/Geduld ist es möglich, das ein oder andere Spiel auch in einer virtualisierten Umgebung zum Laufen zu bekommen. Meist geht das jedoch nur mit Abstrichen (fehlender Sound, fehlerhafte Anzeige, etc.). Für diese extremen Härtefälle braucht es schlicht und einfach originale Hard- und Software aus der entsprechenden Zeit. Gut, dass einige mir wichtige Titel – wie hier im Beispiel „The Curse of Monkey Island“ – trotzdem laufen! 🙂

Ich bin dann mal weg – Gouverneurin Elaine Marley muss aus den Klauen des bösen Geisterpiraten LeChuck befreit werden! 😉

Write a comment