This project brings together two great things, one new and one old: The Raspberry Pi & Retro Gaming! Having cut my teeth on Asteroids on the Atari 2600, and Load Runner on the Apple IIe, what is called "retro" is a thing that I lived through the first time, and would like to occasionally revisit. When I want to play early computer games, I can always emulate them on my laptop, as it already has the original keyboard and mouse inputs, but a lot of early arcade style games really require the visceral touch of a full sized joystick along with some big buttons that you can mash.
This project consists of three primary parts: The Console Cabinet & Game Controls, The Raspberry Pi and The Code. Most of the items you need can be purchased directly from MCM Electronics, as listed below. You will have to make your console, but there are many options available. You will also have to download the code, which is readily available online.
The Console Cabinet & Game Controls
The console for this gaming system can be nearly anything. AdaFruit suggested a cigar box or laser-cut acrylic, but I wanted something that could really take a pounding and feel like a classic arcade cabinet without taking up all the room that a full cabinet would require. So, I broke out the MDF and went to work. I gave the top a 15° slant because that felt about right for a lot of old games, and I left a slot in the front so that I could clamp it to a table or desk if things started moving around. In addition to the standard "Jump" and "Fire" buttons, I also wanted a "Start/Run" and a "Select" button, so I added a couple of holes for these. The joystick consists electrically of four micro-switches, and can be mounted either above or below the surface of the cabinet. I chose to mount it above the surface Likewise, each Game Button is a single micro-switch totaling eight switches in all. I wired these eight switches to a common ground pin GPIO pin on the Raspberry Pi while each of the NO contacts tracks back to an individual GPIO pin (2,3,4,17,27,18,23) I used terminal blocks between the buttons and the Raspberry Pi, but that was for ease of hookup, and could easily be skipped.
The Raspberry Pi
The Raspberry Pi is the link that brings together the code and the console. Along with the basic Raspberry Pi you will also need an SD Card, Pi Power Hub, USB Cable, USB keyboard and HDMI Cable. Plus you will of course need a TV so that you can see what you're playing.
To bring it all together, I used the "retrogame" code from Adafruit to map the GPIO pins to keystrokes. I had to modify the code a little to make all four of my buttons do what I wanted them to do, but the code is simple enough that even though I am only a "casual" programmer, that was not a problem. I also used Aloshi's "EmulationStation" to run the games. This is a great package that can run nearly any old game that you can find. Naturally, both of these do take a basic understanding of Linux to get working, but with the number of online tutorials available, the average user should have no troubles.
Raspberry Pi Retro Arcade Game Console Parts List
Add the full project to your shopping cart!
28-3625 Joystick - Add to Cart
26-4745 Red Game Button - Add to Cart
26-4765 Yellow Game Button - Add to Cart
26-4760 Green Game Button - Add to Cart
26-4770 Black Game Button - Add to Cart
26-4755 Blue Game Button - Add to Cart
26-4750 White Game Button - Add to Cart
83-15503 6" Jumper wires (Optional) - Add to Cart
24-15120 Black 24awg Hookup wire - Add to Cart
24-15122 Red 24awg Hookup wire - Add to Cart
24-15125 Green 24awg Hookup wire - Add to Cart
24-15129 White 24awg Hookup wire - Add to Cart
83-17300 Model B Raspberry Pi 3 Board - Add to Cart
83-17305 SD Card - Add to Cart
28-19336 Pi Power Supply - Add to Cart
83-14882 USB Cable - Add to Cart
24-14757 HDMI Cable - Add to Cart