#223 – cart reader V4 – nes

Ach ja, beim letzten Mal haben wir ja die Miniaturversion des Cart Readers samt seiner Aufsteck-Adapter fertiggestellt:

Oh Mann, ist das dein Ernst, lieber retrololo? Was gibt es denn noch zu dem Teil zu erzählen? Wann hat der Wahnsinn endlich ein Ende? 😛

Keine Panik ich versuche es kurz zu machen – versprochen! 😉 Letztendlich geht es heute nur um ein sehr kleines Thema, welches sonst wohl gänzlich untergegangen wäre. Das kann ich natürlich auf keinen Fall zulassen! 😛

Wer sich erinnert – gegen Ende von Artikel 222 habe ich erwähnt, dass es für das Gerät noch ein paar weitere Aufsteck-Adapter gäbe. Um ehrlich zu sein, habe ich an den meisten kein Interesse, da es sich überwiegend um exotischere Konsolen (oder welche, die ich nicht besitze) handelt, aber wie es der Zufall will, habe ich eine Adapterplatine zum Auslesen von NES-Spielen ergattern können:

Das trifft sich gut, denn tatsächlich habe ich auch ein paar NES-Spiele! 🙂

Moment mal – da stimmt doch was nicht! Au Backe, ich höre schon die Fragen auf mich einprasseln: „Aber retrololo, genau dafür hast du doch das USB-NES Lite in Artikel 201 gebaut, oder? Damit haben wir doch eigentlich schon alle NES-Spiele digitalisiert. Und damals meintest du, dass das Handling mit der Adapterplatine für den Cart Reader sowieso viel zu kompliziert sei. Warum willst du nun also doch so ein Teil bauen?“

Ruhe, ihr Klugscheißer! 😛 Müssen denn solche Projekte immer Sinn ergeben? Es hat sich halt so ergeben und ich dachte mir, wenn der Cart Reader das auch kann, dann spare ich mir vielleicht ein Gerät im Keller. Unabhängig davon, macht es mir ja auch ein bisschen Spaß sowas zu basteln… 😉

Also – frisch ans Werk. Neben der Adapterplatine selbst brauchen wir eigentlich „nur“ einen NES-Modulslot. Leichter gesagt als getan, denn tatsächlich habe ich einige Monate auf das blöde Teil aus China warten müssen. Zugegeben – der Markt für solche Produkte ist vermutlich eher klein! 😛

Der Bau des Adapters ist sehr simpel, denn letztendlich müssen wir lediglich den Steckplatz mit der Platine verlöten. Damit das etwas einfacher klappt, macht es Sinn, die Pins der Modulslots etwas zu verbiegen, sodass sie an den Kontakten der Platine aufliegen:

Anschließend müssen nur noch 72 Pins (Vorder- und Rückseite) verlötet werden. An und für sich kein Hexenwerk, aber ja – mir ist es natürlich auch aufgefallen. Die Lötarbeit ist selbst für meine Verhältnisse extrem unsauber. Seht es mir nach – ich war an dem Abend schon recht müde und die blöden Pins wollten einfach nicht an den Stellen bleiben, an denen sie hingehören! 😀 Für einen ersten Test ist das in Ordnung, aber ich werde die Lötstellen später definitiv nochmal neu machen! 🙂

Apropos Test – wird Zeit, dass wir das gute Stück mal testen. Der NES-Adapter ist – im Vergleich zu seinen Kollegen – etwas Besonderes, denn er wird nicht direkt auf den Cart Reader aufgesteckt. Stattdessen muss das Teil in den SNES-Adapter gesteckt werden, welcher wiederrum selbst auf den Cart Reader aufgesteckt wird.

Zum Auslesen eines NES-Moduls wird dieses dann noch oben auf den Turm draufgepackt. Insgesamt eine etwas wackelige Konstruktion, aber das ist ja nur temporär für den Auslesevorgang! 🙂

Wie angekündigt ist das Handling im Vergleich zum USB-NES leider tatsächlich recht umständlich, weil man alle Eigenschaften des Moduls (also so Dinge wie den Mapper oder die Größe von PRG-ROM, CHR-ROM und RAM-Chips) vorab in der NesCartDB recherchieren und eingeben muss. Im Falle von „Super Mario Bros.“ besitzt das Modul den Mapper 0, einen 32kB PRG-Chip sowie 8k CHR-ROM.

Fun Fact: Warum ich jetzt für den Test wieder den seriellen Monitor der Arduino-IDE verwendet habe, anstatt der Smartphone-App kann ich euch im Nachhinein nicht mehr sagen. Demenz? Alzheimer? Geistige Umnachtung? Wer weiß? 😀

Ist das Spiel aber erst mal ausgelesen, lässt es sich ohne Probleme in einem NES-Emulator auf dem PC (z.B. FCEUX) spielen:

Bei einigen Spielen kann es vorkommen, dass die Header-Informationen nicht automatisch anhand der Prüfsumme der gelesenen Binärdaten erkannt werden. Das ist dann der Fall, wenn ein Spiel nicht in der auf der MicroSD-Karte befindlichen Datenbankdatei eingetragen ist. Beispiele gefällig? „Ninja Gaiden“ ist so ein Kandidat:

Beim Auslesevorgang wird keine „Cart.nes“-Datei (ausgelesene Binärdaten + iNES-Header), sondern lediglich ein binärer „Cart.bin“ (gelesene ROM-Daten ohne Metadaten) gespeichert.

Bei solchen „Problemfällen“ muss man nachträglich händisch (via Hexeditor am PC) die Header-Informationen des Moduls mit Hilfe von Informationen aus Datenbanken aus dem Internet dazu basteln – crazy! 😀

Anschließend klappt aber auch das Abspielen von „Ninja Gaiden“ im Emulator ohne Probleme:

Natürlich habe ich – analog dem USB-NES Lite – auch getestet, ob sich Spielstände von NES-Spielen lesen und schreiben lassen. Um etwas Abwechslung reinzubringen (und nicht wieder das Zelda-Modul herauskramen zu müssen) habe ich diesmal „Kirby’s Adventure“ verwendet.

Scheint so als wäre jemand fleißig gewesen, denn tatsächlich sind alle drei Speicherslots mit unterschiedlichen Spielständen belegt!

Na dann – nichts wie rauf mit dem Modul auf den Cart Reader!

Als Monitor für den Auslesevorgang nehmen wir jetzt mal wieder das Samsung Smartphone – Abwechslung muss sein! 😉

Wie nicht anders zu erwarten war, ist der Vorgang erfolgreich und wir können Kirby auch im Emulator auf dem PC spielen.

Damit der Emulator den gelesenen Spielstand erkennt, müssen wir ihn von „RAM.bin“ in „CART.sav“ umbenennen und in einen Unterordner namens „sav“ verfrachten:

Und schon können wir bei einem vom Modul gelesenen Spielstand weiterzocken. Ich bin so feige und nehme den 1%-Spielstand, weil ich so einen einfachen Anfangslevel spielen kann! 😛

Schön, dass das Spiel von selbst nach Abschluss eines jeden Levels speichert!

Um zu überprüfen, ob auch das Schreiben des Spielstands funktioniert, habe ich die CART.sav auf die MicroSD-Karte des Cart Readers kopiert und wieder zurück auf das Modul geschrieben.

Und siehe da – auch auf einer originalen NES-Konsole (samt Kirby-Modul) können wir nun bei dem leicht fortgeschrittenen Spielstand weiterspielen. Warum ich dafür vom Spiel allerdings als „Dumpfbacke“ bezeichnet werde, weiß ich nicht! 😀

So, nun ist aber wirklich gut. Viel mehr kann (und will) ich euch nicht über den Cart Reader erzählen. Ich muss sagen, dass ich mit dem Ding echt zufrieden bin. Es fasst einfach so viele Funktionen in einem kleinen, praktischen Gerät zusammen und ist flexibel was das Display angeht. Gerade der „portable“ Betrieb mit einem Smartphone ohne zusätzliche Stromversorgung ist meiner Meinung nach schon was sehr Feines! 🙂

In diesem Sinne, bis die Tage, ciao!