MAME/Arcade Project

  • by Gitabushi

I’ve learned so much over the last 4 days, it’s hard to know where to begin.

And that’s why it can be so difficult to get started.  There are so many people who have tutorials and advice and input into how to build your own home arcade/retro emulator system, that it can be difficult to know what to retain of what you want.

I’m going to try to sum it all up, and make this a one-stop shop for if you want to develop a home Arcade or Retro home gaming system.

Basically, deciding to develop a home arcade/retro gaming system is pretty much a series of binary choices (or near binary):

  • Do you want to buy something virtually ready to go out of the box, or build your own?
  • Do you want to build an arcade cabinet, or build a controller box that you can plug into any TV?
  • Do you want the original game controller configuration, or are you willing to adapt to a standard set of controls?
  • Do you want to just play Arcade games, or do you want retro games like NES, SNES, GameBoy and Sega?  Or both?

I basically want to play a few set games:

Joust (1 joystick, 1 button per player, 2 player)
Karate Champ (2 joysticks per player, 2 player)
Dig Dug (1 joystick, 1 button per player, 1 player (because if you have 2 players, they play in a series, not simultaneously…although the game had 2 buttons with simultaneous function, I guess for Left and Right handed players)
Gauntlet (1 joystick, 2 buttons per player, 4 player)
Street Fighter 2 (1 joystick, 6 buttons per player, 2 player)

There are things you could do to accomodate all that.  You could make a 4 player control panel, with a joystick and 6 buttons for each player, and then if you loaded a game that needed less, just disable input of the unneeded buttons and joysticks.  That would mean that Karate Champ would be played by using the joysticks of 2 players and ignoring all the buttons.

It’s doable, even the use of the joysticks of two different players for Karate Champ, because it shouldn’t really matter if they are widespread.  It depends on how much of the arcade nostalgia experience you want to have.

That’s kind of the first non-binary question: how important is it to you to have the full arcade experience?  It leads to the first sorta-binary question:

Do you want an arcade cabinet, or just to play the games?

Because if you just want to play the games, like Joust, you can get an emulator that will work on your computer, and use your keyboard buttons…and even assign the keyboard buttons as you wish for convenience, so two can play using the same keyboard.

You can even set up Karate Champ to use keyboard keys, because the joysticks really are just a way to input “up/down/right/left” signals. Easy to do with keys.

When you do a game emulator the roms accept keyboard inputs to control what you do in the game.  So when you buy all your joysticks and buttons and trackballs and spinners, the first thing you do is attack all those inputs into a circuit board, which then outputs all the signals to the computer. Which is either your PC, a Raspberry Pi, or some proprietary circuit board/processor in the retro machine you bought.  Right now, most of the retro machines on use Raspberry Pi or Orange Pi.

So, really, the sky’s the limit when it comes to inputs.

If you want to play Joust, Street Fighter, Centipede, Gauntlet, and Tempest, you can build 5 different machines, each with their own Raspberry Pi or PC “brains”, and each with a separate set of controls.

Or you could build one arcade cabinet with different control panels that you could swap out (and there is enough space in the cabinet you could make a carpet-lined storage spot for each board). In this case, there is one screen and one brain. Each control module would have its input controls (joysticks, buttons, spinner, etc.) and the input circuit board.  It’s output would be a USB that you would plug into the “brain” (probably a Raspberry Pi).  You’d save the cost of the multiple screens, multiple sound systems, and multiple cabinets.  This might be the cheapest choice to get a complete set of accurate control panels for ALL the games.  And you could start with one control module that can play a set number of games, and then add as you get bored or want to invest more money.  Even the 2-joystick system for Karate Champ is shared with Robotron and SmashTV (among others).  Add a single button, and you can ignore a joystick and play Joust and Dig Dug and Donkey Kong…and anything in the Pac Man series, even without the button.

Something like this:


Plans for this can be purchased for $20.  I’d want to do something slightly different, because I’d want to drop in the control modules…the 4-player gauntlet would be about 4 feet tall, and would have to go into the back part.  The Karate Champ and Joust control modules could go in the front, probably.  It would make the wife happier to have all the modules have a dedicated, hidden storage location.

Or you could build individual boxes, each with its own brain, and the output would be an HDMI cable that you plug into the TV.  This is the most flexible.  You could bring a box over to your friend’s house to play.  You could bring a smaller one on vacation. Something like this:   Obviously, that one wouldn’t work for Joust or Missile Command.  And it wouldn’t work for Gauntlet unless you made 4 of them…which, since the Raspberry Pi has 4 USB inputs, would probably actually work.

A Raspberry Pi itself (if you want to really build your own from scratch) costs around $35.  But don’t let that fool you.  You also need a power supply.You’ll probably need some heat sinks (to prevent overheating…there are some programs that will stress the system, more on this later). You might want a power-off switch.  Depending on your application, you might want a case.

This is the cheapest I’ve found, might be enough for an arcade system, but you’ll still need to add an on/off switch.

This includes the on/off switch, but also includes a case you won’t need if your Pi will stay in the arcade cabinet, or inside your controller module:

You could get a Raspberry Pi 4, which has additional capabilities, but now we are up to over $60, which adds a bunch of costs if you want to put a Pi into each controller box (for the non-cabinet solution):

But, to be honest, all you *really* need is a Raspberry Pi Zero.  Remember that the goal is achieve the computing power for 30 year old arcades and home consoles.  That’s not difficult, and the Zero meets or exceeds it. The only problem you’re going to have trying to use a Raspberry Pi Zero for emulation is if you try to do 32-bit games, which is the N64, PS1, and Sega Saturn era. Basically, if you can give up on 3D games and just stick to 2D, the Raspberry Pi Zero is enough.

Supposedly, you can get a Zero for just $5.  Amazon doesn’t have that, tho, because you need a bunch of stuff to make it work, and they helpfully sell it all to you in a kit. Here’s one, the cheapest I have found so far for one that includes a power supply, at $26:

So, basically, if you decide to use multiple brains for each set of games, you are adding about $25 if you use the Zero.  Maybe you less if you find a non-WiFi equipped version somewhere else, and buy your power supplies and other peripherals in bundles?  Dunno.

What I’ve decided to do is buy enough equipment to set up a controller module with its own brain, and see how I like it before I decide to build an arcade cabinet or not.

What I’ll do is buy one Raspberry Pi Zero, 4 joysticks, and 8 buttons.  Then I will take a cardboard box and install the controls in the box. I’ll reinforce it somewhat, and then play the games on it.  That gives me the chance to adjust the locations of the controls to see what kind of spacing works best, without having put that much work into it.  It will allow me to easily adjust the controller-to-USB-board arrangements, to see how easy it would be to modularize the inputs…so could I have a module of 6 buttons that I can swap out with a joystick or with 2 buttons, so that I can switch between Gauntlet, Street Fighter, Joust, and Karate Champ configurations?  Or will it work to just have one big board with 4 joysticks and 6 buttons for each joystick, and just disable the inputs that aren’t needed for each game (using two different players’ joysticks and no buttons at all for Joust)?

After a few weeks of experience, I’ll be able to tell if I just miss standing in front of an arcade, or if having to use widespread joysticks annoys me for Joust or if the 4 unused Street Fighter buttons annoy me for Gauntlet, or 5 unused buttons annoy me for Dig Dug.

I think this is where I’m leaning, however: one big board that has all those options.  Hopefully the unused buttons or stations won’t annoy me. Because that will really provide the maximum number of games without having to change anything.  And if I enjoy it playing it on a regular TV, that just saves me the hassle of trying to build something like this:


Here’s a good link for everything that goes into making a controller panel:

How to make a Raspberry Pi arcade (with NO programming)

Now that I’ve made my decision, and hopefully helped you get closer to making your decision, future installments will detail my actual buying and building process, including which controllers I’ve chosen, and why.


One thought on “MAME/Arcade Project

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s