#186 – cart reader – III – functions

Mann oh Mann, was war das für ein Akt, bis wir den Cart Reader beim letzten Mal endlich zusammengebaut hatten…

Fun Fact: Ich habe spaßeshalber nochmal die Lötstellen gezählt, bzw. grob überschlagen – es waren etwas über 300! Ich will gar nicht darüber nachdenken, wie viel Schweiß, Lötzinn und Hopfenkaltschalen in die Verwirklichung des Projekts geflossen sind! 😀

Trotzdem finde ich es hat sich gelohnt und wir sind vergleichsweise günstig damit weggekommen, weil viele Teile recycelt werden konnten! 🙂

Wie versprochen möchte ich euch heute ein paar Funktionen des Teils vorstellen, schließlich gibt es ja noch einen ganzen Stapel an Spielen zu digitalisieren:

Als erstes sollten wir den Cart Reader mal einschalten und prüfen, ob er überhaupt läuft. YES! Das Teil geht an und wir sehen etwas am Display! Wooohoooo! 🙂 Leider ist es eine Fehlermeldung! xD Naja, kein Wunder, es ist ja auch keine MicroSD-Karte eingesteckt. Ich denke das sollten wir schnell nachholen und die MicroSD-Karte, welche wir in Artikel 184 entsprechend vorbereitet haben einstecken. Und siehe da – mit eingesteckter Karte erscheint sofort das Hauptmenü:

Fun Fact: Die MicroSD-Karte wird nicht nur für gespeicherte Dateien benötigt. Von ihr werden auch – abhängig vom Modultyp – einige für spezielle Module benötigte Informationen gelesen.

Ich kann immer noch nicht glauben, dass das Teil tatsächlich angeht. Um ehrlich zu sein war ich nach der improvisierten Lötaktion beim letzten Mal sehr skeptisch! 😀

Na, dann wird es Zeit das erste Spiel zu „dumpen“ (so nennt man den Vorgang des digitalen Sicherns der Daten von einem Spielmodul). Fangen wir mit einem SNES-Spiel an. Wie bei einer Konsole auch wird es einfach auf den Modulslot aufgesteckt. Je nach Modultyp müssen die Schalter auf der rechten Seite dann noch unterschiedlich gesetzt werden (siehe hier).

Fun Fact: Der Modulslot besitzt 62 Pins, aber die meisten SNES-Spiele haben nur 46 Pins. Es gibt allerdings auch spezielle Module, welche einen Zusatzchip (Super FX, CX4, SA-1, etc.) verbaut haben und genau diese Spiele verwenden die 16 zusätzlichen Pins (acht auf jeder Seite der Platine).

Nachdem wir uns vom Hauptmenü über die Druckknöpfe ins das Supernintendo-Untermenü navigiert haben, muss noch ausgewählt werden, um welchen Modultyp es sich handelt. In unserem Fall ist das eine normale Super Nintendo Cartridge. Anschließend werden die Header-Informationen des Moduls ausgelesen und angezeigt. Mit der Auswahl „Read Rom“ wird dann der Lesevorgang gestartet und die Spieldatei auf die MicroSD-Karte gesichert.

Fun Fact: Die anderen Auswahlmöglichkeiten wie z.B. NPower oder Satellaview sind für sehr spezielle Anwendungsfälle, welche auch einen (ansonsten optionalen) Taktgeber benötigen. Nichts für uns! 😀

Tja – Vertrauen ist gut, Kontrolle ist besser. Deshalb habe ich die MicroSD-Karte gleich wieder ausgeworfen um mir deren Inhalt am PC anzusehen. Tatsächlich ist in einem Unterverzeichnis die entsprechende Datei mit der Dateiendung „.sfc“ (steht für „Super Famicom“, die japanische Variante des Supernintendos) vorhanden.

Dann wollen wir die ausgelesene ROM-Datei mal testen. Hierfür habe ich sie in einen Emulator (snes9x) auf den PC geladen. Läuft – das Spiel lässt sich starten! 🙂

Natürlich habe ich es noch mit weiteren Module probiert, darunter auch „Super Mario World“. Nicht ganz grundlos, denn das Modul hat einen SRAM zum Erhalt des Spielstands verbaut. So können wir prüfen, ob auch das Sichern von Spielständen funktioniert! 🙂

Klappt! Aber klappt auch der „Rückweg“ (also das Schreiben eines digitalen Spielstands auf das Modul)? Um das zu testen, müssen wir im Emulator etwas weiterspielen und ein paar Level auf der Donut-Ebene überstehen! 😉

Erst wenn diese (sowie das Geisterhaus am Ende) bezwungen sind, bietet uns das Spiel die Möglichkeit den aktuellen Fortschritt zu speichern.

Jetzt müssen wir nur noch die Spielstands-Datei (.SRM) zurück auf die MicroSD-Karte packen und mit dem Cart Reader auf das Modul schreiben.

Ob der Transfer wirklich geklappt hat, lässt sich nur auf einer echten Konsole an einem echten Fernseher erkennen. Funktioniert ohne Probleme – sehr geil! 🙂

Fun Fact: Mit dem Reader können so gut wie alle SNES-Module ausgelesen werden, auch die, bei denen ein spezieller Hardware-Chip (z.B. SuperFX) verbaut wurde. Eine kleine Ausnahme gibt es dann allerdings doch: Module, welche einen SA-1-Chip verlötet haben, können nicht ausgelesen werden, da diese keinen eigenen Quarz verlötet haben und einen Takt vom SNES erwarten. Damit man diese Module auch auslesen kann, müsste man einen eigenen Lockout-Chip, einen weiteren Kondensator sowie einen Clock Generator verlöten. Meiner Meinung nach zu viel Aufwand für eine Hand voll Spiele welche größtenteils eh nur in Japan erschienen sind und von denen ich kein einziges besitze! 😀

Nachdem das so gut funktioniert hat machen wir gleich weiter mit dem N64. Auf dem Stapel liegt „F-1 World Grand Prix“. Um ehrlich zu sein nicht gerade einer meiner Favoriten, aber wenn das Spiel schon rumliegt können wir es auch zum Testen verwenden! 😀

Mit entsprechend gesetzten Schaltern (diesmal z.B. 3V Versorgungsspannung im Vergleich zum Supernintendo) lässt sich das Spiel ohne Probleme auslesen! 🙂

Zum Testen des Spiels habe ich „Project64“, einen populären N64-Emulator verwendet. Gameplay-technisch gibt es nicht viel zu sagen. Es ist eben Formel 1! Warum Kollege Schumacher so langsam fährt, wird wohl nur er selbst wissen. Vielleicht bin ich auch einfach nur schlecht in solchen Rennspielen! 😀 Viel wichtiger ist mir, dass der Übertragungsvorgang problemlos funktioniert hat. Die Intro-Sequenz vor dem Rennen lässt mich dann aber doch schmunzeln. „Australien – 25 Grad – Sonnig – die Frisur hält! 😛

Fun Fact: Man sollte sich nicht verwirren lassen, wenn das Display für einige Zeit „einfriert“. Der Lesevorgang läuft im Hintergrund weiter und kann die ein oder andere Minute dauern! Kein Wunder – N64-Spiele sind ja auch viel größer als ihre „kleinen Brüder“ auf dem SNES! 😉

Natürlich habe ich den Auslesevorgang auch mit „Super Mario 64“ – einem meiner persönlichen Evergreens ausprobiert. Ob der Spielstand (welcher sich auf der Platine, bzw. in einem EEPROM in nur 512 Byte befindet) auch gelesen wird?

Fun Fact: Zum Auslesen von N64-Modulen wird eine „n64.txt“ im Hauptverzeichnis der SD-Karte benötigt. Darin befindet sich eine Datenbank in der der „Save Type“ (SRAM, Flashram, EEPROM) sowie die ROM-Größe vermerkt ist, da diese Informationen nicht in der ROM-Datei selbst hinterlegt sind und dementsprechend nicht automatisch vom Cart Reader gelesen/erkannt werden können.

Na klar! Alle meine 120 mühsam gesammelten Sterne sind noch da – geil! 🙂

Ob der umgekehrte Weg auch funktioniert? Um das auszuprobieren lege ich fix einen neuen Spielstand an und sammle zwei Sterne ein (Kettenhund befreien und Peachs Rutschbahn in unter 21 Sekunden absolvieren). Die Spielstanddatei packe ich anschließend auf die MicroSD-Karte und spiele sie über den Cart Reader wieder aufs Modul. Und tatsächlich – auch der hochgeladene Spielstand wird ohne Probleme erkannt. Sehr schön!

Ob das auch mit einem Spielstand, der sich in einem Controller Pak befindet, so gut funktioniert? Um das zu testen benötigen wir das in Artikel 185 erstellte Adapterkabel, einen N64-Controller sowie ein darin eingestecktes Controller Pak.

Fun Fact: Mit dem Cart Reader lässt sich – dank eingebautem Diagnosetool – auch prima die korrekte Funktion eines Controllers überprüfen – sehr lobenswert!

Der Lesevorgang klappt ohne Probleme. Die daraus resultierende „MPK“-Datei ist ein Abbild des gesamten Controller Paks welches wir mit Hilfe einer Webseite aufdröseln und genauer betrachten können. Aha, da habe ich wohl vor einiger Zeit einen Gex 3D-Spielstand angelegt! 🙂

Die MPK-Datei lässt sich ohne Probleme in Project64 importieren und als „virtuelles Controller Pak“ verwenden. Sobald wir Gex 3D im Emulator starten, können wir den Spielstand lesen und an der Stelle, an der wir vor Jahren (?) das letzte Mal aufgehört haben, weiterspielen.

Und genau das mach ich jetzt – schließlich möchte ich ja wissen ob auch das Zurücksichern auf das Controller Pak klappt! Also, schnell einen Level abschließen (um eine weitere rote Fernbedienung zu erhalten), den Spielstand speichern und anschließend die MPK-Datei auf die MicroSD-Karte kopieren.

Um ehrlich zu sein war ich etwas skeptisch, weil die MPK-Datei aus dem Emulator eine andere Größe aufweist, aber meine Sorge war unbegründet, denn das scheint den N64 nicht zu stören. Die Datei wird ohne Probleme gelesen – Wahnsinn, es läuft ja fast zu gut um wahr zu sein?! 😀

Tja, und was soll ich sagen Leute – ich habe das gleiche Prozedere noch mit Game Boy, Game Boy Color und Game Boy Advance Spielen ausprobiert:

Fun Fact: Für GBA-Spiele wird wieder eine „gba.txt“ im Hauptverzeichnis der MicroSD-Karte benötigt, in welcher die Speichertypen und ROM-Größen der Module hinterlegt sind.

Das Ergebnis war stets das gleiche – es hat alles ohne Probleme funktioniert. Sei es nun das Lesen von ROMs und Spielständen oder das Schreiben von Savegames:

Man muss eigentlich nur darauf achten stets die entsprechenden Schalter (je nach auszulesendem Modultyp) korrekt zu setzen:

Ich bin absolut geflashed! Um ehrlich zu sein hatte ich mit zahlreichen Problemen und Fehlern gerechnet – gerade weil das ganze so „hochprofessionell“ von mir zusammengebaut wurde! 😀 Aber was soll man sagen, manchmal muss man wohl auch Glück haben. 🙂

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! 😀

Ende gut, alles gut. Nachdem das so gut funktioniert hat, habe ich mir glatt eine kleine Spielesession verdient, oder? 😉 Durch das Dumpen von SNES-Spielen habe ich irgendwie wieder Lust auf Super Mario World bekommen. Es gibt einfach nichts Cooleres als auf Yoshi durch die Level zu reiten! 😀

In diesem Sinne – bis die Tage, ciao! 🙂

Write a comment