Um meinen alten defekten Game Boy wieder nutzen zu können, habe ich mich dazu entschlossen ihn zu einen Multi-Plattform-Konsole zu erweitern. Es sollte möglich sein, Spiele sämtlicher Retro-Konsolen zu spielen. Durch die verwendete Hardware ist es sogar möglich auch einige Konsolen der 6. Generation zu spielen.

Hardware

Ziel war es das Aussehen des Game Boys so wenig wie möglich zu verändern. Da aber aber ein größerer Bildschirm und mehr Tasten notwendig waren, waren doch einige Änderungen vorzunehmen. Die ursprüngliche Elektronik des Game Boys ist fast vollständig entfernt und durch einen leistungsfähigen 32-Bit Mikroprozessor ersetzt.

  • Mein alter Game BoyMein alter Game Boy
  • Neue Hardware des Game BoysNeue Hardware des Game Boys

Hauptplatine

Das Herzstück des neuen Game Boys ist ein Raspberry Pi B der mit einer 32 GB micro SDHC-Karte der Geschwindigkeitsklasse 10 ausgestattet ist. Um im Gehäuse Platz zu sparen habe ich die Cinch- und die Klinken-Buchse abgelötet und die Kabel direkt auf die Platine gelötet.

Gehäuse

Als erstes musste der Game Boy komplett zerlegt und die alte Hardware entfernt werden. Es wurde aber nichts weggeschmissen da Teile davon noch gebraucht werden! Man sollte sich zum Lösen der Spezial-Schrauben des Gehäuses eventuell gleich einen kleinen Triwing-Schraubenzieher besorgen.

Da der Game Boy schon ziemlich vergilbt war, habe ich mich dazu entschlossen ihn neu zu lackieren. Die dadurch entfernte Beschriftung wird anschließend wieder neu aufgetragen. Somit ist es möglich auch die neuen Schaltflächen einheitlich zu beschriften.

Anschließend wird das Gehäuse mit einem Dremel bearbeitet um Platz für die Elektronik zu schaffen. Auch für zusätzliche Tasten müssen Löcher gebohrt werden. Neben der vorhandenen Controller-Tasten werden noch Tasten für X, Y, L, R benötigt. Zum Beenden der Spiele und zum Zurückkehren in das Auswahlmenü wird zusätzlich eine Escape-Taste benötigt. Um im Spiel das Optionsmenü des Emulators zu öffnen wird eine Menü-Taste benötigt. In dem Menü lassen sich Spielstände Speichern und Laden, Cheats eingeben und diverse interne Einstellungen am Emulator vornehmen.

  • Triwing-SchraubenTriwing-Schrauben
  • Geöffnetes GehäuseGeöffnetes Gehäuse
  • Zerlegter Game BoyZerlegter Game Boy
  • Lackiertes GehäuseLackiertes Gehäuse
  • Aussschnitt für TFTAussschnitt für TFT

Bildschirm

Zur Anzeige wird ein günstiger 3,5" TFT-Bildschirm mit Composit-Ausgang verwendet. Die maximale Auflösung für solche Bildschirme schein bei 320x240 Pixeln (QVGA) zu liegen. Oft werden Bildschirme für Auto-Rückfahrkameras in dieser Größe angeboten. Die Bildschirme existieren in verschiedenen Hardwareversionen, mit verschieden großen Platinen. Beim Einbau ist unbedingt darauf zu achten, das Flex-Kabel vom Bildschirm nicht zu brechen.

Fast alle Bildschirme haben eins gemein; sie müssen mit 12V betrieben werden. Da die gesamte Hardware aber bisher mit 5V läuft und auch der Bildschirm die 12V nur wieder auf 5V herunterregelt, ist es am einfachsten die Platine des Bildschirms etwas anzupassen. Auf dem Controller-Board des TFTs befindet sich dazu meist ein ein XL1509, XL1583 oder AME5269 DC-DC-Converter. Dieser, und alle unnötigen Bauteile vor dem Konverter können ausgelötet werden. Im Datenblatt ist die Pinbelegung beschrieben aus der hervorgeht an welchem Pin der Konverter die 5V Ausgangsspannung bereitgestellt hat. An diesem kann nun direkt 5V angelegt werden. Manche Controller-Boards sind etwas komplexer aufgebaut und besitzen mehrere DC-Regler. Bei diesen ist der Umbau unter Umständen etwas schwieriger. Das beste Display das ich gefunden habe war dieses auf eBay. Bei diesem ist die Platine weniger als halb so groß als bei den anderen Displays die ich gesehen habe.

Die am Bildschirm befindlichen 3 Tasten zum Einstellen des Bildschirms habe ich aus Platzgründen auch abgelötet. Eventuell werde ich die Tasten später wieder am Game Boy-Gehäuse befestigt und von außen zugänglich machen um beispielweise den Kontrast oder die Helligkeit anpassbar zu machen..

Eigentlich hätte ich gern ein besseres Display mit einer höheren Auflösung und digitaler Ansteuerung einbauen wollen. Leider können die angebotenen Displays nur mit SPI-Schnittstelle angeschlossen werden und benötigen einen speziellenTreiber. Die Schnittstelle ist zusammen mit den verfügbaren Treibern für Spiele aber zu langsam, da nicht direkt mit dem Framebuffer des OpenGL gearbeiten werden kann und dieser immer erst (zeitaufwändig) kopiert werden muss.

  • 3,53,5" TFT Display
  • Blick auf die Platine des TFTsBlick auf die Platine des TFTs
  • TFT im GehäuseTFT im Gehäuse

Peripherie

Die Platine auf der die Tasten des Game Boys angebracht sind, lässt sich nur aufwändig umbauen. Ich habe mich entschieden eine im Internet erhältliche Platine zu nehmen und diese etwas umzubauen. Um alle Tasten der emulierten Konsolen verfügbar zu haben, habe ich einen SNES-Controller (günstiger China Nachbau) zerlegt und die benötigten Knöpfe auf die Tasten-Platine angebracht oder direkt in das Game Boy-Gehäuse eingbaut. Die Tasten werden anschließend auf die GPIO-Pins des Raspberry gelegt.

Da wo beim Game Boy der Kontrast-Regler war, habe ich eine Schaltwippe mit drei Tasten eingebaut. An der Oberkante sind zwei weitere Tasten hinzugekommen. Somit stehen weitere Tasten für Zusatzfunktionen der Emulatoren bereit, wie zum Beispiel Spielstände Speichern und Laden.

Zur Audio-Ausgabe wird ein kleiner Verstärkerschaltkreis (PAM8403) mit einem Poti zur Lautstärkeeinstellung verwendet. Ursprünglich war nur ein Lautsprecher zur Mono-Wiedergabe verbaut. Ich werde den alten Lautsprecher ausbauen und gegen einen effizienteren (2 Watt, 8 Ω) Lautsprecher austauschen und noch einen zweiten verbauen um auch Stereo wiedergeben zu können.

  • Bearbeitete PlatineBearbeitete Platine
  • Rückseite der PlatineRückseite der Platine
  • Bearbeitetes GehäuseBearbeitetes Gehäuse
  • Taster-WippeTaster-Wippe
  • VerstärkerschaltkreisVerstärkerschaltkreis
  • Ansicht auf beide Schaltkreise und das bearbeitete TFTAnsicht auf beide Schaltkreise und das bearbeitete TFT
  • No-Name SNES-ControllerNo-Name SNES-Controller

Stromversorgung

Da der Game Boy portabel sein soll, wurde die gesamte Hardware möglichst stromsparend ausgelegt. Beim Raspberry Pi wurde der 3,3 V Spannungsregler (ein SE8117) gegen ein Pololu D24V6ALV ausgetauscht. Der neue Regler kann bereits mit kompletter Beschaltung gekauft werden. Das Board hat nun einen um etwa 15% geringeren Stromverbrauch.

  • Alter Regler SE8117Alter Regler SE8117
  • Neuer Regler von PololuNeuer Regler von Pololu

Als Stromquelle wurden zwei 3,7 V NCR18650B Lithium-Ionen Akkus von Panasonic gewählt. Sie besitzen eine Kapazität von insgesamt 6800 mAh. Ich habe mich aus Sicherheitsgründen für die geschützten Akkutypen entschieden, auch wenn diese durch die Zusatzschaltung noch etwas länger sind.

Für die Spannungsversorgung habe ich verschiedene Mini-Platinen von Adafruit verwendet. Geladen werden die Akkus über ein Mini-USB-Kabel. Der Ladeschaltkreis ist der Adafruit Micro-LiPo und als Spannungsregler wird der Adafruit Power Boost 1000 verwendet.

Zum Ein- und Ausschalten habe ich den Originalschalter verwendet.

Software

Die gesamte Software die für das Projekt benötigt wird ist frei zugänglich. Für den Raspberry Pi wurde ein speziell angepasstes Raspbian-Betriebssystem verwendet, dass vom Retropie-Projekt zusammengestellt wurde. Das gesamte Betriebssystem kann als fertiges Image heruntergeladen werden und auf eine SD-Karte kopiert werden. Der Kopiervorgang wird am besten mit Tool zum kopieren von Image-Dateien vorgenommen.

  • Screenshot vom Retropie-SetupScreenshot vom Retropie-Setup

Anschließend wird das mitgelieferte Retropie-Setup gestartet, welches die Emulatoren für die verschiedenen Konsolen installiert. Auch das spätere Front-End EmulationStation kann im Setup installiert und konfiguriert werden. Das Image ist für 4 GB Speicherkarten vorbereitet und muss beim Verwenden von größeren Karten mit dem Script raspie-config erweitert werden. Mit dem Script können auch viele andere Parameter wie Tastaturlayout oder Overclocking eingestellt werden.

Um Spiele-ROMs auf die SD-Karte zu kopieren sollte man am besten im Setup den USB-ROM-Copy Service aktivieren. Beim Einstecken eines leeren USB-Sticks wird eine Ordnerstruktur erzeugt in der man dann Spiele-ROMs kopieren kann. Wird der USB-Stick erneut im Raspberry Pi eingesteckt werden die Spiele auf die SD-Karte kopiert.

Auf das ext4-Dateisystem der SD-Karte kann nicht von Windows aus zugegriffen werden. Alle Dateioperationen müssen also auf dem Raspberry Pi stattfinden. Wer während des Einrichtens nicht ohne graphische Oberfläche leben kann, kann mit sudo startx eine GUI starten.

Falls der angeschlossene Bildschirm einen schwarzen Rand hat oder gedreht werden muss, kann dies in der config.txt angepasst werden (disable_overscan, framebuffer_left,...). Dazu kann die SD-Karte einfach in einen PC gesteckt und mit einem Texteditor editiert werden.

Um die an den GPIO-Pins des Raspberry Pi angeschlossen Tasten in Tastaturbefehle umzuwandeln, ist eine kleine Software notwendig mit der jedem Pin eine Taste zugewiesen werden kann.

Spiele

Für sämtliche Konsolen sind die Spiele-ROMs im Internet verfügbar. Mit der großen 32 GB Speicherkarte hatte ich die Möglichkeit für viele Konsolen alle erschienenen Spiele zu speichern. Oft wurden Spiele in mehreren Sprachen veröffentlicht, von denen ich aber jeweils nur die deutsche Version behalten habe. Viele Spiele sind auch nur auf japanisch erschienen, diese habe ich ebenfalls nicht aufgehoben.

Insgesamt sind nun etwa 14.000 Spiele von 19 Konsolen verfügbar:

Plattform Spiele
Apple II 2330
Atari 2600 1993
Atari 7800 183
Atari Lynx 88
Game Gear 267
GameBoy 695
GameBoy Advance 1267
GameBoy Color 920
MAME 2296
Neo Geo 265
Neo Geo Pocket 45
NES 655
SNES 777
Sega Master System 376
Sega Mega Drive 1355
Sega Genesis 32X 35
Vectrex 63
WonderSwan 157
WonderSwan Color 10

 

Besucher

Heute 25

Monat 408

Insgesamt 27508

Go to top