The Audio


The RCA cable that I purchased also has left and right audio out, so I’ll be making use of these for the audio. The original Gameboy DMG has a single speaker, allowing only for mono audio. As the output from the Pi has two channels (stereo), I will attempt to use two original Gameboy speakers.

The volume of the outputs is fine for headphones, but doesn’t pack enough punch to run the speakers, so I followed suit of many other Gameboy Pi makers and obtained a cheap amplifier:

I took both the left and right audio channel cables (the only two cables that are left, as we’ve already used the video cable), 5v and ground from the Pi GPIO pins and connected them as follows (image stolen from the eBay listing.


As the diagram shows, you then run two speakers off the + and – outputs of the amplifier. Here’s a picture of my amp wired up and ready to go.


Here’s a shot of the amp and speakers working.


Here’s a video demonstration.


Pi 3


Slimming down the board

The first task is to remove the unneeded components from the board, namely those that will cause the board to be too thick and therefore take up too much space.

DON’T BE AN IDIOT LIKE ME, make sure you that have set up and at least configured the on-board WiFi so you can get in via SSH or by some other means, as we’re going to remove the USB ports and Ethernet. Luckily I had a spare Pi 2, that wasn’t mutilated, so I stuck the micro SD card in that one and set up the WiFi.

I am least proud of this part of the project. My soldering skills aren’t bad, but not good enough to simply desolder the components, so I fudged it a bit and used some wire cutters.


Now just to clarify, I had no intention of saving these components for future use hence why I destroyed them. As long as you’re delicate and make care not to knock any other components off the board you should be okay to use brute force. Once complete I ended up with a board that looks like this:


I plan to come back and make a cleaner job of the left over solder points, I’ll be fitting a single USB port at the same time.

The display/composite out

Unlike the Pi Zero, the Pi 3 already has an RCA port that carries composite video & stereo audio. I purchased one of these cables from ModMyPi

I spliced the cable and attached the video out (red) cable to the video in of the LCD PCB. Once the cable is plugged in this is all I had to do!


The benefit of using the Pi 3 over the Pi Zero at this point is that this port of the Pi 3 also carries audio, where as the Pi Zero is much more complicated to source stereo audio, you’ll more than likely need to buy a separate USB sound card and a USB OTG cable.

Heres a pic of my new cable working!


I’m just waiting for more parts to show up, so sorry for the slow updates.

Running total update

+ £1.99 RCA cable

Total: £61.23

Slight changes


I know that RetroPie is capable of running PS1/N64 emulation, but I assumed that the Pi Zero wouldn’t have the guts to pull it off. After coming across a few of my favourite classics, I decided that the Gameboy Pi would be much more valuable to me if it could play these games.

I will now try and use the Pi 3 for this project, instead of the Pi Zero. The only challenge with changing is the size of the board is about 3 times larger, but I think I’ve saved enough space with the lucky LCD PCB to cater for the board. I will need to remove the plugs that are surplus to requirements, such as the USB and Ethernet ports which could prove difficult. I also need to think about the L/R buttons that I’ll need… but this isn’t of the highest importance so I’ll probably leave this to last.

You can of course continue to follow my guides/information and intend to use the Pi Zero, as from here on there shouldn’t be much difference anyway. I’ll do a “The display part 2” post to cater for the Pi 3.

Running total before changes: £30.45

  • – £4 for Pi Zero
  • + £30.80 for Pi 3
  • + 1.99 for RCA cable

New running total: £59.24


The controls


As mentioned in the first post, Getting Started, I decided to use a PCB that is made specially for the task at hand:


The aim of this part of the project is to use a GPIO to USB mapping software, the best of which I can find at the moment is Adafruit’s Retrogame. The idea is to wire up each port of the PCB to a GPIO pin on the Raspberry PI, Retrogame then will map this GPIO port to a pretend USB keyboard. The USB keyboard will be detected and used by RetroPie.

So first, wire up all of the connectors (sorry for potato cam).


I decided to use cables with a Duport connectors once more, so that I could easily plug and remove the cables when I’m not actively using them/testing. Colour coding the cables will probably be a big time saver as well, saves having to try and follow each cable back when mapping a control to a GPIO (left to GPIO20 for example).

The pin outs vary slightly depending on the model of of Pi that you have, I very much doubt you’d be reading this but be trying to use an old model Pi so I’ll upload a picture of the newer layout here:


If, by chance, you are using an older Pi simply search on Google for the pin out diagram.


Once you’re all plugged in to the free GPIO ports, follow the instructions linked to from Adafruit’s Retrogame‘s github page. I made a big mistake here and edited the wrong part of the config file, make sure if you’re not using an Adafruit PiTFT that you edit the correct section! I spent hours pulling hair out because I didn’t read it correctly.

Once set up correctly you should be able to hold a metal contact on each button to get a response in RetroPie.


Feel free to comment below if you have any questions or have any problems with this, I’ll do my best to help.

The display


This bit of the project I’ve actually already completed, so I’m writing this retrospectively so excuse the misuse of tense. After a lot of research, and purchasing a screen that wouldn’t be a good fit, I discovered that for the best OpenGL acceleration and framerates from the Pi Zero you should hook up a composite display. Apparently the 2.8″ PITFT screens are okay for gaming, but the bigger ones can look bad.

After some more research I saw that a lot of people were buying cheap car reversing cameras, because they’re extremely cheap, readily available and easy to modify, so I followed suit. The cameras state that they need a 12v input, but as the Pi only delivers 5v people are modifying the PCB to accept 5v and it seems to work!


Here’s the link to what I bought:Â }}

The first thing I did when the screen arrived was rip open the box and take the casing of the display off. I’ve read that it’s a bit of a lottery with these screens as there is a huge variation in the PCB’s that it is supplied with in terms of size, quality and modability (if this isn’t a word then it should be). Looks like I won the lottery here:


(this image is actually after 5v mod). Not only is it a tiny PCB, but it actually ran without any modification at 5v! I connected all of the cables up, red to 12v, black to ground and yellow to the composite out on n the Pi Zero.


(Bottom left in the picture above is all you need)

And here it is working!


The screen worked but it was extremely wavey/fuzzy, which indicated either some sort of interference or low voltage. I ran a multi meter over the voltage regulator chip on the board and noticed that the 5v output pin was only running at 2.5v. After running 5v directly to this pin, all of the fuzziness went away. Hurrah! Success.


To clarify, I removed the red cable which is meant to bring in 12v to the board and I’ve attached my 5v supply (from the Pi Zero’s 5v) header. I decided to use Dupont cables so that it’s easier to attach and detach the screen bits when it comes to assembly. Ideally the 5v wire to the board would be red, but I used yellow just to annoy you (and because I had a spare end from the composite out on the Pi Zero :)).


I’ll use hot glue to secure all of the connections.

Getting started


I had a few Raspberry Pi’s laying around the house, surplus to requirements. After a few seconds of brainstorming (or mind mapping of those offended in the UK) and reflecting on projects I had seen before I had decided that a Gameboy is what I would make. I’ll be using RetroPie for this project as it’s perfectly set up and configured for the task at hand.

To kick off the project I acquired the following items (prices include delivery):

Initial investment: £30.45.

I’ll post separate blog entries for each challenge that I face/each section of the project.