Arcade Cabinet

I was a teenager in the 1980s, so of course I have fond memories of playing early video games like Pac-Man. I've wanted an arcade cabinet at my house for a long time, but we didn't have the space. I was starting to warm up to the idea of a cocktail cabinet (the horizontal type where players sit across from one another) when my wife pointed out that we have two IKEA coffee tables in our living room. One of them could be modified to be a video game machine.

This is the result:

The original tables had a glass top. I had replaced them with sheets of thin steel, but had kept the glass. For this project I built a wood bezel to frame an old LCD and mounted that horizontally under the glass. My dad recommended a shelf beneath that to house the electronics and controls. The shelf is half-inch plywood. The control panel and sides are quarter-inch MDF cut on a laser cutter at TechShop and painted black with primer and spray paint. The sides swing down using kitchen cabinet hinges to provide access to the internals:

The core software is called MAME. It emulates old arcade cabinet hardware. I may later add other emulators, such as for the Atari 2600, but games on home consoles aren't nearly as good.

The overwhelming thing about making a cabinet is the number of choices you have to make:

Motherboard: Your basic options are a small form-factor PC motherboard (such as a Mini-ITX) or a Raspberry Pi. The PC is more expensive but much faster. The speed only matters if you want to play later games (1990 and beyond), but I was only interested in games from before 1985. I went with the Raspberry Pi knowing that I could swap to a PC later if I needed to.

Operating system: Most people seem to recommend Windows 7 64-bit. (Only a few years ago people were still running on DOS!) This is not only expensive, but there are various hacks you have to do if you want to hide the normal Explorer interface. Had I gone with a PC I would have done the common thing and used Windows 7, but since I chose the Raspberry Pi I used Linux.

Distribution / front end: There are many front-ends to MAME on Windows 7 and two on the Raspberry Pi. I tried the two on the Pi (RetroPie and PiMame) and disliked both, so I wrote my own in Python and PyGame. For my distribution I started with stock Raspbian and manually installed mame4all-pi, which is MAME version 0.37b5 tuned for the Pi. The two game distributions above had quite a few glitches during game play, but the plain mame4all-pi one didn't.

Joysticks: There are many kinds of joysticks. You'll read that the Sanwa JLF ones are the best, but in fact those are 8-way joysticks. They have four microswitches and when you move the stick to the corner, two are pressed at the same time. This doesn't work with Pac-Man, which will misbehave if it gets two simultaneous buttons. You want a 4-way joystick, which has a plastic restrictor plate that prevents two switches from being pressed at the same time. Note that this isn't necessary with newer versions of MAME, which can emulate 4-way joysticks in software, but the version of MAME on the Raspberry Pi is ancient and doesn't have that feature. I first tried the Zippyy joystick, but it didn't feel right. I then mistakenly got the Sanwa one (or a cheap clone from China) and couldn't play Pac-Man. I finally got the Happ Reunion joystick, which is wonderful. It's meant to be mounted to sheet metal, but worked fine with MDF. It can't go into the corners, but none of the games I want to play need that.

Buttons: How many buttons? I went with one, since most games either used one (Galaga, Space Invaders) or more than two (Asteroids, Missile Command). There's also the subtle issue of concave or convex buttons. The old arcades used concave.

Speakers: I almost got a cheap amp and small car speakers, but realized that I had a spare set of PC speakers. I took them apart and mounted them directly to the bottom of the shelf.

Some other notes:

My wife's favorite game was Centipede. She strong-armed me into adding a trackball at the last second. I chose the Happ 3" Trackball with USB interface. It's great. At $160 (with shipping) it was the most expensive part of the whole project! And now I get to play Marble Madness.

Controls like joysticks and buttons use microswitches, and these need quick-disconnect connectors. There are two common sizes: 0.25" and 0.187". You want 0.187" female. I bought mine at Fry's.

Use an I-PAC for control input. It takes raw controls and emulates a USB keyboard, and even defaults to the same keys that MAME uses. I went with their I-PAC Value Edition.

The Coin Drop button is awesome.

My final cost was probably around $500, not including the table. Feel free to contact me if you have specific questions. Building one of these is completely overwhelming. I spent hours per night for several weeks just reading blogs and forums, trying to gather all the information I needed to make informed decisions.

At dinner parties the adults all play their favorite games. What I didn't expect is that the kids all love these games too. Great game play is forever.

~ See all projects ~