Vorwort:

Bei diesem Projekt kam kein funktionstüchtiger Gameboy zu Schaden. Ich würde eine Zerstörung von Retro-Konsolen weder billigen, unterstützen, geschweige denn selbst durchführen.


Der RaspBoy

Was das ist ist ganz einfach erklärt: Ein Raspberry Pi plus einem 3,5″ LCD (ein Auto-Rückfahrmonitor um knap 30 Euro) in einem Gameboy-Gehäuse – portabel, natürlich mit Akku.

Gleich zu Beginn das erste Problem: Der Raspi läuft mit 5V (USB Spannung), das LCD mit 12V. Ein wenig Recherche zeigte mir, dass das LCD auch mit den 5V des USB läuft. Auf der Rückseite des Boards soll sich ein 5V Lötpunkt befinden. Nachdem ich nun das Board vorsichtig vom LCD löste (was alles Andere als einfach war) fand ich den besagten Lötpunkt und lötete ein Kabel dran. Das LCD kann nun über 5V gespeist werden! Nun noch den unnötig gewordenen DC-DC Wandler des LCD (der die 12V wieder auf 5V runterregeln würde) entfernen und schon läuft das Teil.


20140829 14491120140830 221929

20140831 143258 20140830 222059



Push the Button

Und weiter gehts mit dem Zusammenbau des Raspboys.
Ich habe mich dazu entschieden, 2 weitere Tasten einzubauen, damit auch Spiele damit gespielt werden können  welche mehr als 2 Feuertasten belegen (was so ungefähr alle Spiele jenseits der 8-Bit-Ära sind). Also habe ich mein C64-Competition-Pro-Dings (Das Teil mit dem vollwertigen C64 drinnen) zerlegt, und 2er Tasten beraubt. Für die Kontakte habe ich das PCB eines weiteren Gameboys verstümmelt und mit Heißkleber drangeflanscht – fertig!
Nun muß ich dem Raspboy noch beibringen, die Tasten auch zu verwenden:
Hierzu habe ich auch das „Haupt-PCB“ (auf dem die „original-Tasten“ liegen) beschnitten, die Leiterbahnen des PCB teilweise unterbrochen, sowie Kabel an die Leiterbahnen gelötet um das Signal abzugreifen (Eine sehr filigrane Arbeit, da man die Leiterbahnen schnell mal rausreißt) und das andere Ende der Kabel habe ich an die GPIO Eingänge des Raspi gelötet – mehr zu dem Thema folgt etwas später.

20140904 16312320140905 115527

Es kommt doch auf die Größe an

Erst wollte ich die original Gameboy-Displaygröße samt grauen Bezel beibehalten. Dies ist zwar ideal für GameBoy Spiele und sieht authentisch aus, für alles Andere wäre es jedoch zu klein. Also habe ich die Öffnung mit einem Dremel vergrößert.

Das Glas des Gameboys passt noch perfekt darauf, nur das graue Bezel muss ich noch los werden. Da ich leider keine Poliermaschine habe, fiel runterschmirgeln schon mal weg. Also nahm ich ein Chrompoliermittel (welches recht „grob“ ist) um den Aufdruck runterzupolieren und polierte händisch mit einer Autopolitur die gröbsten Kratzer weg. Ist nicht wirklich die eleganteste Lösung, aber es erfüllt seinen Zweck 😉


Grüße von den Weight Watchers

So, nun muss der Raspberry Pi einmal etwas schlanker werden,da im GameBoy-Gehäuse recht wenig Platz ist.
Grundsätzlich müssen alle unnötigen Teile, welche nur Platz verschwenden und nicht verwendet werden weg. Dazu zählt der Ethernetanschluss, der USB Port, sowie der Audio-, und Compositeanschluss. Was liegt also näher als die Dinger auszulöten? Ich habe sicherlich mehrere Stunden mit zu Hilfenahme einer Lötsaugpumpe und Lötlitze versucht das Ganze auf elegantem Wege zu erledigen – jedoch ohne Erfolg. Es kann schon sein, dass ein Entlöten der Bauteile mit professionellem Equipment möglich gewesen wäre – allerdings besitze ich als Hobbybastler so etwas nicht…
Nun müssen die Teile allerdings trotzdem weg, also habe ich Dr.Emel zu Rate gezogen. Bewaffnet mit dem Dremel samt Trennscheibe die Bauteile vorsichtig heruntergeschnitten und die Reste mit einem Seitenschneider, Skalpell und Flachzange entfernt. Mit einem mulmigen Gefühl habe ich nun den Raspi wieder angesteckt und siehe da – er funktioniert noch!
Als Nächstes habe ich einen Mini-Verstärker an den Audioausgang, sowie den LCD an den Videoausgang gelötet. Nun hoffe ich, dass mein Plan aufgeht und die Elektronik auch Platz im Gameboy findet. Ich habe den RasPi und den Akku in den vorgesehenen Platz verfrachtet und ….naja…. vom Batteriefach ist die SD Karte erreichbar. ABER: Entfernen kann ich sie nicht, da kein Platz vorhanden ist um sie herauszuziehen……..

20140913 222242 20140914 174642



Zugriff von außen

Damit ich den Raspboy nicht jedes Mal zerlegen muss um Daten aufzuspielen und er auch vielseitig einsetzbar sein soll benötige ich USB Ports. Einer Davon findet sich im ehemaligen „Link-Kabel“ Slot des GameBoys, in welchem eine handelsübliche USB Buchse perfekt hineinpasst. Für den 2. USB Anschluss musste ich etwas kreativer sein. Ich fand einen „spinnenartigen“ USB Hub, welcher größtenteils aus Kabeln bestand. Ich nahm den eigentlichen Hub auseinander, entfernte die winzig kleine Platine sowie 3 der 4 USB Kabeln und legte das verbleibende USB Kabel bis zum Batteriedeckes des Gameboys und voila! sollte ein 2. Controller notwendig sein genügt es das Batteriefach zu öffnen und den Controller an den versteckten USB Port zu hängen!

20140914 175118 20140914 175231 20140914 175151

Wofür externe Gamepads? Ich feilte ich eine Ausnehmung für den HDMI Port des RasPi in den Gameboy, damit das Ding an einen Fernseher angeschlossen werden kann. Somit wird der Raspboy ein portables Handheld UND Retrokonsole. (Anmerkung: Den RaspBoy habe ich 2014, also vor der Switch geplant und zusammengebaut. Shame on you Nintendo, habt ihr das Konzept einfach abgekupfert XD)
Um die Lautstärke regeln zu können bot sich natürlich an, das original GameBoy Poti zu recyceln. Hier stellt sich nur die Frage wie es an seinem Platz bleibt, da es normalerweise von der GameBoy-Platine gehalten wird. Auch hier habe ich mich von World-Wide-Web inspirieren lassen und einfach mit einem Metallplättchen und genügend Lot eine Brücke zwischen USB-Buchse und Poti erstellt. Nach einigen Fehlversuchen und verbrannten Fingern sitzt nun auch das Poti richtig.

Scotty, Energie!

Die Stromversorgung des RasPi habe ich direkt an selbigen gelötet – ist platzsparender als der USB-Stecker. Der Hub wird nicht vom USB Port des RasPi mit Energie versorgt, sondern direkt von der „Hauptstromversorgung“. Grund hierfür ist einfach die Tatsache, dass der USB Port nur 500mA liefern kann und ich nicht weiß, was ich noch alles an den Hub anschließen werde.
Ein Problem mit dem 5V Akku war, dass ein Betrieb über das Netz bei leerem Akku nicht möglich war. Die Lösung ist ganz einfach den Akku UND den Raspboy direkt vom Netz zu speisen, sprich:

Netz –> Akku –>Raspboy
Netz –> RaspBoy

Doch Vorsicht: Da es theoretisch sein kann, dass der Strom, welcher vom Netz kommt ans „falsche Ende“ des Akkus fließt (Da das Netzteil UND der Akku-Ausgang mit der Stromversorgung des RaspBoy verbunden is) muss der Akku mittels Dioden entkoppelt werden. Mit einem 2A Netzteil funktioniert der Raspboy nun perfekt bei Netzbetrieb – auch mit leerem Akku.


Kabellos – durch die Nacht

Da ich noch einen XBox360-Wireless-USB-Receiver in meinem Fundus fand kam ich auf die Idee, auch diesen in den GameBoy zu verbauen. Also habe ich ihn gleich einmal zerlegt und überlegte, wie ich die Platine am Besten unterbringen konnte, da sie doch ein wenig groß ist. Um Platz zu sparen habe ich gleich einmal die Platine ein wenig gestutzt damit sie quer perfekt in den Cartridgeslot des GameBoys passt. Richtig platziert ist sogar der Connect-Button zugänglich um weitere Controller zu verbinden. Somit – so der Plan – Kann der Raspboy per HDMI an den Fernseher angeschlossen werden und dient mit den Wireless-Controllern als Retro-Konsole!



Zeit für ein wenig Input

Noch schnell die Kabel wieder an die GPIO Pins angelötet und rans ans programmieren (Damit der Raspi auch weiß, was er mit den Signalen der GPIO Pins machen soll)

20141006 18524620141006 164909

Da das Tutorial auf nur 6 Tasten (4 Richtungstasten und 2 Feuerknöpfe) ausgelegt ist, habe ich 4 weitere freie GPIO Pins (Vorsicht, nicht alle können verwendet werden) belegt. Danach die ZIP Datei (Findet man HIER – ganz rechts „Download ZIP“) des erforderlichen Programms heruntergeladen (Direkt auf den RasPi, über welchen ich per SSH zugegriffen habe), entpackt und die retrogame.c modifiziert. Auch wenn man über wenig bis gar keine Programmierkenntnisse verfügt ist dies dank des oben verlinkten Tutorials recht einfach:

Erst einmal mit

nano retrogame.c

die Datei aufrufen (Findet sich im Adafruit-Retrogame Ordner der entpackten ZIP Datei)
Ab ca Zeile 110 findet man die Buttonbelegung ( {GPIO PIN , KEYCODE} ). Einfach eine Zeile rauskopieren und 4 mal einfügen, die GPIO Pins und Keycodes der eigenen Belegung anpassen – fertig!
Hier ein Auszug meiner retrogame.c:


ioStandard[] = {
// Input Output (from /usr/include/linux/input.h)

{ 10, KEY_LEFT },        // Left
{ 9, KEY_RIGHT },       // Right
{ 25, KEY_UP },           // Up
{ 9, KEY_DOWN },      // Down
{ 11, KEY_A },             // A
{ 23, KEY_S },             // B
{ 7, KEY_Q },              // X
{ 24, KEY_W },           // Y
{ 18, KEY_TAB },       // Select
{ 17, KEY_ENTER }, // Start

// For credit/start/etc., use USB keyboard or add more buttons.
{ -1, -1 } }; // END OF LIST, DO NOT CHANGE

// This pin/key table is used when the PiTFT isn’t found

Zu guter Letzt noch mit

make retrogame
kompilieren und das Thema Gamepad ist fast gegessen.

Damit die Datei bei jedem Start automatisch gestartet wird noch schnell mit

sudo nano /etc/rc.local
in die rc.local folgendes VOR „Exit 0“ einfügen (Wenn erforderlich Pfad anpassen!)
/home/pi/Adafruit-Retrogame/retrogame &

Anschließend sollte sicherheitshalber mit

sudo nano /etc/udev/rules.d/10-retrogame.rules
die .rules Datei erstellt und folgender Text hineinkopiert (und danach natürlich gespeichert) werden:
SUBSYSTEM==“input“, ATTRS{name}==“retrogame“, ENV{ID_INPUT_KEYBOARD}=“1″
Jetzt noch mit
sudo restart 
einen Neustart durchführen –
FERTIG!!!


Next Stop: Emulationstation

Jetzt kommt der mühsame Teil: die Konfiguration:

Emulationstation war schnell konfiguriert – das Tool ist wirklich idiotensicher. Etwas schwieriger wurde es mit Retroarch. Wobei….schwieriger ist vielleicht das falsche Wort, eher komplizierter und ein wenig umständlicher. Nachdem ich die Konfigurationsdatei fertig editiert habe konnte ich einen Test wagen und – it works!


20141221 175733 20141221 143425


Idealerweise kann man bei Retroarch eine Funktion mit mehreren Knöpfen belegen, was dingend notwendig war, denn im „Handheld“ Modus werden die Spiele über die GameBoy Buttons gesteuert, über HDMI und Wireless Controller soll Spieler 1 natürlich per Controller und nicht mehr über den GameBoy gesteuert werden. Um Emulatoren zu beenden genügt ein gleichzeitiger Druck auf Select und Start.


20141221 142942

Auch der Konsolenmodus funktioniert perfekt. Allerdings werde ich den RasPi etwas heruntertakten, da das Ding bei längerem Gebrauch doch recht warm wird.
Und zum Schluss noch der RaspBoy in Action. Da mein damaliges Blog auch in englisch gehalten war, sind auch die Einblendungen englisch.

guest
4 Kommentare
älteste
neuste
Inline Feedbacks
Alle Kommentare ansehen
Ferdi
Ferdi
7 Jahre her

Klasse Projekt! Und mein Respekt! Da steckt offensichtlich sehr viel Fleißarbeit drin. Aber auch Geschick und Können. Gute Güte, bist Du Elektroingenieur oder sowas? Ich könnte das jedenfalls nicht. Das war ja wie eine OP am offenen Herzen. Ein tolles Teil; das hätte ich auch gerne. Mein Glückwunsch und viel Freude damit.

YesterPlay80
7 Jahre her

Saucooles Teil, hat definitiv viel mehr Charme als eine beliebiges Android-Emu-Handheld. Ich könnte das aber vermutlich auch nicht, zumindest nicht ohne etwas kaputt zu machen. Respekt!

4
0
Wie findest du diese Episode? Schreib doch ein paar Zeilen!x