#222 – cart reader V4 – test

Beim letzten Mal haben wir ja die neue „Sparversion“ des Cart Readers samt ein paar Aufsteck-Adaptern fertiggestellt.

Heute wollen wir das Ding mal in Ruhe testen und ggf. noch ein paar Optimierungen vornehmen. Ich habe da schon ein paar Ideen! 😉

Bevor wir aber wieder basteln, sollten wir erst mal probieren, ob das Gerät auch wirklich tut was es soll. Dafür habe ich mir schnell ein paar Spielmodule herausgekramt:

Fangen wir gleich mal mit einem Supernintendo-Spiel an. Das Modul wird einfach auf den SNES-Adapter gesteckt. Selbiger wird wiederrum (samt Modul) auf die Hauptplatine aufgesteckt und der Cart Reader über das Micro USB Kabel mit dem PC verbunden.

Fun Fact: Vielleicht kennt der ein oder andere „The Chaos Engine“ noch aus Artikel 83? Damals haben wir den „Run and Gun“-Klassiker auf der Wii mit Hilfe eines SNES-Emulators zum Laufen gebracht! 😉

Im Arduino Serial Monitor können wir uns nun (durch Eingabe von Buchstaben auf der Tastatur in die Kommandozeile am oberen Bildschirmrand) durch das Menü des Cart Readers navigieren und die Option zum Lesen eines SNES-Spiels (ROM) wählen.

Fun Fact: Es ist wichtig darauf zu achten, im seriellen Monitor eine Übertragungsgeschwindigkeit von 9600 Baud sowie die Option „Kein Zeilenende“ auszuwählen. Tut man das nicht, spielt der Cart Reader verrückt, ignoriert sämtliche Eingaben oder springt wie wild durch die Menüs. Ich hatte es zuerst vergessen und nichts hat funktioniert. Ich glaube so etwas nennt man „Lerneffekt“! xD

Tatsächlich wird das Modul problemlos gelesen und wir finden die ROM-Datei auf der in den Reader eingelegten MicroSD-Karte:

Um auszuprobieren, ob das ausgelesene Spiel auch wirklich funktioniert, habe ich die ROM-Datei in einen Emulator (ZSNES) geladen. Was soll ich sagen? Es funzt! 🙂

Sehr schön – und wie sieht es mit einem Game Boy Spiel aus? Das wollen wir mit dem Game Boy Adapter und dem Game Boy Color Spiel „Freestyle Scooter“ gleich mal ausprobieren:

Läuft – auch das Spiel wird problemlos gelesen…

…und lässt sich in einem Emulator (VisualBoyAdvance) abspielen:

Da der Game Boy Adapter bereits eingesteckt ist, wechseln wir nur schnell das Modul aus. Mit „Tony Hawk’s Underground 2“ wollen wir es nun mal mit einem Spiel für den Game Boy Advance probieren. Ganz wichtig – nicht vergessen: Für GBA-Spiele muss der Schalter auf dem Game Boy Adapter von 5 auf 3 Volt umgeschaltet werden!

Doch was ist das? Der Cart Reader wird plötzlich nicht mehr vom PC erkannt und es sieht so aus als würde der Arduino gar nicht anlaufen. Was ist los?

Tja, nach einiger Recherche hat sich herausgestellt, dass ich Depp vergessen habe, dem Gerät auch wirklich 3 Volt Spannung zuzuführen! 😀

Peinlich! Gut, dass sich das schnell beheben lässt, denn die 3 Volt können wir am MicroSD-Kartenmodul prima abgreifen und der Hauptplatine zuführen:

So – jetzt aber schnell zurück zum eigentlichen Test – wollten wir nicht ein GBA-Spiel auslesen? Kaum läuft die Hardware korrekt, lässt sich auch das GBA-Spiel auslesen.

Die Tony Hawks Spiele kenne ich eigentlich nur vom PC (oder von den „großen“ Konsolen). Auf so einem kleinen Handheld wie dem GBA sieht das Spiel zugegeben etwas spartanisch aus! xD

Als letztes können wir noch versuchen, ein N64-Spiel auszulesen.

Was mir erst gerade so – während wir auf den Lesevorgang des N64-Moduls warten – klar wird: Ein entscheidender Vorteil des portablen Aufbaus des neuen Cart Readers ist, dass wir die diversen Schalterstellungen (siehe Artikel 186) des Vorgängermodells vernachlässigen können und einfach je nach gewünschter Konsole den entsprechenden Adapter aufstecken. Der Adapter entscheidet dabei mit welcher Spannung der Cart Reader läuft (3 oder 5 Volt) – clever!

Fun Fact: Eine Ausnahme bildet nur der Game Boy Adapter, da dieser Game Boy (Color) und Game Boy Advance Spiele abdeckt und diese Konsolen ja mit unterschiedlichen Spannungen laufen!

Auch „F1 World Grand Prix“ lässt sich im Emulator (Project64) abspielen. Unser selbstgebastelter Cart Reader scheint zu funktionieren! 🙂

Soviel zu den Tests – aber wollten wir das Ding nicht noch etwas optimieren? Gute Idee! 😉

Eine Ecke, die mich an dem Teil etwas stört, ist, dass die Platine hinten recht weit „übersteht“. Damit meine ich, dass an der Stelle, an welcher man in der „Vollversion“ eine Batterie einbauen würde, viel ungenutzter Platz ist. Ob man den Teil von der Platine nicht einfach entfernen kann? So ließe sich das Gerät noch deutlich verkleinern! 🙂

Hierfür müssen wir das Kabel auf der Oberseite nur ablöten und die 5 Volt stattdessen „unterirdisch“ (also auf der Rückseite) vom Arduino zum Modulport führen:

Anschließend können wir knapp ein Drittel der Platine einfach absägen. Und schon haben wir den Cart Reader um ein gutes Stück verkleinert!

Fun Fact: Ich habe die Kanten noch etwas angeschliffen, sodass der Abschluss der Platine analog der gegenüberliegenden Seite aussieht! 🙂

Während des Sägens (vermutlich, weil das eine eher stupide Arbeit ist) ist mir dann aufgefallen, dass wir das Auslesen eines N64-Controller Paks noch nicht getestet haben. Ich denke das sollten wir noch machen, zumal ich ja ein neues Kabel (mit leicht veränderter Belegung gebaut habe, von dem ich nicht weiß, ob es funktioniert! 😀

Tatsächlich klappt der Vorgang auch problemlos und wir können uns mit Hilfe des Online-Tools MPKEdit den Inhalt des Memory Paks ansehen. Nice! 🙂

Jetzt aber schnell wieder zurück zur Hardware. Mal überlegen – was könnten wir noch machen? Etwas unschön ist auch der „herumbaumelnde“ MicroSD-Kartenleser, findet ihr nicht? 😀

Um das optisch etwas schöner zu gestalten, habe ich die Kabel gekürzt, neu verlötet und anschließend unter dem Arduino versteckt. Dadurch lässt sich der MicroSD-Port seitlich anordnen und findet so gerade noch seinen Platz auf der Platine. Zur Stabilisierung habe ich das MicroSD-Modul mit einem Stück Holz auf der Platinenoberseite verklebt.

Not so fun Fact: Beim Auslöten der Stecker habe ich versehentlich ein Lötpad auf der Platine zerstört. Zu allem Überfluss ist das ist natürlich erst beim anschließenden Test aufgefallen. Eins sag ich euch – bei der anschließenden Fehlersuche wäre ich fast verzweifelt! 😀 Immerhin hat die Platine auf beiden Seiten Lötpunkte, so konnte ich das Problem leicht beheben. Oh well, shit happens! 😀

Fertig, oder? Eigentlich schon, aber ich möchte noch was ausprobieren. An und für sich ist der Mini-Cart Reader eine feine Sache, allerdings stört mich etwas, dass man als „Bildschirm“ immer den seriellen Monitor in der Arduino IDE extra aufrufen muss. Besser wäre es eine eigenständige Anwendung zu besitzen, die mit dem Cart Reader kommunizieren kann. Kein Problem, denn es gibt ja glücklicherweise für so ziemlich alles eine Lösung. Darf ich vorstellen – hier kommt „PuTTY“!

Fun Fact: Treue retrololo-Leser kennen die Software natürlich bereits aus Artikel 13! 😛

Die Software PuTTY gibt es bereits seit 1998, aber sie wird auch noch heute sehr gerne u.a. zur Administration von Systemen über das SSH-Protokoll verwendet. Glücklicherweise werden auch andere Protokolle wie Telnet oder eben eine serielle Schnittstelle unterstützt – gut für uns! Damit wir die Software als seriellen Monitor verwenden können, müssen einige Einstellungen wie COM-Port (siehe Gerätemanager), Geschwindigkeit (9600 Baud) und Flusskontrolle (Nein) gesetzt werden:

Und siehe da – schon erkennt PuTTY unseren Leser ohne Probleme! Wenn man es genau nimmt, läuft die Kommunikation über PuTTY sogar etwas besser, bzw. schneller, weil wir nicht in irgendeiner Befehlszeile eingegebene Nummern mit Enter bestätigen müssen, sondern uns einfach innerhalb der Session durch das Eingeben von Nummern durch das Menü navigieren können. Echt cool 🙂

Hm, ja, das ist schon besser, allerdings finde ich es immer noch recht umständlich, dass man überhaupt einen Laptop oder PC benötigt. Gibt es dafür nicht auch eine etwas kleinere, portable Lösung? Die gibt es tatsächlich – wie wäre es z.B. mit dem Galaxy S7 aus Artikel 220? 😉

Und das soll funktionieren? Na logo! Dafür benötigen wir lediglich einen OTG-Adapter…

…und die App „Serial USB Terminal“! Natürlich müssen auch hier die entsprechenden Einstellungen getätigt werden, aber anschließend erkennt das Smartphone tatsächlich das Gerät ohne Probleme…

…und wir können das eingesteckte Game Boy Spiel auf die MicroSD-Karte auslesen – abgefahren! 😀

Ende gut, alles gut. Ich bin froh, dass der Cart Reader so gut funktioniert. Das ist bei meinen amateurhaften Lötkenntnissen definitiv keine Selbstverständlichkeit! xD

Fun Fact: Tatsächlich gäbe es noch eine ganze Reihe an weiteren Adaptern, mit welchen man auch Module von Konsolen wie Sega Master System, Nintendo Entertainment System, WonderSwan oder TurboGrafx-16 auslesen könnte. Da ich die entsprechenden Platinen (sowie auch die meisten der exotischeren Konsolen) nicht habe, sparen wir uns das! 🙂

In diesem Sinne – bis die tage, ciao!