Kennt ihr „Rayman“? Nein? Kein Problem. Dann lasst uns doch einfach mal gemeinsam einen Blick in das Handbuch werfen. Vielleicht finden wir so heraus, was es mit „Rayman“ auf sich hat:

Bitte was? Wer aus dem wirren Text nicht schlau geworden ist, dem geht es so wie mir – anno 2000. Doch mittlerweile bin ich älter und weiser, darum lasst mich kurz erklären, wer oder was „Rayman“ ist. Rayman ist ein im Jahr 1992 geborener Videospielcharakter und Protagonist der gleichnamigen Reihe von Jump-’n’-Run-Spielen. Im Lauf der letzten Jahrzehnte hat Rayman einige Abenteuer zusammen mit seinen Freunden erlebt und selbst heutzutage werden in unregelmäßigen Abständen noch neue Rayman-Spiele veröffentlicht.
Heute wollen wir uns aber auf Raymans erstes Abenteuer aus dem Jahre 1995 konzentrieren. Der Arm- und Beinlose Held brauchte ein Jahr, bis er den Sprung von den Konsolen der Zeit (Atari Jaguar, Sega Saturn und Sony Playstation) auf den PC (bzw. in das Betriebssystem MS-DOS) schaffte. Ich selbst kenne Rayman hauptsächlich dank dieser CD:

Ich weiß nicht mehr, woher diese CD kommt, ich weiß nur, dass sie schon seit vielen Jahren in meinem Besitz ist. Bei der Disc handelt es sich um eine – von der Pointsoft GmbH veröffentlichte – Budget-Version von Rayman aus dem Jahr 2000. Ich erinnere mich noch gut daran, zahlreiche Nachmittage mit einem Schulfreund zusammen Rayman gespielt zu haben. Jeweils abwechselnd wurde versucht, den gliederlosen, anthropomorphen Protagonisten durch die Levels zu bugsieren, meist mit eher geringem Erfolg. Nicht ohne Grund gilt der erste Teil bis heute als echt zäher Brocken und wird selbst von Fans der Reihe als der schwerste Teil angesehen.

Heute wollen wir mal versuchen, Rayman in der DOSBox zum Hüpfen zu bekommen. Die CD wird dafür ein ein USB-Laufwerk geschmissen…

…und anschließend im DOS-Emulator gemountet:

Die für Rayman benötigten Dateien sind schnell auf Festplatte kopiert:

Schon kann es losgehen:

Unser Abenteuer beginnt im Wald der Träume. Das ist der Abschnitt, an den ich mich noch am Besten erinnere. Vielleicht liegt das daran, dass ich es meist nie in die späteren Levels geschafft habe! 😀

Besonders cool fand ich immer die Ladebildschirme, die sich in bester PowerPoint-Manier mit unterschiedlichen Animationen ein- oder ausblenden.

Vom Gameplay her gibt es hier klassische 2D-Plattformkost. Rayman ist optisch betrachtet ein sehr schönes Spiel, welches zu einer Zeit, in der 3D-Games den 2D-Titeln so langsam den Rang abliefen, nochmal kräftig die Muskeln zweidimensionaler Games spielen ließ.

Viel weiter als bis in den furchtbaren Musik-Level habe ich es – trotz 99-Leben-Cheatcode – noch nie geschafft. Das Spiel ist echt sauschwer!

Dabei fällt mir auf – der gute Rayman scheint bestens gealtert zu sein, denn er hüpft erstaunlich flink durch die DOSBox. Genau genommen zu flink! Das Spiel läuft für mein Empfinden etwas ruckartig und gleichzeitig viel zu schnell.

Tja, das sind die Freuden der Emulation älterer Systeme. Es ist eben keine originale Hardware und jeder Prozessor tickt etwas anders. Gut, dass wir die DOSBox-Einstellungen entsprechend anpassen können. Dank fest definierten CPU-Zyklen springt Rayman wieder in Normalgeschwindigkeit:
Fun Fact: Natürlich könnten wir es uns auch einfach machen und das für moderne Betriebssysteme angepasste Fan-Remake „Rayman Redemption“ spielen, aber wo bleibt da die Challenge? 😛

So weit, so gut. Wisst ihr, was mich aber echt stört? Leider braucht Rayman zum Spielen immer eine eingelegte CD:

Ist das nicht der Fall, hängt sich der virtuelle DOS-Computer beim Start des Spiels einfach auf. Das gleiche passiert beim Versuch, Rayman zu überlisten, in dem man einfach gar kein Laufwerk installiert, bzw. mountet. Mist!

Doch wo ein Wille ist, ist auch ein Weg. Findige Rayman-Enthusiasten haben sich bereits Gedanken gemacht, und entsprechende Patches entwickelt, welche den CD-Check ausbauen sollten. Dafür muss die Datei „RAYMAN.EXE“ an mehreren Stellen verändert werden:
Fun Fact: Die Entstehungsgeschichte dieser Patches ist echt interessant, denn eine einfache Deaktivierung der CD-Prüfung reicht nicht aus und es müssen auch alle anderen Fälle wie „CD-Laufwerk ist nicht vorhanden“, „CD doch eingelegt“ oder „CD eines anderen Spiels eingelegt“ bedacht und angepasst werden. Die Analyse erinnert mich fast etwas an die wilden Aktionen, die wir in den Artikeln 168, 169, 279 und 280 gemacht haben! 😉

So die Theorie – denn abhängig von der jeweiligen Version des Spiels (unterschiedliche Versionsnummer oder Herkunft wie z.B. amerikanisches oder europäisches Release), muss die ausführbare Spieldatei an verschiedenen Stellen gepatched werden. Jede Version arbeitet dabei ein kleines bisschen anders, bzw. hat die entsprechenden Check-Routinen an anderer Stelle implementiert.

Ok, aber das klingt doch trotzdem super! Jemand hat sich bereits Gedanken gemacht und eine Lösung gefunden – dann müssen wir ja nur den korrekten Patch für unsere Version verwenden und alles ist gut, oder? Das dachte ich auch, blöd nur, dass es für unser Pointsoft Budget-Release keinen passenden Patch gibt. Glaubt mir – ich habe alle online zur Verfügung stehenden Patches probiert.

Es hilft nichts, wir müssen also wieder selbst Hand anlegen. Vielleicht schaffen wir es, mit Hilfe der bereits zur Verfügung stehenden Informationen einen funktionierenden Patch für unsere Version von Rayman zu basteln? Als erstes muss die RAYMAN.EXE entpackt werden. Diese ist nämlich mit „PMODE/W“, einem sog. „DOS Extender“, also einem Programm, welches die Fähigkeiten des MS-DOS-Betriebssystems erweitert, um Spiele und Anwendungen mit höherem Speicherbedarf und erweiterten Funktionen (z.B. 32-Bit-EXE-Dateien) ausführen zu können, komprimiert. Dafür benötigen wir ein Dekompressor-Tool namens „PMWUNLIT“.

Ist die EXE-Datei erst mal entpackt, können wir sie mit einem Hex-Editor erkunden. Anhand des Aufbaus und der Größe der Binärdatei würde ich vermuten, dass es sich bei unserer Rayman-Version prinzipiell um das europäische, bzw. deutsche Release 1.20 handeln müsste. Es gibt für Version 1.20 bereits einen Patch, der für die italienische, spanische und holländische Version funktionieren müsste. Diesen können wir aber wie bereits erläutert nicht verwenden, denn leider befinden sich in der deutschen Version an den angegebenen Adressen nicht die zu erwartenden Werte.

Vielleicht können wir ihn aber entsprechend anpassen? Ich kann mir nicht vorstellen, dass die deutsche Version völlig unterschiedlich entwickelt wurde. In der Tat müssen wir nicht lange suchen, um auch in der deutschen RAYMAN.EXE die zu patchenden Stellen – und zwar exakt 16 Bytes später – zu finden.
Fun Fact: Auch bei allen weiteren Adressen, an denen wir etwas anpassen müssen, sieht es so aus, als wären sie einfach um 16 Byte (hexadezimal 10) im Code verschoben!

Wenn unsere Theorie stimmt, können wir nun einfach die Werte an den Adressen des europäischen Patches (jeweils plus 16 Byte) ändern (siehe rot markierte Stellen) und es sollte klappen:

Tatsächlich lässt sich Rayman jetzt ohne CD starten…

…und spielen. Klar, ohne eingelegte CD läuft auch keine Musik (denn die wird beim Spielen direkt von der CD gestreamt) und man hört nur Geräusche, aber das stört mich eigentlich nicht, schließlich ist die Musik der PC-Version leider eh den Konsolenfassungen unterlegen und besteht nur aus zusammengeschnittenen Medleys des originalen Soundtracks. Alternativ – sofern einen das stört, könnte man ein virtuelles Abbild der CD immer noch per IMGMOUNT-Befehl in die DOSBox einbinden. Das würde aber wohl den Sinn eines „No-CD-Patches“ untergraben! 😀

In jedem Fall bin ich happy, dass unser kleiner Hack so gut funktioniert hat. Um die Sache rund zu machen, habe ich entsprechende Anweisungen, wie man die deutsche Version patcht, im Rayman-Forum (ja, so etwas gibt es wirklich) gepostet. Der Ersteller der Patches aller anderen Versionen war so nett und hat die deutsche Variante mit auf seiner Seite veröffentlicht. So sind alle Patches zentral zugänglich, falls irgendjemand mal ein ähnliches Problem haben sollte:

Ich denke damit sollten wir es mit „Rayman“ aber auch gut sein lassen. Ob ich jemals über die ersten paar Level hinaus kommen werde? Wer weiß. Sicher ist, dass ich es wohl noch einige Male probieren werde! 😉

In diesem Sinne – bis die Tage, ciao!