#187 – cart reader – IV – n64 reading repros

Beim letzten Mal haben wir ja schon die Grundfunktionen des Cart Readers getestet. Soweit funktioniert alles ganz gut und ich bin mit dem Teil echt zufrieden! 🙂

Fun Fact: Theoretisch gäbe es auch die Möglichkeit mit dem Ding Sega Mega Drive Module auszulesen. Das kann ich allerdings nicht ausprobieren, da ich kein Mega Drive Spiel besitze. Dementsprechend ist mir das auch ziemlich egal ob das funktioniert oder nicht! 😀

Wieso nun also noch mehr Beiträge zu dem Teil? Nun, es gibt eine Funktion, die der Cart Reader draufhat, die wir bisher noch überhaupt nicht beleuchtet haben. Laut dieser Anleitung kann man mit dem Teil sogar spezielle N64 Module neu flashen. Das bedeutet letztendlich nichts anderes, als dass wir den verbauten Flashspeicher mit anderen Spieldateien beschreiben können. Klingt mega abgefahren! 😀

Natürlich kann nicht einfach jedes beliebige N64-Modul neu beschrieben werden. Generell lässt sich sogar sagen: Jedes normale (bzw. originale) N64-Spiel ist nicht zum flashen geeignet! Hierfür werden spezielle Module benötigt, welche anstelle eines nicht beschreibbaren ROM-Chips einen bestimmten Flashspeicherbaustein auf der Platine verbaut haben. Das ist meist bei Romhacks oder China-Reproduktionen von originale N64-Spielen der Fall. Wie es der Zufall will, habe ich zwei dieser Exemplare hier herumliegen:

Fun Fact: Diese „speziellen“ N64-Module werden auch häufig „Repros“ (was für Reproductions steht) genannt, weil es zumeist nachgemachte und nicht vom ursprünglichen Entwickler erstellte Spielmodule sind. Somit wäre die Frage der kryptischen Artikelüberschrift auch schon geklärt! 😉

Das erste Modul mit dem Titel „Banjo-Kazooie: The Jiggies of Time“ ist ein Romhack (also eine Art Modifikation bzw. Erweiterung) des Spiels „Banjo-Kazooie“.

Fun Fact: Ich habe das Modul vor gut zwei Jahren bei einer Tombola in einem Videospielforum gewonnen. Eigentlich schade, dass es seitdem nur herumgelegen ist – jetzt bekommt das gute Stücke endlich etwas Aufmerksamkeit!

Grob gesagt ist es ein von Fans erstelltes Crossover zwischen Banjo-Kazooie und The Legend of Zelda. So wurden z.B. Leveldesigns und Texturen des populären N64-Klassikers „The Legend of Zelda: Ocarina of Time“ importiert und eine eigene, neue Handlung für unsere beiden Protagonisten (Bär und Vogel) gestrickt. Sehr empfehlenswert für Fans beider Franchises! 🙂

Ich denke, bevor wir versuchen das Modul zu beschreiben, sollten wir erst mal prüfen, ob sich das Spiel, bzw. der verbaute Flashbaustein auslesen lässt. Schließlich wäre es ja schade, wenn wir das Modul einfach überbügeln und dann die Spieldaten verlieren!

Das Auslesen von N64-Modulen haben wir ja schon in Artikel 186 geübt, daher sollte es vermutlich keine Probleme geben, oder?

Fun Fact: Wer mich kennt weiß bestimmt schon, dass diese provokative Fragestellung darauf hindeutet, dass es doch Probleme gibt! 😀

Wir wollen mal optimistisch bleiben, ok? Also nichts wie drauf mit dem Modul auf den Cart Reader. Tatsächlich wird das Modul als „Banjo-Kazooie“ erkannt und ausgelesen. Ich vermute, dass wir den Fehler bezüglich der Prüfsumme ignorieren können, da es sich ja nicht wirklich um Banjo-Kazooie, sondern einen Hack des Spiels mit verändertem Datenbestand handelt.

Jetzt können wir überprüfen, ob sich das ausgelesene Spiel starten lässt. Hierfür verwende ich wie beim letzten Mal den N64-Emulator „Project64“. Leider ist das nicht der Fall und uns springt eine fette Fehlermeldung entgegen. Woran liegt’s?

Eigentlich ist die Lösung des Problems ganz einfach, nur die Erklärung dazu ist es nicht! 😀 Wer sich an den letzten Beitrag erinnert – auf der SD-Karte befindet sich eine Textdatei („n64.txt“) anhand welcher der Speichertyp des Moduls und auch die ROM-Größe durch Zuordnung einer „game id“ ermittelt wird. Der Cart Reader erkennt also, dass es sich bei der game id „NBKE“ um das Spiel „Banjo Kazooie“ handelt. Dementsprechend werden beim Versuch das Modul auszulesen 16MB Daten aus dem Flashspeicher auf die MicroSD-Karte transferiert. Klingt logisch!

Und wo ist jetzt der Fehler? Ganz einfach – laut dieser Seite ist das Spiel bzw. der Romhack 64MB groß, d.h. im Endeffekt haben wir beim Sicherungsvorgang nur ein Viertel des Spiels ausgelesen! Was für ein Fail! 😀

Um diesen Missstand zu beheben, müssen wir einfach in der Textdatei den Wert für die ROM-Größe auf „64“ anpassen:

Fun Fact: Vielleicht ist euch aufgefallen, dass die game id „NBKE“ zwei Mal in der Liste auftaucht. Das liegt daran, dass von dem Spiel unterschiedliche Versionen (und somit auch verschiedene Modulrevisionen) veröffentlich wurden! „AD429961“ steht für Version 1.0 und „FB7FFB10“ für Revision 1. Gar nicht so einfach da den Überblick zu behalten!

Mit korrekt gesetzter Modulgröße klappt auch der Lesevorgang ohne Probleme. Wobei – der Cart Reader spuckt zwar nach der Berechnung der Checksumme immer noch einen Fehler aus, aber das ist ja auch völlig klar, schließlich ist in der „n64.txt“ ja die Prüfsumme des originalen Banjo-Kazooie-ROMs angegeben und nicht die des Romhacks. Somit können wird den Fehler gepflegt ignorieren! 😉

Fun Fact: Beim Auslesen des Moduls ist Geduld gefragt. Der gesamte Vorgang dauert (inkl. Prüfsummenberechnung) ca. 15 Minuten! 🙂

Und, klappt es jetzt? Tatsächlich – das Spiel startet und wir landen im Hauptmenü:

Um die Sache rund zu machen können wir jetzt noch versuchen den Spielstand vom Modul auszulesen. Der „Save Type“ ist glücklicherweise zwischen Original und Romhack der gleiche, dementsprechend muss nichts in der Datenbankdatei angepasst werden. Allerdings muss die vom Emulator erzeugte Spielstanddatei mit der vom Modul gelesenen ersetzt werden:

Mann – ist das schön, wenn ausnahmsweise Mal etwas auf Anhieb funktioniert! 😀 Sehr geil – somit haben wir auch unseren Spielstand „digitalisiert“, bzw. auf den PC übertragen! 🙂

Bevor wir uns dem Schreibvorgang widmen, sollten wir uns gleich noch den zweiten Kandidaten ansehen. Im Vergleich zum Banjo-Kazooie-Romhack ist „40 Winks“ eine typische China-Reproduktion. Allerdings ist das Modul in gewisser Hinsicht doch etwas Besonderes, denn es wurde nicht einfach ein (z.B. sonst nur recht teuer erhältliches) Spiel kopiert, sondern bei dem Spiel handelt es sich um einen Titel, welcher offiziell nie erschienen ist!

Die Geschichte dazu ist kurios: Im Jahr 1999 zog der Publisher GT Interactive kurz vor der Veröffentlichung des Spiels den Stecker, da das – zuvor auf der Playstation 1 herausgebrachte – Spiel durch eher durchschnittliche Rezensionen und Verkaufszahlen keinen finanziellen Erfolg versprach. Merkwürdig an der Story ist die Tatsache, dass die Umsetzung für das Nintendo 64 bereits fertig programmiert war. Es waren sogar schon Module produziert und zur Auslieferung vorbereitet worden und dennoch wurde das Spiel nicht veröffentlicht!

Fun Fact: Ironischerweise lag die fertige N64-Version einigen Spielemagazinen bereits zum Test vor und kam überwiegend positiv bei den Kritikern an. Im Nintendo Power Magazin wurde sogar bereits ein ganzer Beitrag mit Hinweisen und Tipps für das Spiel (wie so eine Art Spielberater) abgedruckt. Manche Dinge ändern sich wohl nie – das „Top-Management“ muss man als einfacher Bürger nicht immer verstehen… 😉

Eine digitale Kopie dieser Version fand vor einigen Jahren den Weg ins Internet und so wurden mit Hilfe einer Kickstarter-Kampagne im Jahre 2018 tatsächlich neue N64-Module produziert und das Spiel wurde veröffentlicht – schon irgendwie abgefahren! 😀

Das Spiel selbst handelt von einem bösen Typ namens NiteKap, welcher die Winks (traumspendende Wesen) entführt und so sämtlichen Menschen Alpträumen beschert. Die Zwillingskinder Ruff und Tumble ziehen los, die letzten 40 Winks einzusammeln, um so dem Wahnsinn ein Ende zu bereiten. Alles in Allem ist es ein putziges Spiel, welches prima ins Repertoire der knuffigen N64-Platformer à la Mario und Banjo passt. Auch vom Gameplay her (klassisches Jump ‘n‘ Run) wäre der Titel viel besser auf dem N64 als auf der PS1 aufgehoben gewesen. Ich bin immer noch irritiert, dass man sich damals (Ende 1999) gegen eine Veröffentlichung entschieden hat! 🙁

Fun Fact: Im Vergleich zur PS1-Version gibt es auf dem N64 sogar einen Zweispieler-Modus! 🙂

Die Frage ist einfach: Lässt sich 40 Winks einfacher auslesen als der Banjo-Kazooie-Hack? Nicht wirklich, denn beim Versuch genau das zu tun bekommen wir sofort den Hinweis, dass das Modul nicht erkannt wurde. Kein Wunder – nach einem kurzen Blick in die n64.txt fällt auf, dass gar kein Eintrag für die game id „N4WX“ (siehe hier) vorhanden ist. Glücklicherweise ist das egal, denn der Cart Reader ist so clever und frägt uns von sich aus nach der Größe der ROM-Datei. So lässt sich das Modul auch ohne Datenbankeintrag auslesen. Was lernen wir daraus? Lieber gar kein Datenbankeintrag als ein falscher! 😀

Fun Fact: Da das Spiel keinen SRAM verbaut hat und seine Spielstände auf einem Controller Pak (siehe Artikel 32) ablegt, brauchen wir erst gar nicht versuchen einen Spielstand auszulesen! 😉

Und siehe da – auch Ruff und Tumble haben ihren Weg auf den PC gefunden und können jetzt im Emulator auf die Suche nach den verlorenen Winks gehen! 🙂

Mann – was für eine Odyssee… Und dabei wollte ich doch nur schnell die beiden Module auslesen bevor wir uns an das Beschreiben selbiger machen! 😀 Tja, ich befürchte dafür haben wir heute leider keine Zeit mehr. Wir sind einfach mal wieder viel zu weit vom eigentlichen Thema abgedriftet…

Egal, das lässt sich jetzt nicht ändern, so läuft das eben manchmal bei solchen Projekten. Genau diese unvorhergesehenen Ereignisse machen ja auch irgendwie den Reiz aus. Wenn alles auf Anhieb funktioniert, dann fehlen die Aha-Erlebnisse und meist bleibt (zumindest bei mir) von dem Thema dann auch nicht viel in der Birne hängen! 😀

In diesem Sinne – haltet die Ohren steif, bis zum nächsten Mal! 🙂

Write a comment