This is what happens when there’s nothing on TV.
I’ve been listening to a really great podcast lately called No Quarter. It’s all about remembering and reliving classic arcade games, of the sort us folks-of-a-certain-age grew up with. If you’ve never played Dig Dug or Space Invaders in a smoke-filled, dimly-lit room with purple carpet, blacklights, and a creepy dude shifting pot in the corner, then you don’t know what I’m talking about. Also, get off my lawn.
The boys at No Quarter have rekindled my love of those games, but to play them properly you need the right equipment. Rather like a samurai making her own sword, this is something of a rite of passage for people who want to play these old games The Right Way™. Namely, building a control panel. I wanted something clean, fairly compact, but beefy enough to play most games from 1970 up through about 1993. Here’s what I came up with.
Here’s a close up of two of the signature features: servo-powered joystick mode selection, and coin slots:
Here’s a demonstration of the coin buttons:
I went with a simple all-white design, because it will match the decor in the room it will be going into. No crazy airbrushing of Teenage Mutant Ninja Turtles driving the car from Pole Position here. I did a ton of research over at the Build Your Own Arcade Forum. I’d also like to thank the You Don’t Know Flack podcast for being very informative, and of course Slag Coin, arguably the best single resource there is on this topic.
The first step in designing one of these is figuring out which games you want to play. This makes ALL the difference in terms of what types of controls you buy, how big the panel is, what type of electronics you need, and so on. As mentioned, I’m interested in most of the range of arcade games from the 1970s into the early 1990s. However, I’m willing to forego trackballs, spinners, flight sticks, and other exotic input devices. Yes, I know I’m giving up Centipede and Tempest with this design, but I’m okay with that for now. I want to play multiplayer games, but two people is fine- I don’t need four. With that criteria, the only special gear I needed was switchable 4-way/8-way joysticks. No, you really can’t play 4-way games with an 8-way stick. The extra inputs will confuse older games, and watch how fast you die in Ms. Pac Man with an 8-way stick. Trust me on this.
There’s two main choices for sticks- Happ and Sanwa. The former are American, and probably what you played on if you came up in American or Canadian arcades. However, the only switchable 4-way/8-way Happ stick requires dismantling the mechanism to make the change. Furthermore, the conversion only changes the stick electrically. Physically, it still moves to 8 positions in 4-way mode. That’s not good enough for my taste. I wanted something switchable from the top of the panel, something that would feel authentic in both modes, and something easy enough for guests to use.
The magic bullet came in the form of the Ultimarc Servo Stik. They take Sanwa sticks, and convert them to be switchable with a servo motor. The switch is done with a restrictor plate, so the physical motion of the stick actually changes. It feels different as well as being electrically different in each mode. It’s really awesome, and I could not be happier with these.
For buttons, I went with Happ, as they have the right North American arcade look and feel. The last thing needed is an encoder, which is a circuit board that converts the arcade control inputs into USB keyboard inputs for use by games. Ultimarc to the rescue again, with the really excellent iPac 2. Ultimarc also carries real Happ buttons (not knock-offs, like you’ll find on eBay and elsewhere). So, it was easy to place one big order from Ultimarc, and get everything I needed. Even though they’re in the UK, they ship DHL, and the stuff was at my door in the US in two days.
With parts in hand, it was time to lay out the panel itself. The outer dimensions are based on the Mortal Kombat 2 panel (available here). The button spacing is taken from X-Men Vs Street Fighter 2 (in the service manual, available here). Other dimensions, such as joystick spacing and wrist area, were taken from the X-Arcade stick. I’m not going to link to that, because those guys were unpleasant to me when I tried to inquire about buying something.
Having an actual-size template on paper is very useful. For example, when it comes time to drill, you can line up the template on the piece, and stick a pin through the right places on the diagram to mark the holes for drilling in the material below.
For material, I opted for 3/4″ melamine. This is plywood with a plastic coating on two sides. It’s mainly used for making the insides of kitchen cabinets. It’s nice looking, feels smooth, and can be cleaned easily. Also, the previous owner of my house left a bunch of it behind. That’s the main reason I used it, if we’re being honest. You can’t argue with free. Honestly, the melamine was somewhat of a pain in the ass to work with, so I’d probably just use high quality plywood next time.
After cutting out the top piece, the first challenge was mounting the joysticks. Because the Servo Stiks are based on Sanwas, they are intended to be mounted in a Japanese-style metal control panel, rather than an American-style wood one. That means they need a fairly thin surface above them. Slag Coin has a huge section on all the ways around this. Joystick mounting (particularly under-mounting, to hide the screws) is an art and science beyond the scope of this article. I’ll show you what I did, and I can say it worked great. You could lash your horse to these sticks, and he’d still be there in the morning (though he may have beaten your Moon Patrol score by then).
I carefully measured and marked the areas that would be occupied by the joysticks underneath, then routed the area down to 1/4″ thickness. Next, and I marked, drilled for, and installed “insert nuts”, which are brass fittings that give you secure machine-screw threads in wood. They are also much stronger than wood screws put straight into wood. This is important for joysticks, which will take a ton of abuse.
The sticks are mounted using a technique called toe clamping. Don’t google that, trust me. Here’s what it looks like.
Next it was time to drill for the buttons.
Next I planned the electrical layout. Tidy wiring is all about planning, so I did my best to make sure this would all work ahead of time.
It’s very helpful to have a lot of different colors of wire for a job like this, and in this case we need stranded 22 AWG. 22 AWG is way overkill current-wise, but arcade controls use 0.187″ blade crimp connectors, and 22 AWG is the smallest you can use in those. It turns out that getting a bunch of colors of stranded 22 AWG wire isn’t that easy. I ended up finding some multi-conductor shielded cable at my local surplus shop (All Electronics, who also sells it online). Give All Electronics your business. They are awesome dudes, and real hackers running a proper surplus shop of the sort that you don’t often see anymore. This multi-conductor cable can, with some effort, be dismantled into 10 colors of 22 AWG stranded wire. Perfect!
The next task was the body of the case. I used more of the melamine for this, but the nice finished surface would not survive this time. I am not a woodworker by any stretch, and I chose a challenging shape with a challenging material. Things were looking pretty rough, but luckily a good friend of mine put me on to a great tip for fixing shoddy woodwork- Bondo! Yes, the automotive body repair stuff. It’s an amazing hider-of-sins on all sorts of materials, including wood. Way better than wood filler, and cheaper than dirt.
The next challenge was powering the Servo Stiks. They are intended to be run off a PC USB port, which can supply up to 500mA to a properly enumerated client device. However, I’m not going to be using them that way. The Servo Stiks have an optional Hardware Mode, whereby you replace the USB cable with a power source, and connect two buttons (or a toggle switch) to change modes. So, where to get that power?
First I needed to know how much power they need. I put the meter on them and ran them through some paces.
My first thought was to take the power directly from the same USB port as the encoder is using. However, this will be a passive, non-enumerated “device”. The maximum spec a USB port is supposed to supply for that is 100mA. We need more than that.
The next idea was batteries. The switching won’t occur very often, so as long as there’s no idle draw of current, batteries would last a very long time.
I was really trying to avoid needing a wall wart for this- I wanted the whole control panel to have a single USB cable coming out of it. After further research, it seems that most USB ports will actually let you draw more than 100mA- it just isn’t guaranteed in the spec. Well, what the hell- time to give that a shot. I knew for a fact that the USB port on my laptop would simply shut down the port if I draw too much current, as I’ve had this happen accidentally on other projects. It even throws up a dialog to let you know it has done so.
Well, huzzah! It actually worked great. Apparently the USB ports on my laptop will happily supply at least 220mA with no USB enumeration. So, I decided to strip the guts out of this cheap hub and build it into the design to supply juice to the Servo Stiks. It will give me power for the servos, and extra ports in case I ever want to add a spinner, trackball, or other widgets.
Next, I needed a switch to control the Servo Stiks. I planned to incorporate this with the coin buttons at the top of the panel, using a toggle switch. Toggle switches are nicer than buttons for an application like this, because the switch itself indicates the state of the underlying system. No LEDs or other fancy output required. Toggle switches need to be mounted in a thin metal panel though, and won’t work in a 3/4″ slab of plywood. I planned to inlay a small piece of aluminum to hold these controls.
First I needed to cut the slots for the coins.
With the slots cut, I needed to mount some buttons underneath for the coins to hit. In my junk pile, I found some industrial switches similar to the Happs, but the mounting holes were too small for the hardware I had on hand. No problem, I’ll just enlarge them a bit.
Well, at least I got to see inside them! Interesting mechanism. I found another set of switches made of softer, less brittle plastic. These were quite amenable to being drilled out.
With the coin slots working, it was time to mount the toggle switch.
Here’s the finished interior of the control panel.
Almost done, now! We need a bottom. Once again, previous-home-owner to the rescue. He left behind a sheet of some kind of thin fiberboard. It seems perfect for the job- all I had to do was trace the control panel’s outline on to it, cut it out, and countersink some screws.
One more detail- the USB cable needs an exit point, and a strain relief. I decided to kill both of those birds with one notch.
Here’s some video of the Servo Stiks in action. First from the top, the way a user would see (and hear it). Next, a view from below with the bottom cover removed.
So there you have it. I’ve already played a ton of games with it, and could not be happier. The whole thing was made with found materials, so it basically cost me nothing beyond the arcade hardware itself.
Eventually, there will be a cabinet to go along with this, for the full stand-up arcade experience. For now though, I can just plug it into my laptop and get my classic game on. Round 1: FIGHT!