In a previous post on Game Gear recap I briefly mentioned that I was working on putting a Raspberry pi in a broken Game Gear. In this post, I will describe this project with more details.
Similar to when building a Gameboy Zero, the process of building a Game Gear Zero essentially involves creating a handheld emulation device through the use of a raspberry pi as a main unit. In the image below, the architecture of such a project is visualized.
A typical “zero” project includes a Raspberry pi zero as a main unit (hence, the name zero), but other miniature computers may also be used. The choice of main unit depends on what games you are planning to play on your device. In the Game Gear Zero build I am mainly focusing on emulating 8-bit games, which the Raspberry pi zero has more than enough processing power to support.
Choosing a controller
The main unit and type of games (= how many buttons you need) also affects the choice of controller solution and configuration. For the 8-bit era games I need a d-pad that supports four directions, two buttons (e.g. A and B on the NES) and two additional buttons (e.g. START and SELECT on the NES, and the select button also function as a hotkey in Retropie, which enables the following button combinations:
- Hotkey+Start = exit emulator
- Hotkey+Right shoulder = save state
- Hotkey+Left shoulder = load saved state
- Hotkey+Left = decrease current saved state slot number
- Hotkey+Right = increase current saved state slot number
- Hotkey+X = quick menu (with access to most of these other items)
- Hotkey+B = reset game
My project was actually not started by me. I bought a broken Game Gear on Swedish eBay where the seller had cut out the controller sections of the mainboard, and soldered wires to the points shown in the below images. Together with a common ground, these points enable the use of the original Game Gear d-pad + buttons (1+2+Start) in the project. I also added a custom button to the top of the case to use as select / hotbutton.
The seller also planned on using a USB type joystick board. These can be found for about $10 – $15 at various places on the Internet. Supposedly these boards have no lag, and they are quite easy to use since they only require a connection to the Raspberry pi’s usb port. The downside of using this board is that it takes up more space than, for example using a microcontroller board, or the GPIO pins of the pi. For the Game Gear Zero, this is not an issue though, since there is plenty of space inside the case.
The controller board is connected to, and draws power from the Raspberry pi’s USB-port. I initially used a USB to mini-USB converter, but later soldered a mini-USB connector directly.
Game Gear Zero video
For video, I did not do a whole lot of reading. I just picked a suitable 3.5 inch screen on Banggood: MPI3508. The screen connects to the Raspberry pi via the GPIO pins and HDMI. The screen comes with a 3.5 mm audio jack which I am going to use for supplying audio to the Game Gear’s original speaker, and a headphone jack (see, audio below).
Anyway, the screen did not require any configuration since it connects to the pi via hdmi. In the image below is a first test of the screen where I am using my Raspberry pi 3B. The 3B actually fits inside the case, but in the final build I am replacing the 3B with the zero w to save space and battery time.
I am using 3M double sided tape to fit the screen to the position where the original screen on the Game Gear used to reside. It was a bit tricky to get it straight, but it worked out fine in the end. One of the goal of this build was to use as little hot glue (“snot”) as possible, and rely on other solutions that make the build more modular.
One challenge here was to find a proper hdmi cable between the screen and the raspberry pi zero, while the zero is mounted on the GPIO pins. There are some tiny flat cables around on the internet that lets you choose hdmi connector, and length. As seen in the second image below, my 10 cm cable does not take up a lot of space, and it suits nicely between the screen and the pi.
The audio part of these builds is my least favorite part of the build. It is rather messy since the Raspberry pi zero w does not have a great audio output to begin with. I suspect that the 3.5 mm jack from the screen is of higher quality, so I use a 3.5 mm connector to output left + right + ground.
My solution for the audio consists of the following parts:
- 3.5 mm audio jack from the screen.
- The Game Gear’s original audio card, stripped of components, with a potentiometer (volume control) and headphone jack.
- An amplifier card.
- The Game Gear’s original speaker.
From the audio jack I draw stereo sound to the potentiometer -> amplifier -> headphone jack -> speaker. This took a lot of trial and error, and I am still not 100% satisfied with the build. For future builds, I will probably use a tiny USB sound card instead. Anyway, everything works, but there is a slight whining noise in the background, which I think is caused by the power source. Apart from this, the audio is loud and clear. I have stereo sound in the headphone jack, and one channel sound in the speaker.
Game Gear Zero Power
I had to do some research for a proper power solution to power the pi, screen and amplifier. These units all require 5V. Regular rechargeable LiPo batteries often supply 3.7V. Hence, I was in need of several devices:
- a voltage booster to convert the 3.7V to 5V.
- a battery charger.
- a power supply.
Luckily, Adafruit has released a tiny board that performs all these tasks: the PowerBoost 1000. This board, in combination with a 3.7V 2000 mah battery became my solution of choice.
I salvaged an on-off switch from a Nintendo Gameboy to use with the PowerBoost board. When connecting two of the pins of this switch to the EN and GND pins of the PowerBoost, it tells the board to shutdown the power to the pi when these pins are connected together by sliding the switch to the side. This is another part of the build that I am not 100% proud, but it is partially due to the case was damaged from the beginning. As seen in the image below I used a combination of glue and 3D-printed parts to hold the pieces in place. Not pretty, but it works!
Putting it all together
Finally, it is time to put the whole solution together. As aforementioned, there is plenty of space inside the Game Gear case compared to a Gameboy for example. It is also possible to remove large parts of the inner shell of the back side of the case, to make even more room. Still, some cable management is always a good idea. On the outside the unit looks pretty much like a worn Game Gear, with some additional stuff on top, as seen below.
To conclude, here are some plus and minuses on the build:
+ Utilizes original parts (case, buttons, audio board) from a broken Game Gear.
+ The USB controller works flawlessly, and is easy to expand with more buttons.
+ The power solution is pretty much standard in these builds.
+ The screen does not require a bunch of messy cables.
– Some whining noise in the audio output (due to a ground loop from the power supply).
– Parts of the case aestethic could have been made prettier with a little more effort.
– I did not install an USB-hub, which limits expandability.
– I did not add more buttons since my goal with this build was to play games from the 8-bit era.
I probably overpaid a little bit for the items below, but stocks and prices during the pandemic have been a bit up and down:
- Raspberry pi zero w: $17 ($6 if you don’t need the “w” (wifi))
- Screen: $25
- USB controller board: $15
- Audio amplifier: $2
- Battery: $17
- Powerboost: $25
= slightly over $100 for the main components.
There are also a lot of trial and error which consumes cables, buttons, connectors etc, but as the number of these projects grow, I tend to have a stock of components laying around.