My Childhood in a Cigar Box

I grew up in the 1980s. That meant we drank far too much Kool-Aid, and on Saturday mornings, we got up early to watch cartoons. It also was the heyday of arcades, but I lived in the ghetto of Detroit and couldn't afford quarters to play games. Plus, there were none anywhere near the neighborhood where I lived. For me, the first real video-game experience was the Atari 2600. I played a lot of Frogger, Pac-Man and Yars' Revenge in middle school. The first system really to impact me, however, was the original Nintendo Entertainment System (NES).

My family moved to northern Michigan when I was in eighth grade, and I worked all summer to save for a used NES from one of the kids who got a brand-new Super Nintendo from his parents. I was a poor nerdy kid who moved in the middle of eighth grade, so my group of friends was fairly small. I had exactly one friend. There happens to be two controllers with a Nintendo, so it worked out perfectly for Pete and me. While the arcade system I built back in 2007 (my first Linux Journal article) may have been to relive the 1980s, this article's project is really a better look at my actual childhood. And this article's project is awesome!

The Goal

My end goals for this project are the following:

  • Play Nintendo and Super Nintendo games using emulation on a Raspberry Pi.

  • Fit the project into a wooden cigar box (because I already have a cool wooden cigar box).

  • Use original NES and SNES controllers, not USB knockoffs.

  • Boot up, select and play games using nothing more than the controller for navigating menus.

  • Plug controllers into emulation machine using either original connectors or RJ-45 plugs.

  • Have a good way to turn the machine on and off, not just unplug it.

  • Support HDMI, because that's what all televisions and projectors use now.

  • Support game state saves and restores. (Yes, it's cheating, but I'm more than 40 years old, so if I want to save myself 40 hours of play every time I get to a boss level, I'm gonna do it!)

Thanks to the size of the Raspberry Pi, it's possible to build a project like this into just about anything. I don't have an NES case anymore, but if I did, I'd probably build it inside one for added nostalgia.

I decided to use RetroPie as the distribution for my project. The great thing about using RetroPie is that it basically solves all the issues on my list. It has the "Emulation Station" front end built right in (Figure 1), which supports navigation via controller. It also has emulators already installed, waiting for ROMs to be added. Truly, using RetroPie as my base saved at least one article on software alone!

Figure 1. This is the completed system. Notice the working power LED and both types of controllers plugged in. The screen shows Emulation Station's front end.


Shawn is Associate Editor here at Linux Journal, and has been around Linux since the beginning. He has a passion for open source, and he loves to teach. He also drinks too much coffee, which often shows in his writing.