#93 – GBC TV remote feat. GB Cart Flasher

Beim letzten Mal haben wir uns ja schon mit dem Game Boy Color beschäftigt, wieso also noch ein Follow-up?

Im Endeffekt bietet der Game Boy Color im Vergleich zum „Ur-Gameboy“ keine bahnbrechenden Neuerungen, bis auf ein (meiner Meinung nach viel zu wenig genutztes) Feature: Den Infrarotsensor!

Hm, sieht irgendwie nur nach einem schwarzen Stück Plastik aus – was steckt dahinter? Um das herauszufinden müssen wir den Game Boy aufschrauben.  Zum Öffnen des Game Boys wird natürlich wieder ein spezieller Tri-Wing-Schraubenzieher benötigt – typisch Nintendo! Immerhin müssen nur sechs Schrauben gelöst werden. Im Gehäuse selbst sind dann nochmal drei (jetzt natürlich normale Kreuzschlitz-) Schrauben, welche das Mainboard halten, zu lösen. 😀

Fun Fact: Das trifft sich gut, dass wir den Game Boy öffnen, der Start-Knopf zickt etwas und lässt sich nur durch viel Druck betätigen. Das können wir bei der Gelegenheit gleich beheben! 🙂

Technisch gesehen besteht die Infraroteinheit hinter der Blende aus zwei Dioden, eine zum Senden, die andere zum Empfangen von Infrarotsignalen. Diese Funktionen wurde in einigen Spielen z.B. zum Übertragen von Highscores zwischen zwei Game Boys verwendet. Alles in allem wurde der Infrarotsensor aber relativ stiefmütterlich behandelt und nur wenige Spiele machen Gebrauch von der Technik.

Da wir den Game Boy schon offen haben, mache ich gleich noch die Kontakte der Knöpfe (Gummipads und Kontaktstellen auf dem Mainboard) sauber. So sollte der Start-Button wieder flutschen! 🙂

Dabei ist mir aufgefallen, dass eines der Gummipads (das vom Steuerkreuz) kaputt, bzw. eingerissen ist (links auf dem Bild). Und ich habe mich schon gewundert, wieso das so wabbelig wirkt. Kein Stress, denn das ist ein Verschleißteil was man einfach einmal pro Jahrzehnt (je nachdem wie der Game Boy bespielt wurde) tauschen muss. Das habe ich bei der Gelegenheit auch gleich erledigt – wer weiß, wann man den Game Boy das nächste Mal geöffnet hat! Kostenpunkt 3€ – ich denke das ist verschmerzbar! 😉

Jetzt aber schnell wieder zusammenschrauben – et voilà. Unser betagter Knabe läuft wieder ohne Probleme! 🙂

Fun Fact: Die Speicherbatterie des Pokémon-Moduls scheint auch noch intakt zu sein, denn es zeigt uns noch die korrekte Uhrzeit an! 😉

Außer Highscores kann man mit dem Infrarotsensor auch eine spezielle Funktion in den Pokémonspielen der zweiten Generation nutzen. Nein, leider kann man darüber keine Pokémon tauschen (dafür gibt es ja das Link-Kabel – siehe letzter Artikel), aber immerhin lässt sich zusammen mit einem Freund einmal pro Tag ein Item („Mystery Gift“ via „Geheimgabe“) schenken. Das sollten wir gleich mal ausprobieren! 😉

Was braucht man dafür? Nun – in jedem Fall zwei Game Boy Color und zwei Pokémon-Editionen:

Erst war ich etwas irritiert, weil auf der goldenen Edition mir die Option „Geheimgabe“ (zur Erhaltung eines Items über Infrarot) nicht angezeigt wird – was soll das denn!?

Erst durch Nachlesen bin ich dahintergekommen, dass man die Funktion erst durch Reden mit einem bestimmten NPC im vierten Stock des Marktes von Dukatia City freischalten muss – uff! 😀

Anschließend können wir aber „Geheimgabe“ nutzen. Hierfür müssen beide Game Boys relativ nah aneinandergelegt werden und auf beiden Systemen muss im gleichen Augenblick „A“ gedrückt werden.

Durch diesen Vorgang erhält jeder Spieler ein zufälliges Item…

…welches er sich im zweiten Stock des Pokémon-Centers abholen kann. Echt cool! 🙂

Schon ganz nett, aber eigentlich müsste sich mit dem Infrarotsensor doch noch viel mehr anstellen lassen, oder? Spinnt man die Idee weiter, so müssten sich damit eigentlich alle Geräte welche mit dieser Technologie arbeiten, ansteuern lassen. Ein populäres Beispiel sind z.B. Fernbedienungen von Fernsehern. Hm, die Idee einer „Game Boy-TV-Fernbedienung“ gefällt mir gut! 🙂

Scheinbar bin ich damit nicht alleine, denn es gibt tatsächlich einige Entwickler die sich damit beschäftigt haben. Ein sehr populärer Vertreter ist das 2000 von Infogrames veröffentlichte „Mission Impossible“.

Neben dem Hauptspiel beinhaltet dieses Modul nämlich noch einen „Agent Organizer“, welcher den Spieler bei seiner Mission (und damit meine ich bei der Bewältigung von Alltagsaufgaben) unterstützen soll. So findet sich neben einem Adressbuch, einem Taschenrechner und einem Nachrichtenübermittlungsdienst (an ein weiteres MI-Modul) auch ein Infrarottransmitter!

Nachdem man dem Modul die Infrarotcodes mit Hilfe einer TV-Fernbedienung beigebracht hat, lässt sich tatsächlich der dazugehörige Fernseher mit dem Game Boy steuern – abgefahren! 😀

Fun Fact: Wie man unschwer erkennen kann, verändere ich hier die Lautstärke. Tatsächlich funktioniert das in der Praxis relativ gut, sofern man darauf achtet, den Game Boy möglichst zielgerichtet auf den Fernseher zu richten.

Damit ist bewiesen, dass es grundsätzlich funktioniert, aber leider ist das Handling (Spiel starten und sich durch zig Menüs drücken, bis man zum IR-Tool kommt) nicht gerade komfortabel. Ob es da was Besseres gibt?

Lange war ich auf der Suche und zwischenzeitlich hatte ich auch überlegt selbst was in die Richtung zu programmieren, aber leider ist das nicht ganz so einfach wie ich gehofft hatte. Das Grundgerüst ließe sich in C realisieren, aber gerade zur Ansteuerung der Infrarotdioden wird Assembler (RGBDS) benötigt. Daran haben sich bereits mehrere Leute versucht (und viel zu viel Zeit investiert).

Fun Fact: Ich habe viel mit „GBDK“ (Toolchain zur Entwicklung von GB-Spielen) experimentiert. Das Development-Kit bietet eine gute Möglichkeit in die Programmierung von Game Boy und Game Boy Colour Titeln einzusteigen, aber für komplexere Anwendungen (Stichwort Infrarot) müsste man deutlich mehr Lebenszeit investieren. Nein danke! 🙂

Auch ohne Eigenentwicklung bin ich Gott sei Dank noch fündig geworden und habe eine gemeinfreie „Remote Control“-Rom gefunden! Diese kann Signale senden und erlernen und bietet dabei 15 Speicherplätze für Infrarotsignale. Eigentlich genau das was ich brauche! 🙂

Fun Fact: Über die Funktionen DUMP und ENC könnte man sich den Aufbau der Infrarotsignale ansehen um ggf. Troubleshooting zu betreiben. Die brauche ich (hoffentlich) nicht, bzw. damit will ich mich erst gar nicht beschäftigen… 😀

Um zu testen ob die Fernbedienungsanwendung auch tatsächlich funktioniert, müssen wir diese natürlich auf ein Modul packen, denn der Emulator (mit dem ich das Bild aufgenommen habe) besitzt keinen Infrarotsensor. Um das zu bewerkstelligen benötigen wir einen „Gameboy Cart Flasher“. Davon gibt es verschiedene Varianten, mein Exemplar ist selbstgebaut von einem Kollegen aus dem Spieleforum. Das Gerät ermöglicht nicht nur das Auslesen von ROM-Daten und Speicherständen, auch können Flash-Chips auf speziellen Modulen („Flash Carts“) mit einer ROM-Datei beschrieben werden.

Fun Fact: Das Gehäuse des Cart Flashers kommt aus dem 3D-Drucker und wurde von einem Kumpel angefertigt! 🙂

Es war eine gute Entscheidung, dass ich mir damals (ich vermute 2016) gleich zwei Flashcarts mit bestellt habe, denn ein normales GB(C)-Modul lässt sich natürlich nicht einfach überschreiben. Und jeder Flasher ist anders – so sind die Flashcarts meistens nicht unter den Flashern kompatibel. Mein „Vergangenheits-Ich“ war sogar so klug und hat die Größen der eigebauten Chips (Flash und SRAM) auf dem Modul notiert – brav! 😛

Fun Fact: Wer gut aufgepasst hat, dem wird die Thematik bekannt vorkommen. Die Prämissen sind die gleichen wie beim Visoly Flasher aus Artikel 77 oder dem GB Transferer 2 aus Artikel 88. Dieser Flasher funktioniert zwar „nur“ für GB und GBC-Spiele, hat aber den Vorteil, dass er relativ flexibel einsetzbar ist und auch schon über USB anstatt Parallelport funktioniert! 😉

Man sieht, dass der Kollege welcher mir die Flashcarts gebaut hat definitiv schon lange im Geschäft ist und Löterfahrung hat. So sauber hätte ich das mit meinem Werkzeug (und nicht zuletzt mit meinem nicht vorhandenen Skill) nicht hinbekommen!

Fun Fact: Alternativ könnte man die Fernbedienungs-ROM (mit ein paar zusätzlichen Schritten) vermutlich auch auf einer moderneren Flashkarte, auf welcher mehrere ROMs von SD-Karte gelesen werden können (z.B. Everdrive-GB), abspielen, aber ich finde dann geht der Charme etwas verloren. So ein eigenständiges Modul nur für die Fernbedienung hat schon was, finde ich! 🙂

Zum Programmieren des Moduls wird dieses einfach in den Cart Flasher gesteckt und das Gerät selbst via USB mit dem PC verbunden.

Als Software kommt „GB Cart Flasher 1.1“ zum Einsatz. Mit entsprechenden FTDI-Treibern läuft das Ding sogar unter Windows 10 64 Bit ohne Probleme – nice! 🙂

Mit der Software kann man sich den Modultyp (technische Daten der Chips) anzeigen lassen, sowie die ROM vom Modul auslesen oder (falls vorhanden) ein Modul mit Flashchip beschreiben.

Fun Fact: Da unsere Fernbedienungs-Anwendung recht klein ist (64Kb), passt sie wunderbar auf das kleinere 1MB-Modul.

Auch können Spielstände (SRAM) vom Modul ausgelesen und auf das Modul zurückgeschrieben werden.

Lange Rede, kurzer Sinn: Hier ist das fertige GBC-TV-Remote-Modul. Selbstverständlich hat es noch ein passendes Cover bekommen! 🙂

Fun Fact: Ich weiß, es sieht nicht nach viel aus, aber selbst diese einfache Grafik zu designen hat mich einiges an Zeit gekostet. Ich gebe es ja zu – Grafiken sind einfach nicht mein Ding! 😀

Fehlt nur noch ein Test ob es auch wirklich funktioniert… Als erstes müssen wir dem Modul ein paar IR-Codes beibringen (REC):

Anschließend können wir die Codes an den TV senden (PLAY) – logischerweise habe ich den Einschaltknopf auf Speicherplatz „A“ gelegt. Klappt tatsächlich!!! 🙂

Fun Fact: In der Praxis hängt die Funktionsweise und vor allem die Reichweite der Fernbedienung von einigen Faktoren (Hersteller, Infrarotfrequenz, Batterieleistung) ab und ist somit bei jedem Fernseher unterschiedlich. Bei dem LG-TV funktioniert es sehr gut, wenn man relativ genau zielt schafft man mit dem Sender immerhin ca. 4 Meter – von der Couch aus reicht es allemal! 🙂

Mehr gibt es eigentlich nicht zu sagen. Auch wenn es einiges an Arbeit war (vor allem die Recherche) und es immer wieder Rückschläge (Probleme mit Hard- und Software) gab, bin ich echt zufrieden. Sowas wollte ich schon lange haben. Von jetzt an wird der TV über den Game Boy gesteuert – Smart Home war gestern! 😛

Fun Fact: Ich denke mit mehr Zeit (und Engagement) könnte man sowas auch sicher selbst programmieren. Ein relativ aktuelles Beispiel ist das Projekt eines Programmierers aus Singapur, welches es geschafft hat ein Modul zu entwickeln, mit dem man seine Klimaanlage mit dem Game Boy Color steuern kann – abgefahren! 😀

So, ich bin dann mal weg. Turn up the Volume!!! 😛

Write a comment