As many agree, the Raspberry Pi is an amazing bit of power for $39. A system that puts the fun of computing in the palm of you hand. It was originally designed to be cheap and accessible to help kids learn programming, but has gone on to fill so many other uses that it has become the new go-to solution makers are turning to. Projects from motion tracking and media server, to Bitcoin mining and servo/motor controller.The RasPi is a little darling for sure.
This little guy runs a slim version of Linux (Rasbian Wheezy, based on Debain) which is perfect for programming, but also good enough for classic arcade emulation. By installing available emulators, and hooking up a joystick and buttons to the provided I/O pinout, you can use the RasPi to run the actual old Arcade ROMs directly and relive the glory days from the dawn of computer games.
Enter Adafruit, the leader in the hardware hacker community. They collected the required components and slick design to make the CupCade Kit. This includes: OS configuration, emulators, buttons, joystick and an impressive miniature laser cut case out of durable hard plastic. This marriage of the RasPi and arcade controls are a popular project that many have been successful at across Youtube. The Adafruit Cupcade isn’t the first kit, but it’s notable for using the Adafruit PiTFT display and having world-class documentation. Not to mention, the direct digital interface delivers a pixel-perfect rendition of classic games with none of the blurriness you’d get with a composite screen.
I started by installing the provided system OS and soldering the screen connections. After I had the screen working I set the orientation to horizontal using a keyboard and restarted. Once I had this basic setup in place, I could test ROMs and system features.
These Read Only Memory files (ROMs) are the original compiled code that was installed in the custom chipsets and motherboards of the old cabinet machines had back in the day. You can download these files, and use them with the emulators on your desktop to run without the old integrated hardware. This is the whole secret to the rebirth of vintage arcade gaming. They are fun to play on any system, but having an old school joystick and buttons completes the nostalgia.
After finding a few ROMs, all that is required is downloading them, and copying them to the SD Micro card that comes with the kit. There is a ROM directory under each emulator main directory. (One for NES and MAME respectively).
I then inserted the SD card in the Pi and started up. After Linux is finished booting, you are presented with a ROM selection screen. Here you can select from your list of installed games using a keyboard (or joystick and buttons once installed).
A vintage arcade is not complete without the mother of all games, Super Mario Bros. After some smiles and giggles, the basic system was up and running! Now to focus on sound and control.
Adafruit is world famous for their excellent tutorials and documentation. It really makes the difference between a project that is frustrating and one that is a joy.
There is a bit of soldering required and as such, you should test the system often after each major step to ensure you don’t pass a point that makes fixing harder after parts are joined.
Components that require soldering:
- Display connections
- Headphone jack
- Controller board
- Ribbon cable adapter
After all soldering is finished, the main components have to be married to their plastic case partners. Each piece is custom shaped to hold each component. The screen display can be set horizontal or vertical. This decision has to be made early on, and has some impact to which games you can play. It is not easy to change later as you need to take the whole system apart to switch. The NES emulator only supports horizontal orientation so that is what I went with. I can still play regular MAME ROMs that are vertical too, they just appear smaller in this configuration.
Once I had all the parts finished, I then made all the connections into the Raspberry Pi to manage the wires. It was a good time for a system test with a round of Donkey Kong before going any further.
The custom case is designed to have minimal exposed screws and smooth seams. This makes it a bit tricky to assemble.
Once you completed each base component, they have to be joined to a single side of the cabinet. I did this and then used tape to hold the parts that were not directly fastened. Then I was able to place the other side on top, and slowly work each tab into their slots until the whole unit was a solid enclosure.
The finished build with Donkey Kong running.
My Son was more than happy to be the first to play with some serious Super Mario Bros.