Frustrated with the lack of Virtual Console options in Nintendo’s new online service, and emboldened by a bit of electronics know-how thanks to tinkering with keyboards, I finally decided to make my own RetroPie machine. I was surprised at how easy it was…and just how many options are available.
The classic solution is to simply grab a Raspberry Pi unit and a case, install it, load up a copy of RetroPie on an SD card, plug in a controller, and get going. And that’s still a pretty great (and surprisingly cheap) solution, if all you really want to do is play some old games on your TV without having to hunt for classic consoles and blow on some cartridge contacts. But as it turns out, there are lot more things you can do with both the hardware and the software.
Take the world of portable gaming, for example. Independently-designed gadgets like the PiGRRL (see what they did there?) cram a tiny Raspberry Pi computer, a screen, a battery, and a custom printed circuit board into a 3D-printed case to make a completely custom Game Boy clone.
And while it lacks some of the polish of Nintendo’s handhelds, it’s far more capable: the tiny, low-power Pi Zero computer can handle most games up to the Super NES level (early 1990s) and the more conventional Raspberry Pi models can do full PlayStation emulation, all while holding hundreds or thousands of game ROMs on a MicroSD card. There are dozens of suppliers that will sell you a custom kit to make one yourself: just pair a Raspberry Pi with the kit, solder according to the included instructions, and load up the ROMs.
But even that felt a little too easy for me. I wanted the best of both worlds: Nintendo’s classic hardware and ergonomics, and the option of loading up my old favorites from the Game Boy, Game Boy Advance, SNES, and Genesis.
Despite the fact that it’s now almost twenty years old, my favorite portable game machine will always be the original design of the Game Boy Advance: it has an ideal combination of size, layout, and library. I’ve often thought that if Nintendo had added the two extra face buttons and a backlit screen that later models of the GBA and DS came with, it would be perfect.
Now that’s possible, with some modding and a hardware transplant. The FreeplayTech design swaps out the internals of the original GBA design with a custom PCB, a new backlit screen, two extra buttons for playing Super NES games, a rechargeable battery, and a Raspberry Pi to run it all. It’s essentially the same thing as the PiGRRL designs above, plus some custom software to crop the screen so it fits in the viewing window of a GameBoy Advance shell.
The kit comes in two varieties: the Freeplay Zero, which uses an ultra-low-power Pi Zero, or Pi Zero W, and the Freeplay CM3, which includes the compact Raspberry Pi Compute Module 3 (basically the Raspberry Pi 3 crammed into a DDR3 circuit board, minus wireless and USB options). The latter is more powerful and doesn’t require any soldering, so that’s the one I chose. Both options include recharging via MicroUSB, a MicroSD card slot to hold the RetroPie software image, a standard USB-A port for transferring data, and even an HDMI port for playing your games on a TV.
While you can gut your old Game Boy Advance to complete the project, it’s easier to simply buy one of the many third-party GBA plastic shells on Amazon or eBay. (A nice bonus: you can get colors for the case and buttons that Nintendo never made!) After picking up a shell and a nice glass screen cover to replace the cheap plastic cover on the original, I ordered up the Freeplay CM3 kit with an add-on battery.
When all my parts came in, I had to spend several hours modifying the plastic shell so it could hold the more powerful guts of the Raspberry Pi CM3 and the customized PCB, not to mention drill new holes for the X and Y buttons so cruelly left off the original Game Boy Advance design.
This wasn’t difficult so much as tedious: I had to carefully use my Dremel tool to sand down the internal plastic, snip off some of the larger pieces with wire cutters, and precisely drill the new button holes.
Then getting the new PCB and screen in place was tricky, and required several replacement seatings. But FreeplayTech has been making these kits and helping their customers assemble them for a while now, and the online build instructions and video guide were exhaustive.
Having done a bit of research, I wasn’t entirely confident in my ability to modify the plastic Game Boy shell right on the first try. And while I did manage to get it all assembled and working, and even running games without issue, the trial and error approach to the process left the assembly somewhat haphazard, especially on top where all the new ports were sitting.
After I got everything working, I went back and re-did the Dremel work on the secondary shell I bought (they’re only about fifteen bucks) to make a more informed, precise go of it, now that I know where everything sits.
I added one last piece to the project: a 3D-printed top to the original cartridge slot. It’s short enough not to interfere with the CM3’s processor cooler, with holes cut out of the top to allow heat to escape.
Add on the sticker from the shell kit and the cosmetic sticker from Freeplay, and the project is complete.
Between the Freeplay kit, the plastic cases, the battery, and the glass screen protector, I’ve spent over $200 on this project—not exactly practical when I could have just gone out and bought an old Game Boy for a fraction of the price, or even bought a new 3DS instead. But if you enjoy tinkering with electronics and old video games like I do, it’s a rewarding experience, and there are much cheaper options if you’re fine with a more basic build.
In fact, you can get low-power Android phones or tiny computers that will run all of these games just fine through emulation. While buying retro games via digital console stores or Steam is a much more streamlined approach, your choices for doing it your own way are nearly limitless, and often a lot of fun in their own right. And, besides, how else are you going to get a Game Boy Advance that can play SNES games?