Building a Gaming Console on a Raspberry Pi

To say this professional year has trended more on the stressful end would be a bit of understatement. The pivot to remote learning in the spring was quickly followed by summer/fall planning starting in May. My summer course, slated to take place for a third time in Arezzo, Italy, was moved online. Between Spring break and the beginning of July I had effectively built three new online courses of my own, while also assisting many other faculty across campus.

I hadn’t fully realized the stress I was holding onto until after my summer class was finished. As I submitted my grades, I literally felt like a physical weight had been lifted off of me. The marathon-long sprint was finished. I could breath. It was time for a vacation.

We decided to AirBnb a cabin in Broken Bow, Oklahoma near Beavers Bend National Park, which I visited a couple years ago. The town has become a no-longer-well-kept-secret retreat for those in the OKC and DFW metro areas. It was a wonderful opportunity to hike, fish, sit out by the fire, and–more broadly–disconnect from device light and reconnect with nature.

The cabin

I should mention that cabins in Broken Bow aren’t exactly what you would expect if you are thinking that its just logs and wood-burning stoves. There are several swanky neighborhood developments there that have some pretty nice setups. A standard multi-family unit has a hot tub, a playground, and a game room. Some of them even look big enough for company size retreats.

In the AirBnb ad it was mentioned that there was an arcade cabinet inside the cabin which had access to 12,000 games, which piqued my interest. I felt a little underwhelmed when I realized it was a retail version of Space Invaders. You know one of those newer cabinets you see at a big box store or department store? But once I plugged it in, I was met with the surprise of the Raspberry Pi logo. I realized that the original computer that stored the game had been swapped out with a Raspberry Pi micro computer, which can be bought stock for $35.

What popped up was distinctly not Space Invaders, but rather a menu which had access to arcade games ranging from Atari to Nintendo 64. What’s more, I quickly realize not only had the computer been replaced, but so had the controls. No longer was it a cheap joystick and set of buttons, but now had two joysticks, six buttons each, as well as 1 and 2 player buttons and a “coin” button. Whoever had done this hack really knew what they were doing!

Playing Ms. Pac-Man on... Space Invaders

Now I am the quickest to admit that I’m not much of a gamer. I played video games growing up, but have always said that I became quickly more interested in both the guitar and the world wide web (which for me was access to a broader music community) early in high school and never touch a game controller after that. In college, I never owned a console and have only recently bought a Switch for my daughters.

But I’ve always had an affinity for the older arcade games. This is partially because they were a way I bonded with my dad growing up. Some of my earliest memories of computer games were versions of Asteroids, Dig Dug, Centipede, and pinball that my dad installed. As a kid, the majority of the games I got into were sports based. Specifically, Techmo Bowl on NES, Ken Griffey Jr. Presents Major League Baseball on SNES (side note: I loved this recent piece from The Athletic about the names used in this game), NFL Blitz on Playstation, and Tony Hawk Pro Skater. As I wrote last October, I stumbled across a sports video games exhibit in Queens, and thoroughly enjoyed playing out a full game of NFL Blitz.

I’ve also had a ton of fun tinkering around with the Raspberry Pi before. I got the opportunity to first explore it as a graduate school class project in 2014, but hadn’t had a good excuse in awhile to play with one for quite some time. I loved the devices then and have been surprised by how much they’ve improved. Depending on the model you purchase, you’ve got a sizable amount of onboard ram, 4 USB inputs, HDMI out, and onboard wifi. There is no hard drive–just a micro SD card slot.

While the Pi I played with in 2015 was a 2, I had been gifted a 3 way back at the Domains 17 conference by the great Tim Clarke and just hadn’t yet found a good project to put it to use. At the conference, we had a Maker Faire of sorts and Tim’s presentation showed off some of these neat tools for DIY goodness like the LibraryBox/PirateBox. I put together a PirateBox shortly thereafter with the wireless router he had given me, but the Pi just sat on my shelf just waiting for an opportunity like today. 🙂

As I came home from vacation I started researching what it would take to make my own Raspberry Pi arcade machine. I settled on downloading an operating system called RetroPie. RetroPie is an out-of-the-box solution that includes a GUI interface, and a handful of the popular console simulators for companies such as Atari, Sega, Nintendo, and Sony.

RetroPie allows you to turn your Raspberry Pi, ODroid C1/C2, or PC into a retro-gaming machine. It builds upon Raspbian, EmulationStation, RetroArch and many other projects to enable you to play your favourite Arcade, home-console, and classic PC games with the minimum set-up. Source

There are a bunch of good tutorials for how to install RetroPie, but it’s fairly straightforward. Just download the version of RetroPie that matches your Raspberry Pi and image it to the micro SD card using an application such as Etcher. (For a more complete tutorial, see this article from howchoo)

There are also a lot of options for cabinets. You can find tutorials for exactly how to mod a Arcade1Up cabinet, like the one that was in my cabin, I am particularly fond of the idea of a bar-top cabinet and looked at a couple options on Etsy, but ultimately settled on just simply hooking it up to the television in the girl’s play room via HDMI for simplicity.

Once I plugged it into the TV and powered it up, I used a USB keyboard to connect it to my home wifi. To add games, you need to have ROMs of said games. You can either install those games via a USB drive or through a FTP client. Although I’m sure there’s a USB drive somewhere around my house, I feel as though I have above average FTP skillz and connected to my Pi on FileZilla.

As for where to find ROMs, there are a plenty of websites out there and you are welcome to Google your way to them. The website howchoo has an excellent list of resources specifically for public domain games available for Arcade/MAME, NES, SNES, Gameboy, Sega Genesis, and Sega Dreamcast. Just download the ROM (usually a ZIP file), and install it in the appropriate emulator folder on the Raspberry Pi. Personally, I’ve found that MAME ROMs work best in the “fba” emulator.

I ordered a pair of cheap USB controllers on Amazon for $13.99. These look a lot like my personal favorite controller: the SNES.

If you are planning on playing games more suited for PS2 or N64 style controllers that take advantage of onboard joysticks this 8BitDo controller is pricier but seems to be highly recommended. For a more arcade style setup, the Mayflash F300 looks like the way to go.

Last, I went ahead and upgraded my Raspberry Pi case. You can find cases for the micro computer as cheap as a $4, but they won’t have a fan. Playing video games on your Raspberry Pi will push the CPU to its limit, so it’s worth investing in a case that has both a fan and heat sinks. There are a bunch of these but here’s the one I found on Amazon for $14.99.

And that’s about it. By using a television, HDMI cable, and Raspberry Pi I already owned, my all-in total for the Retro Pie machine was $28.98. One thing about these projects is that you can be as cheap or as expensive as you wish. I’ve seen some RetroPie projects clock in around a grand if you wish to go full high end. For a quick look at some really interesting versions, I recommend checking out r/RetroPie.

I’ve had a ton of fun learning about the video game mod world and might dip into a project that’s more of a full build out. On the opposite end, I also like the idea of building a GameBoy using a Raspberry Pi Zero and the RetroFlag GPi Case. Either way, it’s been fun to relive some of my favorite childhood games with my own kids.