Build Your Own Arcade Game Player and Relive the '80s!
I grow weary of hearing how bad Linux is for gaming. In this article, I buck that stereotype and show how to use penguin power to relive the '80s. In this cool project, I describe how to construct a fully functional arcade cabinet. When complete, you'll be able to play all the old coin-op games from your childhood in the coin-free luxury of your living room (or garage—depending on the tolerance of individual spouses).
The system uses software based on the MAME (Multi-Arcade Machine Emulator) Project to play the original classics emulated in Linux. MAME uses software to emulate the original arcade hardware. This article explains how to connect the original joysticks and buttons, and even gives some pointers regarding purchasing rights to the original games.
First off, it's the arcade case that makes this project truly awesome. If you don't have an actual arcade cabinet, with original arcade controls, you might as well go back to playing Zork on your TSR-80 for your dose of nostalgia. The cabinet is what makes this cool, period. It's up to you to decide whether to make a cabinet or buy a used one. If you make the whole thing from scratch, the design is completely up to you. The downside is that doing this requires some woodworking skills. I have no such skills. In fact, to me, “saw” is a type of waveform on an oscilloscope. So, I opted to purchase an old arcade machine and gut it out. Unless you are a woodworker, this is the way I'd suggest doing it. As a bonus, I got all the buttons and controls I needed for free, and the case even smelled a little like a pizza parlor. (Okay, that might be my imagination.)
To find used cabinets, look up “coin op” or “arcade” in the phone book. It was my particular fortune to find a man willing to give me two used cabinets for $30. I did have to listen to a litany on the downfall of the arcade generation and how kids these days don't appreciate the classic games. I think he threw in the second case for me when I mentioned that I was rebuilding it because I wanted to relive my youth. He liked that idea almost as much as I did. Keep in mind that if you happen to get an arcade monitor, it's possible actually to use it, but it requires more work. For the purpose of this article, I assume you're using a standard computer monitor.
After I bought my wife flowers and took her out to dinner, I was allowed to bring one of the cases into the house and start the fun. My particular case was from an old Neo-Geo game, and I chose to leave the somewhat damaged decal on the side (Figure 1).
If you are, in fact, a woodworker, you may want to purchase the particle board and make a truly custom cabinet. There are designs and original measurement specifications for some common arcade machines on www.arcadecontrols.com. In fact, that site has tons of information on constructing a MAME machine from the ground up, and it's an invaluable Web site. To be honest though, even if I were able to start from scratch, I actually prefer the used cabinet. There's something special about knowing it's the real deal, even if the insides are all different.
The most difficult part of construction, for me, was getting the monitor properly mounted. I used an old 17" Apple monitor that was destined for the trash. As you can see in Figure 2, the monitor shelf has to be at the right angle so that the face of the screen is flush with the Plexiglas front. I'm sure there are woodworking shortcuts for figuring out how to get the angle correct, but I ended up with some really complicated geometry equations involving SINE and COSINE. Yep, I'm a geek.
The shelf below is to hold the computer. All I did there was line up the shelf with the coin door in the front, so I could reach in to power the computer on and off. (The coin mechanism actually can be wired and used, but mine was broken, so I never installed it. Maybe next time.)
The last bit of woodworking is the most complicated. You must decide what button layout you desire. I'm the kind of person who spends 20 minutes looking at a dinner menu, so a decision like this was bordering on impossible for me to make. I read, I Googled, I compared and I surveyed. My suggestion is that you avoid all that and go with the layout I chose. Why? Because it works for most games, and you can always change it later. Figure 3 shows the button layout I chose, which happens to be a standard Street Fighter II layout.
You'll notice an extra joystick in the middle, which is not part of the Street Fighter layout. It's an original Ms. Pac-Man joystick that my wife got as a belated high-school graduation gift. (We're an odd family.) It's wired directly to the player-one joystick, so don't worry if you don't have such a beast, it's not really additional, just an alternate.
The joystick and button holes will vary in size, but standard buttons use 1 1/8" holes. Feel free to lay the buttons out however you like. I went out of my way to make sure the buttons were perfectly placed, but there aren't rules for these things. Don't forget a button for inserting coins! Mine is sticking out of the front of the machine, about where you'd put in a quarter if it were an actual arcade.
Now you should have a mostly empty case with a monitor shelf, computer shelf and a wooden control panel full of holes. If you are doing this work in the house, and you happen to be married, take this time to vacuum. You can thank me later.
If you are the artistic type and want to paint the control panel and cabinet, go ahead and do so. I couldn't wait, and to this day my cabinet has a raw-wood control panel.
Free DevOps eBooks, Videos, and more!
Regardless of where you are in your DevOps process, Linux Journal can help!
We offer here the DEFINITIVE DevOps for Dummies, a mobile Application Development Primer, and advice & help from the expert sources like:
- Linux Journal
- Be a Mechanic...with Android and Linux!
- New Products
- Users, Permissions and Multitenant Sites
- Flexible Access Control with Squid Proxy
- Security in Three Ds: Detect, Decide and Deny
- High-Availability Storage with HA-LVM
- Tighten Up SSH
- Solving ODEs on Linux
- DevOps: Everything You Need to Know
- Non-Linux FOSS: MenuMeters