this pin out chart if you have an older Raspberry Pi model.
To make the arcade controls work once connected, you’ll need to install the Retrogame software. This maps the signals your arcade buttons make to buttons on a keyboard. It can be a bit confusing to follow, if you need help look at the instructions on the Retrogame Github page.
My plan was to use the GPIO pins for the arcade controls, but the kit I ordered came with a USB based encoder with all the necessary wires. USB arcade controller boards work great, and most gaming Operating Systems for Raspberry Pi have all the drivers for these kind of devices built in. If wiring the pins manually seems a bit confusing, it’s worth looking into.
I edited the configuration files on my Raspberry Pi to force it to output at a low, 640x480 resolution. This did slightly boost performance, but my main reason was to get crisp, sharp edged pixels for all the retro games. Having the Raspberry Pi run at the higher, native resolution of my monitor gave games a more smooth and scaled look. Try both to see what you prefer.
There are many different operating systems for the Raspberry Pi that are great for an arcade system. Cupcade and recalboxOS are common, but for my system I used RetroPie. Installing it is simple, just plug your SD card into your PC and install whatever Operating System image you want. The RetroPie Wiki has a great tutorial if you need more help with the installation process.
A few things to keep in mind with RetroPie:
You will need to configure your controller or arcade controls twice; for the EmulationStation menu where you navigate between your games, and again for the emulators themselves. Some emulators, like Nintendo 64, also need to be configured separately.
RetroPie has a setup script that gives you access to some extra settings, including installing experimental emulators that are still in development. Access it from the RetroPie menu, but keep in mind you’ll need to plug in a keyboard to navigate the options in the script. The Raspberry Pi also has a similar script for more core system features.
You can access the standard Linux command prompt at anytime with F4. Because RetroPie is based on the very common Raspbian OS, most additions and tutorials written for the Raspberry Pi should work.
By default, RetroPie runs a standard network share that lets you copy over files and games. It’s called simply RETROPIE.
There are a lot of free ports installed by default, including the shareware versions of Doom and Duke Nukem 3D. It’s not an arcade style game, but the port of Cave Story works great. There is a huge range of homebrew games available for most retro systems; nesworld.com has a great selection and a favourite of mine is Fix it Felix Jr. for the Genesis, based on the focus game in the Disney movie Wreck-it Ralph. As always, using copies of commercial games that you do not own is illegal and you’re on your own to find them.
I’m gonna wreck it!
This took longer to do than I expected. Planning, cutting and configuring was a fairly large task that I thought I’d do in a few hours, but ended up doing over a few free afternoons. The final unit is also far heavier than I would have liked. All advice and research was to use 12mm material, but I’d consider going thinner and lighter if I did it again. By far the best thing about building something like this is the huge community around both the Raspberry Pi and the whole maker scene. If you get stuck or lost there are several communities where you can research and even ask for help.
MegaMan Legends 2 running perfectly
An alternative to an arcade machine is building a handheld Gameboy-like system powered by a Raspberry Pi. Adafruit has a guide here, and the (now former) Fragdoll Sabre has a great video breaking it down. Most smaller projects like this require a 3D printer - if you’re interested in this it’s worthwhile to research if there is a maker space or other community centre in your area that will let you print out your parts.
Another retro gaming project would be to gut out the inside of a broken Super Nintendo or Genesis and turn it into a neat case for a Raspberry Pi PC. You can also buy a huge range of different cases premade for the Raspberry Pi or make one yourself with your own stylish finish. Just about any USB controller will work, including wired Xbox 360 controllers and wireless Playstation 3 controllers if you use a USB Bluetooth adapter.
If you’re after a different type of project, Adafruit has guides for a huge range of guides. It’s also the store I’d recommend to buy all your parts and Pi’s, including joysticks and buttons. They’re based in New York, so if you are in North America you won’t have to wait weeks for shipping from Asia.
Overall, I’m pleased. It’s my first time building something like this and it came out reasonably well. The paint finish might be a bit patchy and it’s very heavy, but it is fully functional. I still wouldn’t call it fully finished as I’ll probably try and touch up a few things when I get the spare time. And then there is my next project - mounting a Raspberry Pi and a small touch screen in the dash of my 1983 Toyota.
If you have any questions or suggestions please comment below or hit me up on Twitter. If you’re attempting a project similar to this I’m happy to help out if you have any specific questions.