Upgrade Your Old Gameboy/Gameboy Color With Raspberry Pi
Posted: Fri Oct 10, 2014 6:40 pm
Picture of Gameboy LCD+Raspi Upgrade
Hi all! After being a long-time browser of this site I decided it was time to publish my first Instructable. I'm very much into all things retro-gaming. I've built a full-size virtual pinball running Hyperspin which may well be my next Instructable. I'm also in the process of upgrading an early 90's Final Lap driving cabinet to be a multi-game machine.
Here I will show how I gutted an old non-working Nintendo Gameboy original, and fitted these parts instead:
- 3.5" 320x240 LCD with driver PCB
- Raspberry Pi (Model A)
- custom built button PCB
- 1x 18650 Li-Ion cell
- USB Li-Ion charger board
- 3.7V to 5V DC-DC converter board
- stereo audio amp board
- stereo speakers
I've seen other Instructables doing a similar thing, but I set myself a few challenges and desired features of my build which include:
- Fitting the Pi with little or (ideally) no modification
- Have the Pi's USB port and HDMI port remain accessible
- Have the SD card hidden away but also easily accessible
- Retain analogue control of volume
- Retain normal functions of all front buttons, also make it easy to add buttons if the need arises
- Upgrade sound with internal stereo speakers
- Have major components unpluggable (ie. not have all things hard-wired to each other)
- Retain some kind of visible power LED and charge status LEDs
- Have the Gameboy case fit back together cleanly but very securely
- Achieve a good run-time per charge, around 2hrs+
In the end I think I achieved all these goals. Initially I wanted to fit 2x Li-Ion cells but there just wasn't enough room for that 2nd cell.
I had enough experience with Raspian/Raspbmc to know how to get the Pi up and running with RetroPie. I was new to EmulationStation though. I also had not previously dealt with the GPIO pins on a Pi. But I soon discovered how useful these pins are and that it would be possible to control not only the games but also navigate EmulationStation menus as well. Each button grounds a certain GPIO pin, then software makes that action produce a keystroke, as defined in a config file.
Anyway, on with the mod!