Projekt: Raspberry Pi – Gameboy

RaspiGB-Intro

Original und Raspberry Pi-Gameboy

Heute stelle ich Euch mein neues Projekt vor: den Umbau eines klassischen Gameboys zu einer ultimativen Retro-Game-Konsole mithilfe der Raspberry Pi.

01-Intro

Vorwort

Raspberry Pi Modell B

Raspberry Pi Modell B

Die Raspberry Pi eignet sich als Einplatinen-Minicomputer für eine Vielzahl Anwendungszwecke, sei es als Mediacenter, Web- oder Cloudserver, für die Hausautomatisierung oder dank seiner freiprogrammierbaren GPIO-Schnittstelle für eine Vielzahl weiterer Projekte. Auch ich zähle mich zu den begeisterten Raspberry Pi-Fans und setze meine Raspberry zuhause primär als Mediencenter (Raspbmc) ein. Mehr zur Raspberry Pi auch unter http://raspberrypiguide.de.

Vor einiger Zeit entdeckte ich einen interessanten Artikel über eine auf Raspbian basierenden Distribution namens Retropie, welche eine Vielzahl Emulatoren unter einem grafischen Frontend zusammenfasst. Die Umsetzung ist sehr gut, die Zahl der emulierbaren Systeme beachtlich, hier eine Auswahl (Version 1.9):

Amiga, Apple (II/Mactintosh), Armstrad CPC, Arcade, Atari (800/2600/ST/STE/TT/Falcon), C64, Game Boy (Classic/Advance/Color), Game Gear, MAME, NeoGeo, Sega (Master System/Megadrive/Genesis/Mega-CD/Sega 32X), Nintendo Entertainment System (NES), N64, PC Engine, Playstation 1, ScummVM, Super Nintendo Entertainment System (SNES), Sinclair ZX Spectrum, PC/x86, Z Machine.

Später, genauer im Juli 2014 entdeckte ich ein Posting auf Facebook, was mich auf Anhieb begeisterte: Jemand hatte einen alten Gameboy mittels einer Raspberry Pi und einem 3,5″ LCD-Display umgebaut und mittels Retropie in einen „Super Pi Boy“ verwandelt.

Dieses Projekt inspirierte mich, das wollte ich auch! Die Idee zu meinem Vorhaben war also geboren, an dieser Stelle vielen Dank an „microbyter“ und seinen tollen Umbau, welchen er unter http://superpiboy.wordpress.com dokumentiert hat.

 I. Vorarbeiten

Zunächst ging es an die Planung: Welche Features sollte mein Umbau haben, was sollte gegenüber dem „Super Pi Boy“ verbessert werden? Ich entschied mich für nachfolgende Optimierungen:

  • 4 Buttons auf der Rückseite (statt 2), um mehr Bedienelemente nutzen zu können
  • Seitlicher Knopf zum Beenden der Emulation und Rückkehr zum Hauptmenü
  • Verschraubung des Gehäuses, Verbindung möglichst ohne Klebeband
  • Frontabdeckung für Display (Schutz des LCDs vor Verschmutzung)

Was wird benötigt?

Anschließend ging es an die Beschaffung der Einzelteile, die Liste hat sich im Verlauf des Umbaus mehrfach geändert, deshalb hier die finale Zusammenstellung. Bezugsquellen habe ich beigefügt, wo es möglich war:

Optionale Komponenten:

II. Versuchsaufbau & Ansteuerung GPIO

Eines der ersten Probleme, die zu lösen waren, war die Steuerung. Retropie mittels Tastatur zu bedienen, war ja kein Problem – doch wie lassen sich Steuerkreuz und Drucktaster des Gameboys für die Steuerung verwenden?

Hierzu bietet sich die GPIO-Schnittstelle an, eine gute Anleitung fand ich unter https://learn.adafruit.com/retro-gaming-with-raspberry-pi. Ein kleines C-Programm (Adafruit-Retrogame) setzt die Informationen der abgefragten GPIO-Pins (Taste gedrückt?) in entsprechend konfigurierte Tastaturbefehle um. Die entsprechenden Tastaturbefehle lassen sich im Retropie-Frontend konfigurieren.

Als die ersten Teile eingetroffen waren und ich noch auf Post von Übersee warten musste, ging es an einen ersten Versuchsaufbau, um genau dieses zu testen und die Softwareumsetzung zu realisieren.

Ein altes USB-Gamepad (Logitech Wingman) sollte als Versuchs-Gamepad herhalten, im Prinzip benötigte ich nur die Platine (PCB, printed circuit board) und das Gehäuse mit den Tasten. Also fix den IC ausgelötet

01-Versuchsaufbau Ansteuerung GPIO mit Logitech Wingman

und einzelne Drähte mit den Kontaktpunkten verlötet.

02-Versuchsaufbau Ansteuerung GPIO mit Logitech Wingman

03-Versuchsaufbau Ansteuerung GPIO mit Logitech Wingman

Die Drähte müssen vor dem Zusammenbau entsprechend beschriftet werden, um sie später korrekt anzuschließen. Anschließend erfolgte der Zusammenbau, die einzelnen Drähte habe ich mit einer Experimentierplatine verbunden und jede Taste auf Funktion überprüft. Hierzu kann z.B. eine Widerstandsmessung mittels einem Multimeter vorgenommen werden (unbetätigt = ∞ unendlich großer Widerstand, z.B. Anzeige einer „1“ auf der linken Seite des Displays / betätigt = < ∞ kleiner unendlich).

04-Versuchsaufbau Ansteuerung GPIO mit Logitech Wingman

Hierzu muss man verstehen, was ein Tastendruck eigentlich auf der Platine bewirkt. Die druckempfindlichen Bereiche sind nichts anderes als Schalter, die bei Betätigung geschlossen werden. Jeder Schalter hat seinen eigenen Verbindungsdraht (+), aber alle Schalter eine gemeinsame Masse (common ground, -). Nimmt man nun eine Widerstandsmessung zwischen Masse und z.B. Schalter „A“ vor, ist der Messwert zunächst unendlich groß. Betätigt man nun den A-Knopf, verringert sich der Messwert (kleiner unendlich) – der Schalter ist geschlossen.

Die Verbindung der Experimentierplatine mit den GPIO-Pins der Raspberry PI habe ich mittels Jumperkabeln (männlich/weiblich) vorgenommen, diese lassen sich bequem ohne Löten umstecken.

Zur Planung der Belegung der einzelnen GPIO-Pins habe ich mich an nachfolgender Pinbelegung (gültig für Raspberry Pi Modell B) orientiert:

raspberry-pi-rev2-gpio-pinout

Nun mussten die GPIO-Pins mit den einzelnen Schaltern verbunden werden, dies habe ich zunächst auf dem Papier geplant und anschließend mittels der Jumperkabel umgesetzt.

05-Versuchsaufbau Ansteuerung GPIO mit Logitech Wingman

Wie man sieht, reichten die Tasten das Gamepads nicht ganz – hier musste ich mir mit zwei Drucktastern (für Select + Start) sowie zwei weiteren Tastern aus einem Experimentierset (für die Schultertasten LI/RE) behelfen.

Nun konnte ich die Software und dessen Konfiguration entsprechend anpassen, auf den Einbau des Kitsch Bent PCB sowie der Drucktaster vorbereiten und einen finalen Anschlussplan erstellen, auf diesen komme ich später noch einmal zurück.

2014-08-03-Belegungsmatrix Planung fuer PCB

Finaler Anschlussplan / Belegungsmatrix für Kitsch Bent PCB + Taster

III. Demontage Gameboy

Zur Demontage des Gehäuses wird ein spezieller „Triwing“-Schraubendreher verwendet, welchen ich oben in der Materialliste aufgeführt habe. Nach dem Öffnen des Gehäuses ist zu beachten, das Ober- und Unterseite mit einem Flachbandkabel verbunden sind, welches vorsichtig herausgezogen werden kann.

Da von dem Gameboy selbst „nur“ das Gehäuse, Batteriefachabdeckung sowie Bedienelemente benötigt werden, können die elektrischen Komponenten, sofern noch funktionsfähig, einfach ausgebaut und als Ersatzteile für die Reparatur eines ggf. weiteren Gameboy aufbewahrt werden.

IV. Bearbeitung des Gehäuses

Nach einer Grundreinigung der Gehäuseteile und Bedienelemente ging es an die Bearbeitung. Hierzu eignet sich ein Dremel sehr gut, ich empfehle ein Sägewerkzeug sowie zwei Fräser, insbesondere zur stirnseitigen Bearbeitung. Wer noch nie mit dem Dremel gearbeitet hat, sollte zuvor ein wenig üben – gerade bei Kunststoffen ist schnell etwas zuviel Material entfernt.

Ich habe zuvor die Teile vermessen und Handskizzen erstellt, um so wenig Material wie möglich zu entfernen – dennoch muss gerade an der Unterseite der gesamte Batteriekasten einschließlich der Verrippung entfernt werden, stirnseitig habe ich eine kleine Bohrung für den Anschluss des Netzteils vorgesehen. An der Oberseite ist ein vergrößerter Ausschnitt für das Display erforderlich, sowie eine kleine Aussparung für den Lautsprecher.

Beim Batteriefach-Deckel sind 4 Bohrungen ø12,7 mm erforderlich sowie minimale Materialabtragung um die Bohrungen herum, um die Verschraubung der Taster zu ermöglichen. Hier sieht man das finale Ergebnis (oder was davon übrig geblieben ist):

01-Bearbeitung GehaeuseDie verbliebenen Öffnungen habe ich mittels kleiner Kunststoffzuschnitte und Sekundenkleber verschlossen.

Zur Befestigung habe ich zwei kleine Laschen mit kleinen Muttern M3 angeklebt, um beide Gehäusehälften miteinander verschrauben zu können, da sämtliche der früheren Befestigungspunkte bedingt durch die beengten Platzverhältnisse weichen mussten.

 V. Lötarbeiten und Verkabelung – Steuerung + GPIO

Nach dem Eintreffen des Kitsch Bent Common Ground DMG Control Panels ging es nun daran, die geplante Verkabelung der Steuerung in die Realität umzusetzen. Hierzu greife ich noch einmal meine Belegungsmatrix auf:

Finaler Anschlussplan / Belegungsmatrix für Kitsch Bent PCB + Taster

Finaler Anschlussplan / Belegungsmatrix für Kitsch Bent PCB + Taster

Zunächst führte ich die Lötarbeiten an den Drucktastern durch:

01-Steuerung Anschließend die Anbindung des Kitsch Bent PCBs:

02-Steuerung

03-Steuerung

 

Als zusätzlichen Schalter für die ESCAPE-Sequenz (Abbruch der Emulation und Rückkehr ins Frontpanel) band ich noch einen kleinen Drucktaster an den noch freien Pin 26 / GPIO 7 an und setzte dessen Masse auf Pin 14. Mit ein wenig Sekundenkleber und Heisskleber fixiert passt dieser ideal in die Öffnung des früheren Gameboy-Netzteilanschlusses:

04-Steuerung

VI. Lötarbeiten und Verkabelung – Stromversorgung + Sound

Die Stromversorgung gestaltete sich ein wenig schwieriger als zunächst gedacht. Ich wollte diese zunächst wie beim „Super Pi Boy“ mittels einer 5V-Micro-USB-Schnittstelle lösen, musste dieses Vorhaben aber letztendlich aufgeben (siehe Abschnitt LCD-Display) und mich primär auf die 12V-Schiene beschränken. Um die 5V-Komponenten wie Raspberry Pi und Audio-Verstärker zu versorgen, entschied ich mich für den Einbau eines LM2596 Schaltreglermoduls.

a) LCD-Display

Nachdem ich das Taotronics LCD-Display aus seinem Gehäuse ausgebaut hatte, stellte ich erfreut fest, das die Platine bedeutend kleiner war, als beim verwendeten Modell des „Super Pi Boy“. Doch stellte sich bei der Recherche heraus, das ein Umbau der Stromversorgung von 12V auf 5V bei diesem Modell nicht so ohne weiteres zu realisieren war – mangels tiefergehender Kenntnisse entschied ich mich, keine Lötarbeiten an der Platine durchzuführen und die Stromversorgung auf 12V zu belassen.

01-Kabelverlegung

Rückseite des 3,5″ LCD Displays

Die Anschlussbelegung ist wie folgt:

  • rot: +12V
  • schwarz: GND
  • gelb: AV2
  • weiss: AV1

Da mein Clinch-Stecker für den Videoausgang zu groß für den Einbau ins Gehäuse war, baute ich ihn auf ein Minimum um, die gelbe Ader habe ich an AV2 (gelb) und die schwarze Ader an GND angeschlossen. AV1 (weiss) blieb ungenutzt und wurde abgebunden.

02-Kabelverlegung

 

b) Spannungswandler LM2596 Schaltreglermodul

03-Kabelverlegung

Die Ausgangsspannung des Schaltreglermoduls lässt sich mittels einer Verstellschraube sehr fein regeln; dieser Schritt ist zuerst mittels eines Multimeters vorzunehmen. Ich habe eine Leerlaufspannung von 5,1V eingestellt. An den 12V-Eingang habe ich die Anschlüsse der Netzteilbuchse sowie das LCD-Display angebunden; am 5V-Ausgang das Micro-USB-Kabel für die Stromversorgung des Raspberry Pi sowie die Stromversorgung des Audio-Verstärkerboards.

Wie auf nachfolgendem Bild zu sehen, musste der Stecker für die Stromversorgung des Raspberry Pi mangels Bauraum ebenfalls massiv gekürzt werden.

04-Kabelverlegung

c) Audio + Lautsprecher

Bei der Planung entschied ich mich für Ersatzlautsprecher für den Nintendo DS, da diese zum einen vom Bauraum in das Gehäuse passten und zum anderen laut verschiedener Meinungen einen relativ gute Klangqualität aufweisen.

06-Kabelverlegung

Am Audioausgang der Raspberry Pi nutzte ich einen klassischen, abgewinkelten 3,5 mm Klinkenstecker und schaltete zwischen Ausgang und Lautsprecher einen PAM8403 Audio-Verstärker.

05-Kabelverlegung

Interessanterweise trat bei mir auf dem rechten Kanal ein sehr lautes Rauschen auf, weshalb ich mich dazu entschied, nur den linken Kanal anzubinden. Dieses Problem schien bei mir am Audioausgang der Raspberry Pi zu liegen, welche auch mit normalen Kopfhörern ein Grundrauschen auf dem rechten Kanal aufwies – nach dem Studium diverser Foren scheinen Soundprobleme am Audioausgang der Raspberry Pi keine Seltenheit zu sein. Wie auch immer – für Retrogames benötigt man im Regelfall aber keinen HiFi-Sound.

Ich habe meine elektrische Verkabelung in Form eines Schemas zusammengefasst:

Kabelverlegung

 

VII. Zusammenbau der Komponenten

Viel Platz bietet das Gameboy-Gehäuse nicht – dementsprechend benötigt man beim Zusammenbau Geduld und teilweise starke Nerven. Ich habe mit dem Oberteil des Gehäuses begonnen und zunächst den Lautsprecher mit zwei Klebepunkten Heisskleber fixiert. Anschließend erfolgte der Einbau des Displays, welches ich mittels doppelseitigem Klebeband fixierte. Zuletzt erfolgte der Einbau des Common Ground DMG Control Panel. Sämtliche offenliegende Elektronik habe ich anschließend mittels Isolierband abgedeckt.

01-ZusammenbauDie Unterseite gestaltete sich als Herausforderung – der zur Verfügung stehende Bauraum ist mehr als beengt und knapp, gerade die Kabelverlegung erfordert ein wenig „Ideenreichtum“. Gerade das ursprünglich nicht eingeplante Schaltreglermodul erforderte viel Überlegung – das Modul ist nicht gerade klein. Auf dem nachfolgenden Bild sieht man den finalen Aufbau, kurz vorm endgültigen Zusammenbau.

02-Zusammenbau

Beim Verschrauben stellte ich allerdings heraus, das die beiden Schrauben nicht ausreichend waren und gerade in der Mitte eine Befestigung fehlte – hier zeigte sich ein Spalt zwischen beiden Gehäusehälften. Ohne Klebeband liess sich dort leider nichts machen 🙁

Zum Schluss habe ich noch eine Acrylglas-Abdeckung (1 mm Dicke) zum Schutz des Displays aufgebracht (Fixierung mittels ein paar Punkten Sekundenkleber).

Anbei der finale Aufbau, im Vergleich zum Original von 1989:

04-Zusammenbau

05-Zusammenbau

06-Zusammenbau

 VIII. Schlusswort

Nach dem Zusammenbau und einem ersten Test muss ich sagen: Ich bin begeistert! 😀 Der Umbau selbst hat eine Menge Spaß gemacht und ich habe sehr viel dabei gelernt. Wenn man bedenkt, das ich kein Elektrotechniker bin und zum ersten Mal (wirklich) mit einem Lötkolben gearbeitet habe, war die Lernkurve sicherlich hoch 😀 Im Verlauf des ganzen Projekts habe ich mir einige Kenntnisse und Fähigkeiten aneignen können, das es mich umso mehr freut, das alles so reibungslos geklappt hat und am Ende sogar funktioniert. Und es macht einfach Spaß, mit dieser ultimativen Retro-Game-Konsole zu spielen 😀

An dieser Stelle noch einmal meinen herzlichen Dank für die Anregung, welche mir der Umbau von „microbyter“ unter http://superpiboy.wordpress.com gegeben hat.

So, nun seit Ihr gefragt! Ich freue mich auf Eure Zuschriften, Lob, Kritik, Ideen, Vorschläge und natürlich: Eure eigene Umsetzung Eurer ultimativen Retrogame-Konsole!

119 thoughts on “Projekt: Raspberry Pi – Gameboy

  1. Lars Gutsche

    Hallo.
    selbe Frage wie auch an den Macher des Originall Super Pi Boy:
    Wie hast du dein Image noch weiter verändert?
    Nutz du die Emulatorstation?

    Wär es möglich, das du dein Image der SD-Karte einfach mal hochlädst?

    Hast du auch die Adafruit Software benutzt, um GPIO-Pins Tsten zuzuweisen?
    Wie hast du dsas Problem gelöst, dass standertmäßig die Tasten A und B im Emulatorstation und GBASP Emulator vertauscht sind??

    Mit freundlcihen Grüßen,
    Lars Gutsche

    Reply
    1. Arndt Post author

      Hallo Lars,

      ich habe das Retropie-Image nicht weiter verändert (bis auf die Tastenbelegung).

      Die Tastenbelegung habe ich innerhalb /opt/retropie/configs/all/retroarch.cfg (ab Zeile 318) vorgenommen:

      # Keyboard input. Will recognize letters ("a" to "z") and the following special keys (where "kp_"
      # is for keypad keys):
      #
      # left, right, up, down, enter, kp_enter, tab, insert, del, end, home,
      # rshift, shift, ctrl, alt, space, escape, add, subtract, kp_plus, kp_minus,
      # f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12,
      # num0, num1, num2, num3, num4, num5, num6, num7, num8, num9, pageup, pagedown,
      # keypad0, keypad1, keypad2, keypad3, keypad4, keypad5, keypad6, keypad7, keypad8, keypad9,
      # period, capslock, numlock, backspace, multiply, divide, print_screen, scroll_lock,
      # tilde, backquote, pause, quote, comma, minus, slash, semicolon, equals, leftbracket,
      # backslash, rightbracket, kp_period, kp_equals, rctrl, ralt
      #
      # Keyboard input, Joypad and Joyaxis will all obey the "nul" bind, which disables the bind completely,
      # rather than relying on a default.
      input_player1_a = x
      input_player1_b = z
      input_player1_y = a
      input_player1_x = s
      input_player1_start = enter
      input_player1_select = rshift
      input_player1_l = pageup
      input_player1_r = pagedown
      input_player1_left = left
      input_player1_right = right
      input_player1_up = up
      input_player1_down = down
      # input_player1_l2 =
      # input_player1_r2 =
      # input_player1_l3 =
      # input_player1_r3 =

      Hast du auch die Adafruit Software benutzt, um GPIO-Pins Tsten zuzuweisen?

      Ja, dies hatte ich unter Punkt „II. Versuchsaufbau & Ansteuerung GPIO“ aufgeführt. Ich habe den Quelltext hinsichtlich der GPIO-Zuordnung entsprechend auf meine Bedürfnisse angepasst:

      Auszug retrogame.c:

      ioStandard[] = {
      // This pin/key table is used when the PiTFT isn't found
      // (using HDMI or composite instead), as with our original
      // retro gaming guide.
      // Input Output (from /usr/include/linux/input.h)
      { 25, KEY_LEFT }, // Joystick (4 pins)
      { 9, KEY_RIGHT },
      { 10, KEY_UP },
      { 17, KEY_DOWN },
      { 8, KEY_ENTER }, // Start
      { 11, KEY_RIGHTSHIFT }, // Select
      { 23, KEY_Z }, // B-Button
      { 23, KEY_Y }, // B-Button
      { 4, KEY_X }, // A-Button
      { 27, KEY_A }, // Y-Button (SNES)
      { 22, KEY_S }, // X-Button (SNES)
      { 18, KEY_PAGEUP }, // Schultertaste LI (SNES)
      { 24, KEY_PAGEDOWN }, // Schultertaste RE (SNES)
      { 7, KEY_ESC }, // ESC
      // For credit/start/etc., use USB keyboard or add more buttons.
      { -1, -1 } }; // END OF LIST, DO NOT CHANGE

      // A "Vulcan nerve pinch" (holding down a specific button combination
      // for a few seconds) issues an 'esc' keypress to MAME (which brings up
      // an exit menu or quits the current game). The button combo is
      // configured with a bitmask corresponding to elements in the above io[]
      // array. The default value here uses elements 6 and 7 (credit and start
      // in the Cupcade pinout). If you change this, make certain it's a combo
      // that's not likely to occur during actual gameplay (i.e. avoid using
      // joystick directions or hold-for-rapid-fire buttons).
      // Also key auto-repeat times are set here. This is for navigating the
      // game menu using the 'gamera' utility; MAME disregards key repeat
      // events (as it should).
      const unsigned long vulcanMask = (1L << 4) | (1L << 8); const int vulcanKey = KEY_ESC, // Keycode to send vulcanTime = 1500, // Pinch time in milliseconds repTime1 = 500, // Key hold time to begin repeat repTime2 = 100; // Time between key repetitions

      Wie hast du dsas Problem gelöst, dass standertmäßig die Tasten A und B im Emulatorstation und GBASP Emulator vertauscht sind??

      Ob dies bei mir ebenfalls auftritt, kann ich nicht genau sagen, dies müsste ich noch mal innerhalb des jeweiligen Emulators testen. Dies würde mich dennoch wundern, denn alle Emulatoren greifen auf eine zentrale Konfiguration zurück - tritt das Problem denn bei der aktuellen Retropie-Version auf?

      Viele Grüße

      Arndt

      Reply
      1. Lars Gutsche

        @ Problem mit vertauschten tasten:
        Ja, ich war Faul, und habe das Aktuellste Retropie Image genommen.
        Dabei sind folgende Veränderungen aufgefallen:
        * Ich hatte ein Programm names Emulatorstation, welches immer nach Retropie startet. (brauch einfach nur LÄNGER 🙁 )
        * (Mein Setup hatte nur 2 Schultertasten) Desweitern waren für GBASP (Emulator gPSP) die A und B tasten vertauscht [gelöst durch Schalter, wecher mir erlaubt, A und B zu vertauschen]
        * Kosolen, bei den es mehrer Emulatoren gabe, wollten immer mit dem Falschen laufen (NeoGeo und GameGear).
        * Desweitern fehlten ein paar angeblich wichtige Systemdatein und fast jeder Dateipfad war anders (Emulatoren mussten im: ~/opt/retropie/emulatoren/(Emulatorname) gespeichert werden.)

        Deswegen schicke bitte, wenn es möglich ist, mal dein SD-Card Image ^^
        Desweitern ist bei meinem Aufbau der Lan-Port zugänglich, weil ich (Windowsnutzer) alle Einstellung per Putty/WinSCP vorgenommen habe (und noch zusätzliche Roms draufspielen kann)
        Damit wär ich bei einer weitern Frage: Kannst du DIREKT auf die SD-Card neue Roms aufspielen??

        Letzte Anmerkung von mir: Ich weis nur, wie ich Systeme nutze, ich kann nicht programmiren. Deswegen kann ich nicht sagen, wieviel von meinen Fehler der Verdienst war, ein falsche Image zu nehmen ODER es einfach nur Bedienerfehler waren.

        Viel Grüße
        Lars

        Reply
        1. Arndt Post author

          Hallo nochmal,

          das Du das aktuellste Image genommen hast, hat nichts mit Faulheit zu tun – das ist doch legitim und völlig in Ordnung. Ich habe ebenfalls das aktuelle Image von http://blog.petrockblock.com/retropie/retropie-downloads/ bezogen und bis auf meine oben beschriebenen Anpassungen der Tastenbelegung unverändert übernommen. Deshalb macht es meiner Meinung nach wenig Sinn, mein Image hochzuladen – es entspricht letztendlich genau der Ausführung von Retropie.

          * Ich hatte ein Programm names Emulatorstation, welches immer nach Retropie startet. (brauch einfach nur LÄNGER 🙁 )
          * (Mein Setup hatte nur 2 Schultertasten) Desweitern waren für GBASP (Emulator gPSP) die A und B tasten vertauscht [gelöst durch Schalter, wecher mir erlaubt, A und B zu vertauschen]
          * Kosolen, bei den es mehrer Emulatoren gabe, wollten immer mit dem Falschen laufen (NeoGeo und GameGear).
          * Desweitern fehlten ein paar angeblich wichtige Systemdatein und fast jeder Dateipfad war anders (Emulatoren mussten im: ~/opt/retropie/emulatoren/(Emulatorname) gespeichert werden.)

          Hierbei kann ich Dir nicht wirklich weiterhelfen. Für diese Punkte wären die Retropie-Entwickler bzw. dessen Community die richtigen Ansprechpartner. Wie ich gesehen habe, exisitert unter http://blog.petrockblock.com/forums/forum/retropie-project-forum/ auch ein Forum.

          Desweitern ist bei meinem Aufbau der Lan-Port zugänglich, weil ich (Windowsnutzer) alle Einstellung per Putty/WinSCP vorgenommen habe (und noch zusätzliche Roms draufspielen kann)

          Völlig in Ordnung. Anstelle eines LAN-Kabels kannst Du auch den kompakten Edimax WLAN-Stick (in meinem obigen Blogeintrag verlinkt) verwenden, um drahtlos per ssh (Putty o.ä.) auf Deine Raspberry Pi zuzugreifen, was das Ganze noch ein wenig komfortabler macht.

          Damit wär ich bei einer weitern Frage: Kannst du DIREKT auf die SD-Card neue Roms aufspielen??

          Ja, mit jedem Betriebssystem bzw. Programm, welches das Dateisystem ext3/ext4 lesen und schreiben kann. Der einfachste Weg wäre hierzu eine parallele Linux-Installation (auch über eine Virtual Machine, wie VirtualBox machbar), dann ist ein nativer und problemloser Zugriff (lesend wie schreibend) möglich. Wenn es zwingend Windows sein muss, empfehle ich Dir die Lektüre des folgenden Artikels: http://wiki.ubuntuusers.de/Linux-Partitionen_unter_Windows

          Ich wünsche Dir viel Erfolg und drücke Dir die Daumen, das Du bald alles wie gewünscht ans Laufen bekommst.

          Viele Grüße

          Arndt

          Reply
  2. Jupp

    Hi,

    erstmal super Blogpost(Artikel)!

    Ich wollte mal fragen wie lange hat es gedauert bis das Board aus den USA bei dir ankam?

    Reply
    1. Arndt Post author

      Hallo,

      vielen Dank, ich freue mich, das Dir mein Artikel gefällt!

      Ich wollte mal fragen wie lange hat es gedauert bis das Board aus den USA bei dir ankam?

      Ja, das weiß ich sogar noch recht genau. Kitsch Bent selbst war superfix, ich habe das Board am 26.07. bestellt, der Versand erfolgte schon am 28.07.2014 per USPS. Eingetroffen ist die Lieferung dann bei mir am 12.08.2014, ich empfand das als recht schnell.

      Viele Grüße

      Arndt

      Reply
  3. Mark

    Ich habe das gleiche Display (Taotronics). Intern konvertiert das Display die Spannung auf 3,3v. Du kannst mit 5 bis ca. 40 Volt am Display ankommen. Ich habe ein 5V Netzteil genommen, dass vom Stecker her in den GB Netzteil-Port passt und versorge damit Raspberry und Display. Funktioniert wunderbar.

    Reply
    1. Arndt Post author

      Hallo Mark,

      ja, davon hatte ich auch gelesen und es testweise bei meinem Display mit 5V am Eingang versucht. Dies führte zu einem „pulsierenden“ Bildaufbau (Display im Sekundentakt an/aus), davon wurde ebenfalls mehrfach berichtet. So wie ich gelesen habe, scheint es seitens Taotronics mehrere Ausführungen und Revisionen des Displays zu geben, die auch ein unterschiedliches Platinenlayout aufzuweisen haben.

      Ein „Umlöten“ auf 5V scheint ebenfalls nicht bei allen Modellen so ohne weiteres möglich zu sein, weshalb ich mich letztendlich mangels tiefergehender Kenntnisse dazu entschieden habe, keine Lötarbeiten an der Platine durchzuführen und die Stromversorgung auf 12V zu belassen.

      Allerdings kann es nicht schaden, individuell zu testen, ob nicht eine Versorgung mit 5V möglich erscheint, denn wie in Deinem Fall gibt es Modelle, wo dies funktioniert. Letztendlich erspart dies möglicherweise den Einbau eines Spannungswandlers und natürlich kostbaren Platz im Gehäuse 🙂

      Viele Grüße

      Arndt

      Reply
    1. Arndt Post author

      Hi Hugo,

      thank you 🙂 Find a solution to cover the LCD-Display was one of my first steps on my to-do list, because it protects the LCD and looks even better.

      The original gameboy display lens dimensions are 75 mm x 57 mm with a thickness of 1 mm. I’ve decided to increase the display cutout from the gameboy top cover to 72.8 mm x 54.8 mm (this is the visible area of my Taotronics display). After that, you have a circumferential contact surface with 1.1 mm width, this is enough to fix / glue a new acrylic glass on it, that fits perfect.

      For the acrylic glass cover you can use each material like PC (polycarbonate), e.g. „Makrolon“ with 1 mm thickness. As simple solution I’ve used the frontside material of the remaining Taotronics display case and cut it to a final size of 75 mm x 57 mm, corners rounded R3 mm. 🙂

      I hope this information has been of assistance to you.

      Kind regards

      Arndt

      Reply
  4. Hugo

    Hi,
    thanks for your reply.
    That’s a cleaver idea! Soon as I get mine I will try to make that too.
    In fact that really looks great and professional.

    Other topic, do you have any advice for the battery?

    Thanks for your support.

    Regards,

    __
    Hugo

    Reply
    1. Arndt Post author

      Hi Hugo,

      not at the moment, I currently use a power supply from an external hard drive. 🙂 But the usage of battery packs are possible, the only thing you should consider is enough capacity and 12V output voltage (if you want to use the 12V rail also).

      Kind regards

      Arndt

      Reply
  5. Dennis

    Die Idee ist schon nicht schlecht und ich glaube, wenn man das kommerziell anbieten würde, wäre das bestimmt ein voller Erfolg. Die Nachfrage nach einem Raspi Gameboy ist definitiv da, besonders auf dem globalen Markt. Ich habe vor einiger Zeit glaube ich auf Indiegogo auch mal ein Projekt für ein Raspi NES oder SNES gesehen, dass weit über der Wunschsumme finanziert wurde. Ich komme ja auch aus der Zeit von Gameboy und den ganzen Retro-Konsolen und kann mit den neuen Konsolen ohnehin nicht so viel anfangen.

    Reply
    1. Arndt Post author

      Hallo Mathias,

      prinzipiell kannst Du so viele Tasten hinzufügen, wie Du GPIOs zur Verfügung hast. Mir persönlich haben Steuerkreuz in Verbindung mit 6 Buttons sowie einem kleinen Drucktaster für die Escape-Sequenz (Emulation beenden) allerdings ausgereicht.

      Gruss

      Arndt

      Reply
    1. Arndt Post author

      Hallo Mathias,

      das mag auf dem Foto etwas anders wirken, die Tetris-Emulation ist natürlich monochrom.

      Gruss

      Arndt

      Reply
  6. Lars

    Hallo Arndt,

    erstmal vielen Dank für diese Super Anleitung. sie hat mir sehr geholfen mir meinen eigenen GamePi zu basteln.

    Ich habe ein kleines Problem und zwar ist das Bild in der ES und in den Spielen an den Rändern abgeschnitten bzw ragt ausserhalb des sichtbereichs. Ich hab leider noch nicht herraus gefunden wo ich diese Einstellung anpassen kann. Kannst du mir da einen Tipp geben?

    Gruß,
    Lars

    Reply
    1. Arndt Post author

      Hallo Lars,

      vielen lieben Dank für Dein Lob 🙂 Es freut mich, das Dir meine Anleitung geholfen hat, Deinen eigenen „GamePi“ zu bauen.

      Hinsichtlich Deiner Frage kann ich Dir den Tipp geben, die OVERSCAN-Einstellungen innerhalb der config.txt anzupassen. Mehr dazu findest Du hier: http://www.raspberrypi.org/documentation/configuration/config-txt.md

      Die Werte unterscheiden sich von Display zu Display, weshalb Dir meine Einstellungen wahrscheinlich nicht weiterhelfen werden. Du musst wahrscheinlich ein wenig experimentieren, bis Du die für Dich perfekte Einstellung gefunden hast.

      Viele Grüße

      Arndt

      Reply
  7. Mathias

    Achja ich bin auch fast fertig. Habe aber ein Transparentes Gehäuse genutzt. Hatte nur ein LCD mit zu großer Controllerplatine erwischt. Beim kürzen ist das schief gelaufen. Nja ich warte mal auf das neue Display. Dann baue ich parallel noch ein Super Pi Pocket mit 2,5Zoll Display und Akku. 😉 Ohne deinen Beitrag wäre ich nie darauf gekommen.

    Ps: Gameground Pannel ist ausverkauft. Coming Soon 😉

    Reply
    1. Arndt Post author

      Hallo Mathias,

      das klingt gut, ich bin schon sehr gespannt auf Fotos Deines fertiggestellten Projekts.

      Ps: Gameground Pannel ist ausverkauft. Coming Soon 😉

      Die Nachfrage scheint derzeit sehr groß zu sein 😉

      Ich wünsche Dir weiterhin viel Erfolg und gutes Gelingen 🙂

      Viele Grüße

      Arndt

      Reply
  8. Michael

    Hi Arndt,

    coole Sache das. Hab mich jetzt auch entschlossen, mich zu den Wahnsinnigen zu gesellen und so ein Ding zu bauen … 🙂
    Kurze Frage – gibt es einen Grund, warum Du nicht den PI B+ genommen hast, mit Micro-SD Karte und geringerer Stromaufnahme? Sieht für mich auf den ersten Blick nach der besseren Komponente aus, wenn man die dicken USB-Buchsen weghaut …

    Gruß
    Michael

    Reply
    1. Arndt Post author

      Hallo Michael,

      für die Verwendung des neuen Modells B+ sprechen durchaus einige Vorteile. Neben denen gegenüber dem Vorgängermodell vorgenommenen Verbesserungen (welche Du teilweise schon aufgeführt hast) spricht meiner Meinung nach auch die Verbesserung der Soundqualität für die Verwendung des neuen Modells. Allerdings sollten die Unterschiede zwischen beiden Modellen bei der Planung genau berücksichtigt werden, wie z.B. der Entfall der FBAS/Composite-Schnittstelle, welche in die 3,5 mm Klinkenbuchse integriert wurde.

      Das ich mich seinerzeit nicht für das neue Modell B+ entschieden habe, hatte zweierlei Gründe. Zum einen war zu Beginn meines Projekts das Modell B+ noch recht neu auf dem Markt. Zum anderen fand meine bereits als Mediacenter genutzte Raspberry Pi (B-Modell) Verwendung für die erste Grundplanung und die ersten Versuche. Also eher rein praktische Gründe 😉

      Ich wünsche Dir viel Erfolg bei Deinem Projekt und gutes Gelingen 🙂

      Viele Grüße

      Arndt

      Reply
      1. Michael

        Hi Arndt,

        ok, vielen Dank, das bestätigt meine Vermutungen (und beseitigt letzte Unsicherheiten). Dann werde ich mal die Bestellungen angehen … 🙂

        THX
        Michael

        Reply
  9. Pingback: Bleichen eines Gameboys mit Wasserstoffperoixid « Mathias Biedert

  10. Mathias

    Ich nutze auch ein Modell B+. Ist wirklich besser. Und kühler da ein Besserer Spannungregel eingebaut wurde. Der kaum noch Abwäme produziert. 😉

    lg. Mathias

    Reply
  11. Schwabinger

    Hallo Arndt,

    tolles Projekt, super Umsetzung!

    Ich habe gerade etwas ähnliches in einer kleinen Holzkiste gebaut: Ich verwende den gleichen Monitor wie Du, dafür aber den dicken Adafruit Arcade Stick und 3 cm dicke Arcade Druckknöpfe. Der Kontrast zu dem Mini-Screen hat schon was.

    Meine Frage: wie kann man bei deiner Lösung zwischen verschiedenen Spielen wechseln. Ich starte meine Spiele (gb, gbc, nes, sega, atari) auf Shell-Ebene jeweils mit einem Einzeiler, also ohne X und auch ohne Programme wie Emulationstation. Dabei tippe ich mehr oder weniger blind, weil die Schrift auf der Konsole kaum zu lesen ist ….

    Mit ESC beende ich ein Spiel und starte das nächste wieder mit dem Keyboard.

    Zum Shell-Aufruf verwende ich ein wireless keyboard. Aber natürlich soll das ganze ohne KB auskommen.

    Ich verwende nur folgende Buttons:

    Joystick
    start
    select
    A
    B
    esc.

    GPIOs für weitere Befehl wären also mehr als genug da …

    Gruß

    Schwabinger

    Reply
    1. Arndt Post author

      Hi,

      vielen lieben Dank für Dein Lob 🙂 Deine Idee finde ich allerdings auch nicht schlecht, vielleicht kannst Du mir ein Foto davon zukommen lassen?

      Zu Deiner Frage; ich persönlich verwende das RetroPie SD-card image von http://blog.petrockblock.com/retropie/retropie-downloads/, welches ich auch in Deinem Anwendungsfall absolut empfehlen würde.

      Das RetroPie-Image beinhaltet u.a. eine vollständige Installation der verfügbaren Emulatoren und verwendet Emulation Station als Frontend zur komfortablen Verwaltung und zum Start der jeweiligen Spiele.

      Die Tastenbelegung lässt sich bequem innerhalb des Frontends von Emulation Station konfigurieren, so das Du auch Deinen Arcade Stick zur Steuerung verwenden kannst. In Deinem Fall würde ich noch empfehlen, eine GPIO zur Verwendung eines kleinen Drucktasters für die Escape-Sequenz (Emulation beenden) vorzusehen.

      Viele Grüße

      Arndt

      Reply
  12. Schwabinger

    Hallo Arndt,

    genau das verwende ich.

    Ich möchte aber auf die EmulationStation Software verzichten (ist auf dem 3.5er Display kaum lesbar). Verwendest Du EmulationSation auf diesem Display?

    Momentan starte ich meine Spiele über das wireless Keyboard; das Eigentliche, also die Game-Steuerung sowie das abschließende ESC über die Vulcan-Funktion funktioniert bestens mit dem gebauten Joystick, den Arcade, Start- und Select-Knöpfen.

    Bilder gibts bald im Flickr.

    Greetings,

    Schwabinger

    Reply
    1. Arndt Post author

      Ja, ich verwende Emulation Station 🙂 Zugegeben, das Interface wirkt auf dem 3,5″-Display schon ein wenig klein, ist aber noch recht gut erkenn- und bedienbar. Ich habe Dir ein aktuelles Foto beigefügt:

      IMG_2977

      Hier lässt sich z.B. über die Bildschirmauflösung sicherlich noch etwas verbessern. Ich würde dieses Frontend durchweg empfehlen, es gestaltet das Handling äußerst komfortabel.

      Reply
  13. Schwabinger

    Hi Arndt,

    sieht gut aus auf dem Bild. Ich habs jetzt anders gelöst: Dank des im Hintergrund laufenden „retrogame“ (Konfiguration genau wie bei Dir) kann man auch schon auf der Command-Line mit den beiden Knöpfe B und A durch einmaliges Drücken jeweils ein x (Knopf A) oder ein yz (Knopf B) erzeugen. Die Taste Start schickt ein ENTER hinterher.

    Also habe ich mir für die wichtigsten Spiele jeweils ein Alias definiert (in .bashrc):

    xxx ENTER startet bespielsweise Pacman, weil der alias xxx auf mein Script pacman.sh zeigt (Und in diesem Script ist dann die RETROARCH command line drin …)

    Funktioniert bestens …

    Servus

    Schwabinger

    Reply
  14. Mike

    Hi,

    erstmal super ausführliche anleitung. echt top. bin im moment wie viele hier auch dran, mir so ein ding zu bauen. konnte mir doch noch einige tipps von dir holen. das control board aus den usa ist zur zeit leider nicht verfügbar, hab kitch-bent angeschreiben und er meinte es wäre wieder so in zwei wochen im store. muss ich mich noch bissl gedulden.
    kann dir gerne auch ein paar bilder von meinem projekt zukommen lassen, wenn es soweit fertig ist.
    nun hätte ich noch ein paar fragen:

    gibt es bei dir eine lautstärkeregelung? falls ja, wahrscheinlich nur softwaretechnisch, oder?

    wie ist der sound so, wenn man den lautprecher ohne den kleinen verstärker am raspianschliesst?

    du hast geschrieben, das du zwei befestigungspunkte zum schrauben hattest, wo genau waren die. auf deinen bildern leider nicht so leicht zu erkennen. bei mir sind die meisten ja dem umbau zum opfer gefallen.

    danke schon mal für die beantwortung meiner fragen. 🙂

    Reply
    1. Arndt Post author

      Hallo Mike,

      vielen Dank für die lobenden Worte 🙂 Ich freue mich auf jeden Fall über Bilder von Deinem Umbau, bin schon sehr gespannt.

      gibt es bei dir eine lautstärkeregelung? falls ja, wahrscheinlich nur softwaretechnisch, oder?

      Das ist korrekt, die Lautstärke lässt sich bequem innerhalb des Emulation Station Frontends regeln. Alternativ besteht natürlich die Möglichkeit, eine Lautstärkeregelung via (Dreh-) Potentiometer dazwischenzuschalten, ähnlich wie beim Gameboy-Original. Auf eine externe bzw. mechanische Lösung habe ich allerdings aus Bauraumgründen verzichtet.

      wie ist der sound so, wenn man den lautprecher ohne den kleinen verstärker am raspianschliesst?

      Das habe ich seinerzeit auch getestet, allerdings ist ohne Verstärker selbst bei maximaler Aussteuerung kaum etwas zu vernehmen 😀

      du hast geschrieben, das du zwei befestigungspunkte zum schrauben hattest, wo genau waren die. auf deinen bildern leider nicht so leicht zu erkennen. bei mir sind die meisten ja dem umbau zum opfer gefallen.

      Ja, richtig. Zur Befestigung habe ich zwei kleine Laschen mit kleinen Muttern M3 angeklebt, um beide Gehäusehälften miteinander verschrauben zu können, da sämtliche der früheren Befestigungspunkte bedingt durch die beengten Platzverhältnisse weichen mussten. Die Bilder hierzu sind auch in meinem ursprünglichem Post enthalten. Ich füge Dir diese hier noch einmal bei:

      Lasche zur Verschraubung Oberseite Lasche zur Verschraubung Oberseite

      Verschraubung Oberseite Verschraubung Oberseite

      Lasche zur Verschraubung Unterseite Lasche zur Verschraubung Unterseite

      Verschraubung Unterseite Verschraubung Unterseite

      Ich wünsche Dir weiterhin viel Spaß und Erfolg bei Deinem Umbau 🙂

      Viele Grüße

      Arndt

      Reply
  15. Leopold

    Hallo!
    Danke für die detailreichen Infos, du hast dir ja unglaubliche Mühe gemacht alles festzuhalten!
    Auch ich habe mich dazu überwunden, meinen eigenen Raspberry Pi Gameboy zu bauen, allerdings mit ein paar Zusätzen wie wireless controller und Akkubetrieb – und genau hier habe ich ein kleines Problem (Ich weiß, dass du keinen Akku verbaut hast, aber vielleicht hast du ja eine idee):
    Ich habe eine Ladeschutzschaltung (USB) und einen 3,7V Akku und einen DC-DC Wandler (um aus den 3,7V 5V zu machen) verbaut, jedoch springt mir das Ding im Akkubetrieb nicht an. Der RasPi und der LCD gehen für den Bruchteil einer Sekunde an und gleich wieder aus, dann wieder an,……
    Macht also den Anschein, als ob die Spannung zusammenbricht. Hast du eine Idee?
    (Mit einem 5V Akku hat es funktioniert, hier hatte ich allerdings andere Probleme)

    Reply
    1. Arndt Post author

      Hallo Leopold,

      vielen Dank, es freut mich, das Dir meine Dokumentation gefällt 🙂 Ich habe mich soeben auch auf Deiner Seite umgesehen, um etwas mehr Hintergrundinfos zur Beantwortung Deiner Frage zu erhalten. Dein Umbau gefällt mir gut, Du hast einige Punkte mit praktischen Ideen umgesetzt, die ich sehr interessant finde. Zum Beispiel war die externe USB-Schnittstelle etwas, was ich ursprünglich mal implementieren wollte, aber aus Bauraumgründen wieder verworfen habe.

      Was Dein Akkuproblem betrifft, muss ich vorweg darauf hinweisen, das ich in diesem Fall auch nur Bastler und kein Experte bin. 🙂

      Ich habe mich seinerzeit bei der Planung meines Umbau mit der Akku-Thematik auseinandergesetzt und wollte ebenso Li-Ionen-Modellbauakkus wie z.B. die gängigen 18650er hierzu verwenden.

      Es gilt allerdings hierbei zu beachten, den richtigen (!) Akku gemäß seinem Einsatzzweck auszuwählen. Hier gibt es eine Vielzahl Punkte zu beachten, wie z.B. die Priorisierung nach hoher Lastfähigkeit (viel A, z.B. IMR-Akkus) oder hoher Ausdauer (viel mAh, z.B. ICR-Akkus). Nicht jede Akkuversion ist gleich gut für jeden Einsatzzweck geeignet. Es gilt einen Akku zu finden, der bei einer bestimmten Stromstärke A noch die meiste Kapazität mAh bereitstellt.

      Dazu empfehle ich generell geschützte (protected) Akkus, diese werden meistens mit dem Zusatz PCB (Protection Circuit Board) gekennzeichnet. Das PCB ist sinnvoll und wichtig, denn es schützt den Akku vor Überlast (Beispiel Kurzschluss!), vor dem Überladen sowie dem Tiefentladen, indem der Stromfluss unterbrochen wird. Alternativ lässt sich dieses auch mit einer eigenen Schutzschaltung realisieren, diese muss allerdings mit entsprechender Sachkenntnis auf den jeweiligen Akku abgestimmt sein und auch im Ernstfall funktionieren. Auch rate ich dazu, nur zertifizierte Akkus zu verwenden.

      Li-Ionen-Akkus dürfen nur (!) mit einer speziellen Ladeschaltung geladen werden, welche mittels Eektronik den ladungsabhängigen Ladestrom steuert und die exakt einzuhaltende Ladeschlussspannung überwacht.

      Ich habe mich seinerzeit nach langer Überlegung schon zu Beginn der Planung dazu entschieden, allein schon aus Platzgründen auf eine integrierte Akkulösung zu verzichten.

      Aber um zurück auf Deine Frage zu kommen, ich vermute ebenfalls einen Zusammenbruch der Versorgungsspannung und auch, das der (hoffentlich vorhandene) Überlastschutz des Akkus greift.

      Du hast eine Vielzahl Verbraucher (Raspberry Pi, LCD-Display, USB, Sound-Verstärker, usw.) und speist diese mit einer 18650 Rundzelle via Aufwärts (Step-Up) -Regler auf eine Versorgungsschiene von 5 V, was zusätzliche Verluste bedeutet. Meiner Einschätzung nach kann Deine Rundzelle die benötigte Leistung schlichtweg nicht erbringen.

      Bei meinem Umbau habe ich mich mangels tiefergehender Kenntnisse dazu entschieden, keine Lötarbeiten an der Platine des LCD-Displays durchzuführen und die Stromversorgung auf 12V zu belassen. Anstelle nun eine Eingangsspannung von 5 V zu wählen und diese via Step-Up auf 12 V hochzuregeln, entschied ich mich für die sinnvollere Methode über eine Versorgung über die 12 V-Schiene mittels Netzteil. Hiermit speise ich das LCD-Display und nutze einen Abwärtswandler (Step-Down), um die Raspberry Pi mit einer 5 V Spannung zu versorgen.

      Wie gesagt, ich bin kein Experte – genaueres können Dir sicherlich z.B. Modellbauer sagen, welche die entsprechenden Erfahrungen mit den Rundzellen haben.

      In Deinem Fall würde ich empfehlen, ein Akkupack / Powerbank mit entsprechender Ausgangsleistung (wie z.B. für Tablets) für die mobile Nutzung zu verwenden. Solltest Du die 5 V-Schiene verwenden (Du hast Dein Display ja entsprechend vorbereitet), dürfte es kein Problem sein, ein passendes Modell zu finden – zudem Du dann auch entsprechende Kapazitäten (längere Laufzeiten!) zur Verfügung hast.

      Viele Grüße

      Arndt

      Reply
  16. Micha

    Hi Arndt,

    ich Bastel auch gerade an dem Projekt und es ist nicht mehr weit bis zum Ziel. Ich Versuche den common ground dmg button pcb selbst zu Ätzen ich hoffe es gelingt mir. Eine Frage an dich, kannst du mir bitte den Inhalt deiner config.txt angeben das der Monitor dann auch richtig alles ausgibt. Das wäre sehr nett von dir.

    Grüße Micha

    Reply
    1. Arndt Post author

      Hey Micha,

      hinsichtlich des Displays kann ich Dir nur den Tipp geben, die OVERSCAN-Einstellungen innerhalb der config.txt anzupassen. Mehr dazu findest Du hier: http://www.raspberrypi.org/documentation/configuration/config-txt.md

      Die Werte unterscheiden sich von Display zu Display, weshalb Dir meine Einstellungen wahrscheinlich nicht weiterhelfen werden. Du musst wahrscheinlich ein wenig experimentieren, bis Du die für Dich perfekte Einstellung gefunden hast.

      Viele Grüße

      Arndt

      Reply
      1. Micha

        Hi Arndt,

        vielen Dank erstmal für deine Antwort. Wegen dem Monitor, ich habe gebau den gleichen genommen wie du deswegen frage ich ja. Aber kann ja wirklich etwas probieren was die beste Einstellung für mich ist.

        Stand zum Bau: Habe heute den common ground dmg button pcb heute Morgen erfolgreich selber geätzt ist sehr gut geworden.

        LG Micha

        Reply
    1. Micha

      Hi Arndt,

      von dem Artikel habe ich das Projekt und habe es gleich begonnen. Sehr gut macht auf jedenfall spass.

      LG Micha

      Reply
  17. Micha

    Hallo Andt,

    ich bins mal wieder, habe mal eine Frage zum zusammenbau. Wenn ich die Kabel an dem GPIO anstecke komme ich nicht mehr mit der Höhe hin. Wie es auf deinem Bild oben aussieht hast du aber auch die Stecker dran gelassen. Hast du einen Tip für mich?

    Grüße Micha

    Reply
    1. Arndt Post author

      Hallo Micha,

      der Zusammenbau ist in jedem Fall eine kleine Herausforderung und hat mich so einige Nerven gekostet. 😉 Er ist aber machbar – auch mit den „ausladenden“ Steckern der Jumper-Kabel 🙂 Die Platzverhältnisse sind natürlich sehr beengt, gerade was die Höhe betrifft. Ich habe hierzu auf der Gegenseite der Platine, also genau wo die GPIO-Pins „durchtauchen“ sogar noch etwas Material des Gameboy-Gehäuses entfernt, damit die Raspberry Platine soweit wie möglich glatt aufliegen kann – das spart etwa 1-2 mm Höhe ein. Was ebenfalls eine Engstelle sein kann, sind die Elemente auf der Platine des LCDs zu den Steckern der auf den GPIO-Pins aufgesteckten Jumperkabel – hier kann es zu einer Kollision kommen. Vielleicht kannst Du die Raspberry noch ein wenig verschieben, falls dies nicht gelingt, kannst Du die Platine des LCD-Displays geringfügig verschieben – diese ist mittels doppelseitigem Klebeband auf der Rückseite des LCDs aufgeklebt und kann – mit besonderer Vorsicht – abgelöst, neu positioniert und wieder befestigt werden.

      Ich wünsche Dir viel Erfolg. 🙂

      Gruss

      Arndt

      Reply
      1. Micha

        Hallo Arndt,

        ich habe alles Versucht die Stecker laden einfach zu hoch aus bekomme das nicht hin werde jetzt die Stecker abschneiden und dann ein Flachbandkabel benutzen ich denke dann müsste es klappen.

        LG Micha

        Reply
  18. Micha

    Hi Arndt,

    schon wieder ich, muß man das Adafruit programm nutzen, wenn ja wie funktioniert das. Ich habe mal Eingeschalten und da kommt immer das kein Controler angeschlossen ist und ich soll „A“ Drücken es passiert aber nix. Weißt du was da los ist? Danke

    LG Micha

    Reply
    1. Arndt Post author

      Hallo Micha,

      versuche es zunächst mal mit einer angeschlossenen Tastatur – diese sollte problemlos erkannt werden.

      Viele Grüße

      Arndt

      Reply
      1. Micha

        Hi Arndt,

        mit Tastatur klappt es erstmal habe die „interfaces“-Datei so angepasst das ich den SuperPiBoy per SSH ereichen kann. Was muß ich jetzt machen muß man noch apt-get update und apt-get upgrade machen? Dann noch wie muß ich das Adafruit programm installieren und benutzen?

        LG Micha

        Reply
        1. Micha

          Hi Arndt,

          habe es geschafft mit dem Adafruit programm eine Frage habe ich aber noch und zwar. Nach deinem Auszug siehe oben:

          Auszug retrogame.c:

          ioStandard[] = {
          // This pin/key table is used when the PiTFT isn’t found
          // (using HDMI or composite instead), as with our original
          // retro gaming guide.
          // Input Output (from /usr/include/linux/input.h)
          { 25, KEY_LEFT }, // Joystick (4 pins)
          { 9, KEY_RIGHT },
          { 10, KEY_UP },
          { 17, KEY_DOWN },
          { 8, KEY_ENTER }, // Start
          { 11, KEY_RIGHTSHIFT }, // Select
          { 23, KEY_Z }, // B-Button
          { 23, KEY_Y }, // B-Button
          { 4, KEY_X }, // A-Button
          { 27, KEY_A }, // Y-Button (SNES)
          { 22, KEY_S }, // X-Button (SNES)
          { 18, KEY_PAGEUP }, // Schultertaste LI (SNES)
          { 24, KEY_PAGEDOWN }, // Schultertaste RE (SNES)
          { 7, KEY_ESC }, // ESC
          // For credit/start/etc., use USB keyboard or add more buttons.
          { -1, -1 } }; // END OF LIST, DO NOT CHANGE

          Kannst du mir die zwei Stellen erklären:
          { 23, KEY_Z }, // B-Button
          { 23, KEY_Y }, // B-Button

          Warum sind die doppelt ? Grüße und Danke.

          LG Micha

          Reply
          1. Arndt Post author

            Hallo Micha,

            dies hängt damit zusammen, das manche Emulatoren die US-Tastaturbelegung zugrunde legen (hier sind z und y vertauscht). Andere hingegen verwenden die Systemvorgabe, welche bei mir das deutsche Tastaturlayout vorgibt. Um dieses Problem zu lösen, löse ich mit einem Tastendruck auf B (GPIO 23) einfach Y und Z zugleich aus. Alternativ kannst Du natürlich auch eine andere Belegung wählen.

            Viele Grüße

            Arndt

    1. Arndt Post author

      Hallo Jupp,

      bitte entschuldige meine späte Antwort. Ich habe mir die technischen Daten zum Modell A+ angesehen und stimme Dir hinsichtlich des Platzbedarfs absolut zu. Das einzige, was ich als möglichen Schwachpunkt sehe, ist der mit 256 MB recht knapp bemessene Hauptspeicher. Diesbezüglich müsstest Du bei der Community des RetroPie-Projekts mal nachfragen, ob sich damit Nachteile ergeben könnten.

      Viele Grüße

      Arndt

      Reply
  19. Dan

    Hallo Arndt,

    da ich schon lange nach einem Projekt suche, bei dem ich mich mit dem Raspberry PI auseinandersetzen kann und auch noch etwas tolles dabei herauskommt wollte ich mich herzlich für Deine ausführliche Beschreibung und Dokumentation Deines Raspberry PI-Gameboy Projektes bedanken.
    Nach langem suchen nach defekten Gameboys und ein bisschen Zeit zu starten, werde ich mich jetzt hoffentlich im Weihnachtsurlaub dem Projekt widmen können.
    Da ich bereits in einen alten NES PC-Hardware eingepflanzt habe wird das eine toller weiterer
    Nintendo-Mod für meine Sammlung
    Dank Deier Anleitung weiß ich jetzt genau, was auf mich zukommt und welche Teile ich benötigen werde.
    Vielen Dank für die Mühe, die Du Dir dabei gemacht hast und das Du die Zeit investiert hast alles zu dokumentieren und zur Verfügung zu stellen.

    Viele Grüße aus München
    Dan

    Reply
    1. Arndt Post author

      Hallo Dan,

      vielen Dank für Deine netten Zeilen, ich habe mich sehr darüber gefreut.

      Ich freue mich, das Dir meine Dokumentation gefällt und wünsche Dir viel Spaß und Erfolg bei Deinem Umbau.

      Viele Grüße

      Arndt

      Reply
  20. Sascha

    Guten Abend Arndt,

    auch ich möchte mich recht herzlich für deine Anleitung / Erfahrung bedanken. Echt super *Daumen hoch*
    Kaum hab ich es gelesen, waren die benötigten Teile bereits bestellt 🙂
    Bin mal gespannt ob ich das mit dem LCD auf 5V hinbekomme. Habe leider keine Erfahrung auf dem Gebiet der Elektrotechnik und löten ect.
    Aber auf der Platine des LCD habe ich +5V entdeckt :-)))

    Mit freundlichen Grüßen

    Sascha

    Reply
  21. Domi

    Hey, ich bin gerade mal wieder dank dem Raspberry am verzweifeln.
    Ich habe nun endlich nach langem Kampf soweit alles fertig das es jetzt an die Tastenbelegung gehen könnte.
    Also habe ich die zip Datei auf meinen Rechner geladen, dort entpackt und diesen Ordner dann auf

    /home/pi/Adafruit-Retrogame

    gelegt. Okay soweit so gut, alles befolgt soweit ich das verstanden habe, jetzt jedochch kann ich

    sudo ./retrogame

    nicht ausführen es erscheint dann,

    command not found

    Was mache ich denn falsch?
    Ich werde bald wahnsinnig, könntest du mir bitte ganz genau Erklären wie du vorgegangen bist? also so das auch ich (der mit sowas noch nie was am Hut hatte) versteht.
    Das wär echt super damit ich endlich einen Haken an das Projekt machen kann.

    Reply
      1. Arndt Post author

        Hallo & entschuldige bitte meine späte Antwort. Auf der von mir verlinkten Adafruit-Seite findest Du unter der Sektion „Adding Arcade Controls“ (siehe auch https://learn.adafruit.com/retro-gaming-with-raspberry-pi/buttons) etwas weiter unten eine Schritt für Schritt-Anleitung. Wenn Du diese bereits entsprechend umgesetzt hast, überprüfe bitte zunächst, ob die fertig kompilierte Datei vorhanden (ls ~/Adafruit-Retrogame/) und ausführbar ist (chmod +x ~/Adafruit-Retrogame/retrogame). Falls keine Datei vorliegt, überprüfe bitte noch einmal alles, achte hierbei auch auf mögliche „Vertipper“ innerhalb der „retrogame.c“ während der Konfiguration.

        Reply
  22. MicroByter

    I just picked up an English Magazine called Raspberry Pi Geek and saw an article for the SuperPiBoy. I am the creator of the SuperPiBoy and was extremely happy to see the references that helped your project! The build you have looks great and hope that what I documented on my site helped you on your build. I now have a copy of the magazine in my collection, it’s an honor to be in publication!

    Just wanted to say hello and compliment you on the build as well as the article! 🙂

    Reply
    1. Arndt Post author

      Hello MicroByter, thank you for your message, I’m really happy about it.

      Your blog post was my inspiration and reference at once and helped me to realize my own rebuild – at this point many, many thanks again. It was a really great project and I still have a lot of fun to play with it 🙂

      Reply
  23. Tobi

    Hallo arndt
    danke erstmal für die Inspiration. Habe meinen pi gameboy fast fertig. Und ein paar Fragen.
    1. Wie sieht es bei dir mit der Wärmeentwicklung aus? Habe noch einige Löcher im gameboy und die große cartidge Öffnung offen,die eigentlich alle noch gestopft werden sollten. Merke aber, dass der gameboy selbst mit diesen Öffnungen schon nach kurzem Betrieb relativ warm wird.

    2. Nach ca 10 – 15 min Betrieb stellt sich bei mir ein Bildschirmflackern ein. Leichte (composite out typische Bildstörungen) diagonale streifen, die langsam über den Bildschirm wandern. Gibt es die bei dir auch? Mir fällt auf dass sie fast nur im emulationstation menü auftreten kaum aber in spielen.

    Hier ein paar Fotos https://plus.google.com/105703188444995214717/posts/6cEAaRAkomu

    Reply
    1. Arndt Post author

      Hallo Tobi,

      das sieht doch gut aus 🙂 Die Wärmeentwicklung tritt bei mir ebenso auf, ich würde empfehlen, das Gehäuse nicht komplett zu verschließen, um einen Wärmestau zu vermeiden. Die von Dir beschriebenen Bildstörungen treten bei mir ebenso auf, leider habe ich bisher keine Lösung dazu gefunden. Falls Du diesbezüglich etwas herausfindest, freue ich mich über eine Nachricht.

      Reply
  24. Tobi

    Danke für die Antwort.
    Anfangs war es noch schlimmer mit den Bildstörungen. Nachdem ich das composite video kabel dann mit alufolie umwickelt und einem Schrumpfschlauch isoliert hatte ist es deutlich besser geworden. Nun habe ich auch die Rückseite des Bildschirms mit alufolie (selbstverständlich alles isoliert) abgeschirmt und es ist zwar nicht ganz verschwunden aber akzeptabel.
    Bei mir sitzt der spannungswandler von 5 auf 12 Volt direkt unter dem Monitor was sicher auch nicht die beste Entscheidung war 🙂 aber läuft wunderbar das ist die hauptsache.
    Bleibt abzuwarten bis es vernünftige dsi Displays in der Größe für den pi gibt dann wird ein neuer gebaut.

    Reply
  25. Felix

    Hallo,
    vielen, vielen Dank für dein Tutorial und deine Erfahrungen!
    Habe mir die Einzelteile bestellt und sobald sie da sind werde ich mich selbst an diesem netten Projekt beteiligen. 😀
    Gruß Felix

    Reply
  26. Sepp

    Hi,
    Ich hab mich auch mal an den Gameboy rangewagt. Ich nur noch ein Problem mit dem Display da mein Bild ziemlich unscharf ist und ein wenig nach links unten geschoben ist.
    Ich kann zwar den Overscan in der /Boot/config.txt ändern, aber der wird immer in der Emulationstation wieder überschrieben bzw. das Bild ist wieder links unten.
    Gibt es eine allgemeine Config für die Darstellung der Emulationstation?

    Gruss Sepp

    Reply
    1. Arndt Post author

      Hallo,

      ich fürchte, dass ich Dir hierbei leider nicht weiterhelfen kann. Ich würde empfehlen, das Du Dich am besten direkt an die Entwickler von Emulationstation bzw. dessen Community wendest – diese können Dir sicher die entsprechende Konfiguration nennen.

      Viele Grüße

      Arndt

      Reply
  27. Thomas

    Raspberry Pi – Gameboy

    sag mal was hat dich der Umbau insgesamt gekostet? Würdest du das für jemanden machen der nicht die handwerklichen Fähigkeiten hat?

    Schönen Gruß

    Reply
    1. Arndt Post author

      Hallo Thomas,

      von den reinen Materialkosten (Stand 2014) hat mich der Umbau in etwa 225,- Euro gekostet, die Anschaffungskosten für einen gebrauchten Gameboy sowie eine Lötstation waren darin enthalten. Um auf Deine zweite Frage zurückzukommen, dies muss ich verneinen – hierzu fehlt mir schlichtweg die Zeit. Der Zeitaufwand ist nicht zu unterschätzen, das ist ein Projekt über mehrere Wochen(enden). Ich würde empfehlen, sich einfach heranzuwagen und Schritt für Schritt vorzugehen – anders habe ich es auch nicht gemacht, und ich würde mich auch nicht als Heimwerkerkönig oder Elektrotechniker bezeichnen 😉

      Viele Grüße

      Arndt

      Reply
  28. Julian

    Hallo Arndt,
    verspätet vielen Dank für die tolle Projektbeschreibung. Ich habe mich im Winter auch hinter den Lötkolben verkrochen und ein eigenes Projekt verwirklicht:

    möglichst wenige Eingriffe in das äußere Erscheinungsbild des Gameboys
    Möglichst großes Display mit Displayschutz
    integrierter Akku
    zugängliche Schnittstellen

    Schaut es euch mal an, ich freue mich auf Kommentare!

    Reply
    1. Arndt Post author

      Hallo Julian,

      vielen Dank für Deine Rückmeldung 🙂 Ich habe mir Deinen Umbau auch direkt mal angesehen, dieser gefällt mir sehr gut! Wirklich gut umgesetzt, sowohl von technischer als auch funktioneller Seite, insbesondere die Zugangsmöglichkeiten zu den Schnittstellen gefallen mir. Gute Arbeit!

      Viele Grüße

      Arndt

      Reply
  29. Bastler

    Wow du hast mich dazu inspiriert ein Pi Boy zu bauen 🙂

    Leider habe ich wegen der Arbeit nicht so viel Zeit und Ahnung erst recht von dem elektrischem, (bezogen auf das Display) genau 0,00% Kentnisse.

    Ich habe soweit fast alles vorbereitet, aber ich kriege das Display einfach nicht hin. Ohne mir dein Tutorial anzusehen, hatte ich schon sämtliche Teile von dem Raspberry entfernt, da ich einem anderen gefolgt bin. Nun wie schließe ich das Display direkt an das Raspberry? Die Buchse ist ja jetzt weg, auf dem Board sind 3 Lötstellen geblieben.

    Was sollte ich nun tun? Neues Raspberry Board?

    Mit freundlichen Grüßen

    Reply
    1. Arndt Post author

      Hallo & vielen Dank für Deine Rückmeldung 🙂 Bezüglich Deiner Frage zur Display-Anbindung habe ich mir noch nochmal die Unterlagen angesehen, die Schnittstelle auf dem Board ist mit „S4“ beschriftet:

      raspi_comp_video_001.jpg

      Laut Schaltplan sieht die Belegung so aus:

      raspi_comp_video_003.png

      Wenn ich alles richtig verstanden und interpretiert habe, ist „1“ die Masse (GND, schwarz), „2“ und „3“ ergeben zusammen AV (gelb, siehe auch meine Anleitung unter Abschnitt VI.). Zur Verdeutlichung findest Du nachfolgend ein Foto der betreffenden Schnittstelle mit einer ausgelöteten Chinch-Buchse, ich habe hier die Anschlüsse noch einmal gekennzeichnet.

      raspi_comp_video_002.jpg

      Bevor Du nun also endgültig zum Lötkolben greifst, verbinde erst einmal probehalber die beiden äusseren S4-Anschlüsse der Platine (2 und 3) mit dem AV-Kabel des Displays (z.B. gelbes Kabel) und den mittigen S4-Anschluss mit der Masse (GND) des Displays (schwarzes Kabel) und nimm die Raspberry Pi in Betrieb – wenn alles funktioniert, kannst Du die Kabel mittels Lötkolben endgültig fixieren.

      Aber: Alle Angaben ohne Gewähr, obige Angaben sind reine Annahmen von meiner Seite, ich habe diese nicht getestet.

      Ich wünsche Dir gutes Gelingen und noch viel Erfolg bei Deinem Umbau 🙂

      Viele Grüße

      Arndt

      Reply
  30. Bastler

    Danke für die schnelle Antwort Arndt ☺

    Ich werde das so ausprobieren und dann berichten. Ich hoffe du hilfst mir, wenn ich weitere Fragen habe. ☺

    Mit freundlichen Grüßen

    Reply
    1. Bastler

      Also ich habe es versucht, klappt leider nicht. Danke für deine Hilfe, aber ich werde vorerst aufgeben.

      Reply
  31. Jan

    Hallo Arndt,
    erstmal Respekt was du da erschaffen hast. Ich denke, ich spreche für alle wenn ich sage, dass das Ding der absolute Hammer ist 🙂

    Nun meinen gestalte ich ein wenig anders. Ich bastle eher eine mobile „Lösung“, d.h mit einem Akku.

    Bräuchte allerdings dringend Hilfe bei der Software. Ich hoffe du nimmst dir die Zeit, es mir ausführlich zu erklären.

    Wo anders konnte ich mir die Hilfe leider nicht holen, da ich als Anfänger immer abgeschoben wurde, tja…

    Nun ich starte eben RetroPie 3.0 Beta4 und nach dem Laden kommt der Startbildschirm, wo ich aufgefordert werde, die A Taste gedrückt zu halten. Die Tasten vom Gameboy werden nicht erkannt, dafür aber die Tastatur.

    Wie mache ich jetzt also, dass die Gameboy Tasten erkannt werden und ich die nutzen kann?

    Zweite Frage. Gibt es wine Möglichkeit, wenn ich das Gameboy starte, nicht erst das alles geladen wird, sondern direkt eine Liste gezeigt wird mit allen Spielen die man drauf hat? Ich meine eben das Interface ändern, d.h Gameboy Starten, danach werden Ordner aufgezeigt z.B GBC, GBA usw und darin kann man sich die Spiele aussuchen.

    Weil wenn ich das Gameboy starte kommen ja erst die ganzen Zeilen und es sieht so künstlich aus und unnatürlich. Gibt es da evtl was?

    Danke für deine Antwort/en.

    Jan

    Reply
  32. Chris

    Hallo Arndt,

    dank deiner ausführlichen Beschreibung wage ich mich an das Raspberry Gameboy Projekt 🙂
    Eine Frage zu diesem Projekt hätte ich allerdings noch… hast du bewusst keinen Akku verbaut?

    Viele Grüße
    Chris

    Reply
    1. Arndt Post author

      Hallo Chris,

      vielen Dank für Dein Feedback und ich wünsche Dir viel Erfolg bei Deinem eigenen Umbau 🙂 Ich habe mich seinerzeit nach langer Überlegung schon zu Beginn der Planung dazu entschieden, allein schon aus Platzgründen auf eine integrierte Akkulösung zu verzichten. Dank der aktuellen, geringeren Baugrößen ist die Integration eines Akkus allerdings deutlich einfacher zu realisieren als bisher.

      Viele Grüße

      Arndt

      Reply
  33. edgar

    Hallo Arndt ,

    erstmal vielen Dank für diese wirklich super interessante und ausführliche Anleitung. Sie war nach mehreren anderen Texten die erste die mich motiviert hat ernsthafter damit auseinander zu setzen und so ein Projekt ebenfalls anzupacken.
    Ich habe mich heute etwas über das Thema belesen , da ich schon länger mit dem Gedanken spiele einen retro pi zu basteln und bin dann auf den SuperPiBoy gestoßen und darüber wieder auf andere Projekte.
    Ich würde ebenfalls einen Umbau mit Li Ion Akku favorisieren aber die meisten Anleitungen sind doch eher allgemein gehalten und da ich seit meiner Ausbildung zum Mechatroniker keinen Lötkolben mehr in der Hand hatte und kaum Praxis in der Elektronik brauch ich doch ein bisschen mehr theoretische Einarbeitung vorher. Schaltpläne ect. sind auch sehr hilfreich. Dieses Jahr wird das auf Grund der Arbeit leider nichts mehr aber im nächsten Jahr werde ich ein Studium beginnen und mehr zuhause sein und möchte mich meinen Hobbys widmen und fasse dies ins Auge.
    Dann werde ich sicher mit kleineren Fragen auf dich zurück kommen 😉

    Bis dahin werde ich mich etwas mit dem RetroPi Emulator und dem Rasperry auseinandersetzen, der ja auch HDMI fähig ist also einen Ausgang hat.

    Deshalb wundert es mich das dieser bisher noch bei keinem GameboyRetroPi Projekt benutzt wurde. Mir schwebt nämlich die ultimative Retro Gamingkonsole vor an die ich auch mehrere Controller anschließen und mit Freunden am TV zocken kann 🙂
    Diese auch unterwegs mobil nutzen zu können wäre natürlich die Krönung des ganzen. Deshalb würde ich gern beide Konzepte kombinieren.
    Hälst du das prinzipiell vom Platz her für möglich? Man könnte den HDMI Ausgang ja ebenfalls über den Steckkarten Slot nach außen führen und mit einem Dummy verblenden oder?!

    MfG Edgar

    Reply
    1. Arndt Post author

      Hallo Edgar,

      vielen Dank für das nette Feedback 🙂 Ich finde Deine Idee gut, quasi ein Handheld mit TV-Ausgang (HDMI) umzusetzen. Hierzu brauchst Du nur eine zusätzliche Öffnung im Gameboy-Gehäuse; mit ein paar zusätzlichen Öffnungen könntest Du sogar noch einen oder mehrere USB-Ausgänge nach aussen führen, an welche sich externe Controller anschließen lassen (Stromversorgung beachten, wahrscheinlich eigenversorgtes USB-Hub erforderlich). Dies dürfte aufgrund der aktuellen, geringeren Baugrößen der Raspberry Pi durchaus umsetzbar sein. Einzig die Stromversorgung ist ein zu lösender Aspekt, doch wenn Du nicht zwingend an ein Gameboy-Gehäuse gebunden bist, wäre evtl. auch eine andere Gehäuseform oder gar eine „Eigenkreation“ aus dem 3D-Druck denkbar.

      Ich wünsche Dir auf jeden Fall gutes Gelingen und viel Erfolg!

      Viele Grüße

      Arndt

      Reply
      1. edgar

        Hallo Arndt ,
        na du bist ja wirklich fix , danke für die schnelle Antwort 🙂
        Also ich denke ich werde erstmal mit dem nackten rasp anfangen mich mit den software Gegebenheiten und Einstellungen des RetroPi , anschließen und konfigurieren mehrerer Peripheriegeräte usw. auseinandersetzen und dann in einem selbstgebauten Gehäuse , vorzugsweise aus Holz verbauen.
        Wenn das alles läuft und ich weiß wie eine fertige Konfiguration ausssehen könnte werde ich mich an das Gameboy Gehäuse mit Akku trauen. Im Moment fehlt mir dazu einfach die Zeit.
        Ich denke ein USB Ausgang reicht, ist vom Platz her praktikabel und ein externes USB Hub hat sowieso jeder daheim und macht von daher mehr Sinn.

        Ich finde es wirklich beeindruckend was du dir alles für dein Projekt angeeignet hast und wie gut es am Ende wirklich geworden ist. Aber am wichtigsten dein Artikel ist sehr übersichtlich und ausführlich und senkt doch die Hemmschwelle soetwas mal anzupacken extrem 🙂
        Ich verfüge zwar über das technische Grundwissen um alles mögliche zu verstehen aber bin kein versierter Bastler, ohne Praxiserfahrung braucht man eben umso mehr eine gute Vorarbeit und da helfen fleißige und hilfsbereite Blogger wie du wirklich sehr.
        Also ein dickes Danke nochmals an dieser Stelle 😉

        Reply
  34. Marcel

    Hallo Arndt,

    ich muss sagen super was du hier gemacht hast! Du warst mir eine riesen Hilfe meinen eigenen Pi Gameboy zu basteln.
    Ich wollte mal fragen ob du mir mit dem ESC Taster behilflich sein könntest. Leider verzweifel ich daran komplett. 🙁

    Ich habe ihn genau wie du angebunden (GIPO 7) und er wird auch erkannt und funktioniert in der EmulatorStation wunderbar. Wenn ich jedoch in einem spiel bin kann ich machen was ich will, ich kann das spiel einfach nicht über den Taster beenden.

    Wäre cool wenn du mal sagen könntest wie du das Problem gelöst hast.

    Danke & Gruß
    Marcel

    Reply
    1. Arndt Post author

      Hallo Marcel,

      vielen Dank für Dein nettes Feedback. Damit der Taster für die Escape-Sequenz funktioniert, musst Du den Quelltext der retrogame.c (siehe Adafruit-Dokumentation) entsprechend anpassen. Hier findest Du mein Beispiel, GPIO 7 löst bei mir einen Tastendruck auf „Escape“ aus und bricht die jeweilige Emulation ab:

      ioStandard[] = {
      // This pin/key table is used when the PiTFT isn't found
      // (using HDMI or composite instead), as with our original
      // retro gaming guide.
      // Input Output (from /usr/include/linux/input.h)
      { 25, KEY_LEFT }, // Joystick (4 pins)
      { 9, KEY_RIGHT },
      { 10, KEY_UP },
      { 17, KEY_DOWN },
      { 8, KEY_ENTER }, // Start
      { 11, KEY_RIGHTSHIFT }, // Select
      { 23, KEY_Z }, // B-Button
      { 23, KEY_Y }, // B-Button
      { 4, KEY_X }, // A-Button
      { 27, KEY_A }, // Y-Button (SNES)
      { 22, KEY_S }, // X-Button (SNES)
      { 18, KEY_PAGEUP }, // Schultertaste LI (SNES)
      { 24, KEY_PAGEDOWN }, // Schultertaste RE (SNES)
      { 7, KEY_ESC }, // ESC
      // For credit/start/etc., use USB keyboard or add more buttons.
      { -1, -1 } }; // END OF LIST, DO NOT CHANGE

      // A "Vulcan nerve pinch" (holding down a specific button combination
      // for a few seconds) issues an 'esc' keypress to MAME (which brings up
      // an exit menu or quits the current game). The button combo is
      // configured with a bitmask corresponding to elements in the above io[]
      // array. The default value here uses elements 6 and 7 (credit and start
      // in the Cupcade pinout). If you change this, make certain it's a combo
      // that's not likely to occur during actual gameplay (i.e. avoid using
      // joystick directions or hold-for-rapid-fire buttons).
      // Also key auto-repeat times are set here. This is for navigating the
      // game menu using the 'gamera' utility; MAME disregards key repeat
      // events (as it should).
      const unsigned long vulcanMask = (1L << 4) | (1L << 8); const int vulcanKey = KEY_ESC, // Keycode to send vulcanTime = 1500, // Pinch time in milliseconds repTime1 = 500, // Key hold time to begin repeat repTime2 = 100; // Time between key repetitions

      Viele Grüße

      Arndt

      Reply
  35. Pingback: @Raspberry_Pi DIY: Der Raspberry Pi-GameBoy | nerdygamergirls

  36. Jonas

    Hallo Arndt,

    vorab super Aufbau, war mir eine sehr gute Inspiration für mein eigenes Projekt.

    Bei mir klappt bisher alles sehr gut, ich habe nur Probleme mit dem Ansteuern der GPIO Pins. Ich habe diese Anleitung und das gleiche C-Programm verwendet: https://learn.adafruit.com/retro-gaming-with-raspberry-pi/buttons.
    Alles richtig zugewiesen, kompiliert und editiert sowie entsprechend im Programm Tastaturbefehle angepasst. Bei Knopfdruck passiert nur nichts. Langsam verzweifle ich daran und finde keine Lösung.

    Meine überlegungen gehen schon so weit, dass ich einen kleinen USB-Controller anschließen will.

    Was mache ich falsch, bzw was vergesse ich?

    Reply
  37. phlogiston

    hi arndt,

    ich bin heute fertig geworden mit der raspberry gameboy fusion.

    ich fand deine anleitung echt super: sie hat genau die richtige menge an information die man benoetigt um sowohl als einsteiger zurecht zu kommen als auch selber noch ein paar überlegungen zu machen. vielen dank, dass du die anleitung online zur verfügung stellst.

    beste grüsze,

    Reply
  38. Asgar

    Moin,

    ein Problem haste mit dem Piboy und zwar bist immer auf strom angewiesen :/ Ansonsten finde ich die idee sehr gut…Achja das Display kann man nicht mehr erwerben gibt es eine alternative dafür?

    Gruß
    Asgar

    Reply
  39. tarifari

    Sehr informative Dokumentation. Habe meinen soeben auch fertig gestellt. Jetzt fehlt nurnoch das Anbringen der Halterungen für die Schrauben, damit er nicht auseinander fliegt. Danach kommt auch der ganze Baubericht auf meinen Blog. Ziemlich nützlich, wenn man einen „Nachbau“ plant.

    Wo hast du denn die extra buttons her? Finde nur ziemlich große auf conrad und ähnlichen Seiten.

    Reply
  40. Anna

    Hallo Arndt,
    ich versuche gerade ganz alleine einen Gameboy Pi zu bauen. Bisher gab es keine Probleme, aber da gibt’s was, wo ich überhaupt nicht weiter komme. Du wirst es wohl ahnen, ea geht um die Ansteuerung der GPIO Pins. Mit der Tastatur funktioniert die Bedienung einwandfrei. Ich habe die Datei retrogame.c entsprechend bearbeitet, was soll ich nun tun?

    Bitte versuch es mir selber zu erklären und verweise mich nicht auf Links, denn da verstehe ich nichts. Ich wäre dir dafür unendlich dankbar.

    Anna

    Reply
  41. Peter

    Hallo,
    schönes Anleitung, gefällt mir.
    Ist der Umbau mit dem PI2 schwerer ?
    bzw reicht es aus, einfach den PI2 zu nehmen und genau nach der Anleitung zu gehen ?

    Reply
    1. Arndt Post author

      Hallo Peter,

      vielen Dank für Dein Feedback. „Schwerer“ würde ich pauschal jetzt nicht sagen, zumal ich mich mangels Zeit noch nicht im Detail mit den Unterschieden der einzelnen Raspberry Pi Revisionen auseinander setzen konnte – doch prinzipiell sollte dies kein großes Problem darstellen. RetroPi unterstützt Raspberry Pi (A, A+, B, B+, 2, Zero, or 3) und empfehlen „for best performance use a Raspberry Pi 3 Model B“. Interessant klingt für mich insbesondere aufgrund der kompakten Bauform der Pi Zero (65 x 36,2 x 5 mm), was den Einbau in das Gehäuse erleichtert.

      Aber unabhängig davon, für welche Variante Du Dich entscheidest, schau Dir zunächst die Unterschiede zu dem ursprünglichen B-Modell aus diesem Tutorial an, eine erste grobe Anlaufstelle wäre https://de.wikipedia.org/wiki/Raspberry_Pi

      Es ist gut möglich, das sich die GPIO-Belegung etwas geändert hat, doch das lässt sich leicht herausfinden und hat nur wenig Einfluss auf Deinen Umbau. Je nachdem welches Modell Du wählst, ist auch die Audio-Thematik etwas, was es zu lösen gilt (HDMI) – hierzu gibt es aber sicher auch weiterführende Tutorials im Web.

      Viele Grüße und viel Erfolg

      Arndt

      Reply
  42. Peter

    Habe ganz vergessen, mich auch für die Anleitung zu bedanken 🙂
    Also, sagen wir mal so, ich habe mir zwar den PI2 und PI3 mal bestellt, allerdings würde ich die für ein anderes Projekt nutzen.
    Wieso ich fragte, weil ich mal wo gelesen hatte, der PI1 hätte mit einigen PSX Games Probleme.
    Ansonsten würde ich ja einfach den PI1 nehmen und genau nach deiner Anleitung gehen und fertig.

    Reply
  43. machnetz

    Hi Arndt,

    ich habe mir den PiBoy ebenfalls gebaut und habe festgestellt, dass mein ESC-Key nicht funktioniert. Ich kann keine Emulation verlassen. Der Teil in der Config stimmt überein und der Taster signalisiert auch am Pin 26 / GPIO 7. Hättest du eine Idee, warum der keine Funktion hat?

    Gruß aus Hamburg

    Reply
    1. Arndt Post author

      Hallo, hast Du nach Änderung der retrogame.c (ich habe z.B. { 7, KEY_ESC }, // ESC im Abschnitt ioStandard[] = { ergänzt, um ESC an GPIO 7 zu binden) make retrogame ausgeführt, um das C-Programm neu zu kompilieren? Viele halten die retrogame.c irrtümlich für eine Konfigurationsdatei – es handelt sich hier aber um den Source-Code eines C-Programms, welcher nach einer Änderung neu kompiliert und erneut als Programm ausgeführt werden muss. Weitere Infos findest Du hier https://learn.adafruit.com/retro-gaming-with-raspberry-pi/buttons, den aktuellen Source-Code hier: https://github.com/adafruit/Adafruit-Retrogame.

      Viele Grüße

      Arndt

      Reply
      1. machnetz

        Hi Arndt, danke für deine Rückmeldung. Ja, ich habe das Programm compiliert und dann in der /etc/rc.local eingetragen, es war dann auch in der Prozessliste zu finden, soweit alles okay.

        Ich habe es nach der Nichtfunktion der ESC-Taste dann einfach mal weggelassen – und konnte keinen Unterscheid feststellen. Anscheinend läuft retropie auch ohne dieses Programm. Allerdings musste nach der ersten Inbetriebnahme mittels der Emulation-Station-Oberfläche die Tasten belegen. Ich bin irgendwie irritiert.

        Gruß – machnetz

        Reply
  44. Eric

    Hallo, ich habe den RPi Revision 1 und wollte wissen inwiefern das Einfluss auf die Anleitung haben kann.

    Danke im Voraus!

    Reply
    1. Arndt Post author

      Hallo Eric,

      meine Anleitung bezieht sich auf die Revision 1 des Raspberry Pi (B-Modell). Der Raspberry Pi 2 wurde erst Anfang 2015 vorgestellt.

      Gruss

      Arndt

      Reply
  45. Peter

    Also bei mir läuft das Display einfach nicht. Bin noch am Versuchsaufbau. Habe das gleiche Display besorgt wie du.
    Es läuft an 12V und ich gehe mit dem gelben Stecker direkt an den PI. Es läuft nicht an. Muss man da noch etwas umstellen?

    Reply
      1. Peter

        Hallo Arndt,
        danke für den Link, mein Display läuft nun.
        Ich versuche gerade den Aufbau, des PI3, die GPIO sind alle gleich, bis auf die GPIO die beim PI3 hinzugekommen sind. Dafür ist der analog weggefallen.
        Da wüsste ich jetzt nicht mehr, wo ich das Display anschließen sollte.
        Hat da vielleicht einer einen Tipp ?
        Gruß Peter

        Reply
  46. Peter

    Hallo in die Runde,

    für alle die auf den PI3 umrüsten wollen, habe ich eine Lösung.
    Die GPIO sind gleich, also keine Sorge !
    die zusätzlichen einfach ignorieren.
    Das oben genannte Display kann verwendet werden.
    Ihr braucht dazu einen 4 Pol. Klinkenstecker, der ist an dem PI3 noch montiert.
    Bite auf den 4 Pol achten, die sind recht selten, aber zu bekommen. Oft gibt es nur den 3 Pol.
    Danach klappt es auch mit dem Display. Der Analog Anschluss gibt es ja am PI Zero PI2 und PI3 nicht.
    Auf gutes gelingen 🙂

    Reply
  47. Nostalg33k

    Super ausführlicher Blog Beitrag mit einem super erzieltem Ergebnis ! So ein teil ist der Traum und steht auch schon lange auf meiner TO-DO Liste.

    Gibt es da mittlerweile eigentlich bereits vorgefertigte Cases dieser Art wo man nicht mehr viel dran rum werkeln muss ? Hatte ich vor einiger Zeit mal von gelesen.

    Reply
  48. Flo

    Wie lange hält denn der 2200mAh Akku in etwa? Oder muss man den umgebauten game Boy die ganze Zeit am Netz haben?

    Reply
    1. Flo

      Also, die Frage etwas anders formuliert: Hat jemand versucht den Pi Boy mal mobil zu machen und einen Akku eingebaut? Finde nur einen 3000mAh Akku und frage mich wie lange der wohl hält wenn ich mit einem Schaltregler auf 5V gehe und den Pi damit betreibe. Wie ihr seht kenne ich mich mit dme RasPi nicht wirklich aus.

      Reply
  49. Wolfgang

    Hey erstmal super Project und geiles ergebniss ich bin derzeit auch dabei mir einen zu bauen nur habe ich leider sehr wenig erfahrung auf dem linux raspberry gebiet. So läuft wig alles prima nur ich bekomme die tasten des dmg pcb von kitsch bent nicht zu laufen hat da evt einer eine detailierte anleitung wie mann sie am besten programmiert.
    deine auszüge habe ich bereits kopiert und versucht anzuwenden nur leider ohne funktion der knöpfe würde mich sehr über eine antwort freuen.

    Lg Wolfgang

    Reply
  50. Rolf

    Jemand mal getestet ob sich das Projekt auch mit einem Raspi A+ umsetzen lässt? Zwar nur 256Mb Ram , aber deutlich kleiner und nur die halbe Leistungsaufnahme im Vergleich zum B+

    Reply
  51. Jan

    Unglaublich was alles mit dem Rasperry Pi möglich ist. Ihr Projekt ist wirklich beeindruckend. Wenn man bedenkt, dass der Preis für diese Minicomputer super günstig ist.

    Reply
  52. Christian

    Hi,

    Super Projekt einfach nur genial.
    Ich würde das Projekt gerne nachbauen. Und hätte da mal schon die erste Frage.
    Und zwar wegen dem Display. Könnte ich auch so eines nehmen? Siehe Link. Das Display zu deinem Link gibt es derzeit nicht mehr Alternative siehe Link3.

    https://www.amazon.de/dp/B00OFLKPG4/ref=pd_lpo_sbs_dp_ss_1?pf_rd_p=556245207&pf_rd_s=lpo-top-stripe&pf_rd_t=201&pf_rd_i=B00SGJIV12&pf_rd_m=A3JWKAKR8XB7XF&pf_rd_r=A1QYTWRRFCY88WK32T87

    https://www.amazon.de/dp/B00UV78E9Q/ref=pd_lpo_sbs_dp_ss_2?pf_rd_p=556245207&pf_rd_s=lpo-top-stripe&pf_rd_t=201&pf_rd_i=B00SGJIV12&pf_rd_m=A3JWKAKR8XB7XF&pf_rd_r=A1QYTWRRFCY88WK32T87

    https://www.amazon.de/KFZ-Rückfahrbildschirm-Rückfahrkamera-KFZ-Rückfahrkameras-Überwachungskamera-Satellitenreceiver/dp/B0056WJP1M/ref=pd_cp_263_4?ie=UTF8&psc=1&refRID=1H4YH2APHVM8GEC1S0SS

    Wobei mir die ersten zwei besser gefallen würden.

    Reply
    1. Arndt Post author

      Hallo Christian,

      ich freue mich, das Dir mein Projekt gefällt. Da mein Umbau schon eine Weile her ist, kann ich Dir nur erschwert aktuelle Display-Alternativen empfehlen. Hier musst Du Dir die Details genauer ansehen und ggf. mit dem Anbieter selbst Kontakt aufnehmen. Das Thema Stromversorgung muss hierbei insbesondere bedacht werden. Ist das geklärt, kannst Du prinzipiell jedes Display nehmen, welches Du via Composite oder auch HDMI anschließen kannst. Bedenke insbesondere, das Du die GIPO’s für die Button-Belegung benötigst – wenn Du eines der „Raspberry Pi-Displays“ verwendest, stehen Dir bestimmte GPIO’s nicht mehr zur Verfügung.

      Viele Grüße

      Arndt

      Reply
  53. Mike

    Hallo,
    du hast das PCB für die Controllereinheit verwendet und unter Adafruit das C-Programm für die GPIOs. Warum verwenden andere Tutorials diese sogenannten Teensy-Module? Müssen die GPIOs dann nicht konfiguriert werden?

    Reply
  54. Pingback: RPI Supergameboy – Baubericht – Tarifari.de

  55. Bizeps

    Hallo, Arndt. Kurze Interessens frage. Was ist den mittlerweile aus dem Gamwboy geworden? Hast du ihn verkauft?

    Reply
    1. Arndt Post author

      Hallo Alex,

      nein, den gibt es immer noch, sogar noch im Originalzustand von 2014 – und er läuft immer noch tadellos 🙂 Dein Umbau gefällt mir ebenfalls sehr gut, Du hast den Cartridge-Bereich sowie die Anbindung der Schnittstellen gut gelöst, sieht wirklich gut aus 🙂

      Viele Grüße

      Arndt

      Reply

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert