×

UPDATED 6/16/2020 -- PROJECT IN DEVELOPMENT! STAY TUNED FOR MORE...

JDIY15 : Personal Arcade


I have been a gamer for much of my life. I started playing Nintendo with some friends and upgraded to the arcade and various consoles and eventually ended with a PC. I can't express the quantity of quarters I spent playing and enjoyed every minute. Arcades started to fade from the scene, and then soon became extinct because of the rise of the personal consoles. I too moved to PC and PlayStation mainly. I missed the good old days and the feel of an arcade. I found a way to build an arcade, but it has taken a large sum of hours to get it feeling right and configured with the Raspberry Pi using RetroPie.

It started when I learned about the RetroPie a couple years back. I wanted to build a retro gaming system with my Raspberry Pi 1B. It turned out pretty good, but there were some limits when it came time to run more graphically demanding games. Many of the Mame games worked, but the 1B really did best with the NES and Sega games. I have spent hours playing it re-living games but wanted a more powerful Rpi to run PS1 and other console games better.

Years past, and development progresses, as it does, and the Rpi3B+ was released. I installed the latest version of RetroPie and played with fantastic results. I did a comparison between the 1B and 3B+, which obviously the 1B took 2nd place, but it was fun to see how far the development has come.

June of 2019 was the release of the latest and greatest from the team at the Raspberry Pi Foundation, the Raspberry Pi 4. I picked one up as soon as I could find it in stock. I went with the 4GB version and was super excited about getting the RetroPie build installed. Sadly, there isn't an official version yet (early 2020). I researched and found a version that had been released by couple developers, and until I can get an official release from RetroPie, I will be using that build. For the most part, it works like a champ, there are some issues, like the built-in scraper doesn't work like it should, and some functions in the menus can get wonky. Even with these faults, I could finally see the arcade project I always wanted to build because the Rpi 4 runs all the games I have wanted to play with very satisfactory results.

For building a standup arcade, my first step was getting the hardware tested. There is a kit that you can get online in many places that include: arcade sticks, buttons, and USB zero-delay boards (these are needed so you don’t see lag during operation). The cabinet will come next, but I’m very comfortable with the woodworking portion, and the display be picked based on cabinet but something in the 27-32” range that offers decent sound. After all those years playing in the arcades, I also knew there are many, many cabinet designs to choose from.

First things first, control configuration. The complete game list I'm still working on, but there are two fighting games I wanted to include as a focus of the whole thing, Mortal Kombat and Street Fighter. For that reason, I have opted for only 2 player support, and for button configuration I visited Slag Coin. I learned there are a lot more configuration options, a lot more than I remember playing. Anyone who has played MK knows the unique button configuration, especially when MK3 came out and “Run” was added. SF is a fairly easy setup, 2 rows of 3 buttons. I remembered playing some MK games with the 6-button setup using the two middle buttons for block, so I opted to go that route with a slight alteration to support “Run”. The other games I'm throwing in the build only have 2-3 buttons needed, so that is easy to adapt. I ordered a kit off Amazon for about $40 that supports 2 players and enough buttons for all the essential operation. Side note, I have to say the company (EG Starts) is painfully no help comes to support, but I was able to figure it out. I wanted to get specifics about the connections for the 2-pin (see image below) connectors on the board, and they insisted there is only a “standard 3-button” option.

USB Controller


For testing, I just used a cardboard box to try out different configurations, and quickly came up with one that felt good. I used a breadboard, some jumper wires and buttons to figure out the other features. Once I had the design, I went down to the garage to make one out of wood to make it rigid like it will be in the cabinet, the overall feel and function worked great. RetroPie lets you setup a config file for each game, which makes easy work out of button setup. Even before I learned about that option, it's easy to swap between MK and SF configurations. Here is the control setup, I just cut up a template in Photoshop and made it fit my liking. Here is the control setup, I just cut up a template in Photoshop and made it fit my liking. Initially, I just used a cardboard box to try out different configurations, and quickly came up with one that felt good. I used a breadboard, some jumper wires and buttons to test out the other features like auto fire, fire set, and clear.

Arcade Controls


Once I had the design, I went down to the garage to make a controller out of wood. The overall feel and function worked great. RetroPie lets you setup a config file for each game, which makes quasi-easy work out of button setup. Even before I learned about that option, it's easy to swap between MK and SF configurations.

**DESIGN UPDATE**

Instead of making a full cabinet for my arcade, I have opted to just making a controller for player 1 and player 2. I live in an apartment and have run out of space to keep putting my builds inside. There is some space in the spare bedroom, but there are other builds that I want to use for that space.

I have found a new issue though. DragonRise is by far the most common arcade sticks that are used in these builds, and it was a surprise to me to learn that there are plenty of issues once you add a player 2 in the mix. I can use each one separately perfect (which is why I didn’t find this issue when I was testing my prototype controllers), but once I have both plugged in, many of the ROMs do not act accordingly. Mainly, it’s Button A on player 2 that isn’t working. I read that there are a lot of people that have the same issue, or one very similar. I read an article that suggests using a different driver for the DragonRise Joystick, and some that offer suggestions on wiring. I have a couple ideas to try out and will post the results. What is even more odd, is that MK1 and MK2 have the issue, but MK3 runs great, which I thought would be ROM related. I have spent months whittling down thousands of ROMs to a select set; going through them all again just to test P2 controls is not an exciting practice to think about.

Difficulty: !!!!!
This project gets my highest difficulty. Not just because of level of complexity with selecting parts, finding quality ROMs and RetroPie builds, but also the time and effort that is needed to make everything work just right. There many designs and suggestions to filter through online, it's hard to get a design that just "works". If you have a 3B+ it is far easier because of the official RetroPie release, but I’m running it on the RPi4. This project is as much about learning to adapt your idea, as it is playing games. I have enjoyed the hours spent building it and playing it. I highly suggest this type of build for any maker, because of all the aspects that are used from start to finish.