Introduction: MAME Cabinet in 4 Key Steps

About: http://www.christophecaron.com
This Instructable is more like a guideline than a true step by step Instructable. It is about converting - rather than building from scratch - an Arcade Cabinet into a MAME Cabinet. It is more a guideline because there are many different type of Arcade Cabinets, with different setup and hardware.

Per Wikipedia, an "arcade cabinet, also known as an video arcade machine or video coin-op, is the housing within which an video arcade game's hardware resides."

I'm simplifying, but by definition you can run only one game at a time into an arcade cabinet. If you want to run another game on it, you'll have to change the proprietary hardware inside. But since we're at it, why not replacing all the proprietary hardware with a computer running MAME?

Arcade cabinet and MAME

MAME which stands for Multiple Arcade Machine Emulator is a software that allows to run and emulate approximately 3700 different arcade games such as, among the most famous ones Ms Pac Man, Metal Slug, Street Fighter II, Galaga etc.

MAME can run on many different platforms such as Windows, Unix, OS X etc. but by simply playing it on a desktop computer, even though the games are exactly the same as their arcade counterparts, it lacks the look & feel of the original arcade (see attached picture of a desktop PC running...Metal Slug with MAME).

An Arcade Cabinet conversion into a MAME Cabinet consists of:

  • removing the original proprietary electronic game board (PCB) inside a cabinet,
  • replacing it with a computer (a PC) and
  • interfacing it (display, controls, sound etc.)

This is what I detail here in this Instructable. First of all, I'd like to point out there are many different ways of converting an Arcade Cabinet into a MAME Cabinet. The way I did it is not the way, however this is the way that fitted my specifications the most.

Indeed, I wanted my cabinet to look as close to the exact thing as the original and by seeing it from the outside I wanted it in a way that no one could tell if it's a regular Arcade Cabinet or a MAME Cabinet. That means:

  • Keeping the original display monitor (in no way I wanted to use a PC screen, LCD screen or even a TV).
  • Keeping the originals pushbuttons and joysticks.
  • Being coin operated.

I wanted the hardware being as much as integrated as possible ; that means:

  • "one power switch turn it all",
  • no inside keyboard,
  • no inside mouse,
  • no computer case,
  • no floppy or DVD drive,
  • etc.

Concerning the software, I wanted something robust, low tech and low cost that simply allow from booting up, to select a game, play it before finally turning everything off.

Before continuing further I'd also like to point out while you may find most arcade games easily out of the Internet, you must (on a legal standpoint) own the original game before you can run it with MAME. When you run a game with MAME for the first time, MAME display a reminder of this type,see attached screen shot.

Build a cabinet from scratch vs. conversion

Since I wanted something as close to the original, I started with an old cabinet that I have then converted. Of course, you can build a MAME cabinet from scratch but this is beyond the scope of my Instrucable. However you can easily find many information on the Internet about how to built your own enclosure cabinet from scratch.

Let me tell you there is a controversy within the arcade community with converting a cabinet rather than building one from scratch, because some old cabinets may be very rare and unique (think about an original Space Invaders or Pac-Man game Cabinet!) ; by converting a cabinet rather than restoring it to it's original state, it would only accentuate the rarity trend, and most of all destroy a piece of history that just needed some TLC instead. So if you decide to convert rather than building from scratch a cabinet, choose it wisely ! That means choose a generic cabinet instead of a dedicated cabinet.

Get a Cabinet and Prepare it

Anyway. I found my cabinet off of Craigslist, see attached screen shot of the original ad (you can also try eBay, or your local Video Arcade) ; it was sold as "working" but coming without any game board. Also, it wasn't a rare dedicated cabinet, but more like a generic cabinet without any "historic" relevance. That's exactly what I wanted for my project and I bought it for a little over $ 100.

When you convert or even build from scratch a MAME cabinet, there are mainly four critical steps you have to go thru:

  • the ATX power supply power up,
  • the VGA to the arcade monitor hookup,
  • the control interfacing and
  • the software set up.

This is what my Instructable is about. So let me detail each steps...

Step 1: ATX Power Supply Power Up

The first thing I did when I started my conversion was to open the cabinet, take a multimeterand strip the wiring of the old game board as well as the wiring of the pushbuttons, sticks and coin mechanism .

I just kept intact the original power switch, the 110V wiring for the marquee light, the 110V wiring for the original display monitor and also the 110V wiring for the old game board power supply. Indeed this is where I tapped the standard computer ATX power supply.

Most commonly, you turn on an Arcade Cabinet with the help of one toggle switch (see attached picture), usually located on the back or on the top of the cabinet. This toggle switch commands two main components (eventually among the 110V Marquee Light):

  • The Arcade Monitor (110V)
  • The Switching Power Supply that powers the arcade system board (PCB) 110V

In a MAME Cabinet the arcade system board is replaced with a computer motherboard. In order to power up the motherboard you have to replace the Switching Power Supply with an ATX power supply (PSU) since most recent motherboards are of the ATXtype.

But keep in mind while older AT-style type motherboards had a power button that was directly connected to the computer power supply, ATX power supply does not directly connect to the system power button, allowing the computer to be turned on and off via software. So even after replacing the Switching Power Supply with an ATX power supply, the computer motherboard (unlike the Arcade Monitor) will not turn on once you hit the cabinet main powering switch.

So, how can you, with the help of one switch, power up both the Arcade Monitor and the ATX Power Supply ?

To solve this problem, I soldered together PIN # 14 (Green which is PS-ON) and PIN # 15 (Black which is COM) of the 20-pin ATX power supply connector. After this modification, the monitor and the motherboard would turn On and Off with the command of one level switch.

After the ATX power supply is installed and modified, you're able to power in the motherboard, the hard drive (which are both mounted inside the cabinet with some appropriate mounting brackets) and even the coin mechanism's light bulbs (+5V) using a 4-pin Molex connector.

Step 2: VGA to the Arcade Monitor Hookup

When you're converting an Arcade Cabinet into a MAME cabinet, there's roughly three options you can use for the display:

  • Use a PC monitor ; that's the easiest solution but also IMHO the worth solution because you're going to loose all the look & feel of an original Arcade display.
  • Use a TV with the S-Video or HDTV out of the video card ; that's a compromise between the above and below options.
  • Use an original Arcade Monitor ; what's more authentic than the original ? IMHO that's the method you have to use and none others. And that's what I'm going to outline in detail now.

In an Arcade Cabinet, video signals goes from the arcade system board (PCB) to the monitor through a harness. This harness is commonly made of 5 colored wires:

  • Red wire: red signal (rgb)
  • Green Wire: green signal (rgb)
  • Blue wire: blue signal (rgb)
  • Black wire: ground
  • White wire: horizontal synchronization (H)

Harness' can vary from one Arcade monitor model to another, but there should be a wiring diagram labeled on your arcade monitor chassis showing what wire is used for what signal. In any case you should be able to find this information in your Arcade Monitor User's Manual.

In order to connect an Arcade monitor to a VGA card, you have to solder individually the 5 harness' wires to a 15 pins VGA male connector. (mini D15) using the attached diagram.

Please also note, one some arcade monitors there's also a vertical synchronyzation wire (V) ; if there's such a wire, simply solder it together with the horizontal synchronization wire (H). That concludes the wiring part.

However even after the harness is properly rewired, the display will still not work because real Arcade monitors works with a 15 or 25 Khz refreshing rates and computer video cards displays at rates over 31 Mhz (depending on the video card model). To go around this problem, you have basically two options. Beware that plugging an Arcade monitor to a regular computer video card without the use of iether options below can irreversibly damage the monitor !

  • Set the frequency of your existing video card to 15 khz with the help of a special software called a Tweaker. This can be done directly through front-ends for MAME such as ArcadeOS or AdvanceMAME for examples. This option as one major drawback, besides its initial setup and tuning which may be tricky: you have to delay the powering of your monitor, in order to wait for the Operating System and the Tweaker to load first.
  • Get the ArcadeVGA video card from Ultimarc. This card is based on a regular ATI Radeon but was modified to work natively at a 15 khz refreshing rate. This option, even though it can be pricey (although at the price of a medium range video card), is by far the easiest because it is literally plug & play.

In all the four critical steps I'm describing here, I consider this one to be the most tricky because of the many parameters that are involved at the same time (wiring of the VGA harness, software to setup, monitor tuning etc.) and thus may be difficult to troubleshot all at once.

Step 3: Control Interfacing : Keyboard Hack

Now let's go over the controls: the pushbuttons and the sticks.

MAME use different keyboard key codes to control the game: for example you get Fire1 by pressing the Ctrl key. So basically what I did is substitute some keys of the keyboard with original arcade pushbuttons. This method is called Keyboard Hack.

You need, on top the sticks and pushbuttons, a standard PC keyboard (PS2 connector) that you take apart to take is circuit board (called encoder). A keyboard encoder is made of different electric contacts separated in 2 groups (let's call them X and Y) and by randomly connecting contacts from the group X and the group Y using all the possible combination, you get the desired key code.

The key codes used by MAME are (by default, see attached screen-shot):

Player 1

  • Up: Arrow Up
  • Down: Arrow Down
  • Left: Arrow Left
  • Right: Arrow Right
  • Fire 1: Left Ctrl
  • Fire 2: Left Alt
  • Fire 3: Space
  • Fire 4: Left Shift
  • Fire 5: Z
  • Fire 6: X

Player 2

  • Up: R
  • Down: F
  • Left: D
  • Right: G
  • Fire 1: A
  • Fire 2: S
  • Fire 3: Q
  • Fire 4: W
  • Fire 5: n/a
  • Fire 6: n/a

Generic keys:

  • Start 1: 1
  • Start 2: 2
  • Coin 1: 5
  • Coin 2: 6

With the help of the keyboard's matrix sheet (which is in contact inside the keyboard with the encoder and each keys, see attached image) and a continuity tester, you need to look which contact from the group X and which contact from the group Y to connect, in order to produce each key code used by MAME.

For example, on my encoder - each encoder is different - if I connect the contact 4 of the group X and the contact 11 of the group Y, I get the key code R (the key R in MAME stands for player 2 up).

Once you studiously wrote down in a table all the necessary combination in order to generate each key codes used by MAME (see attached image with a table for my example) , you can solder small wires on each contacts X and Y of the encoders to each microswitch contact from the pushbuttons and joysticks.

I would say this step is time consuming and can only be successfully achieved with careful planning.

However, the Keyboard Hack method I just described is obsolete (but is the most fun!). There are now on the market commercial programmable keyboard encoders, (such as the Ultimarc I-PAC) which allow to simply connect without any soldering iron all the pushbuttons and joysticks to the PS2 connector of the motherboard.

Step 4: Software Set Up

Now that most of the hardware steps have been reviewed, let's talk about the software. Well actually let's talk first on the computer I'm using, from salvaged parts here and there. Rough specs:

  • AMD K6 II
  • 64 SDRAM
  • ArcadeVGA AGP Videocard
  • Sound Blaster PCI 128
  • 10 Gb Harddrive

It may appear completely outdated, and it is, but it's actually enough to run most games emulated by MAME. (however don't try to play digitize games such as Mortal Kombat or NBA Jam!). Please note I did not include a floppy drive or a CD/DVD drive since it will be irrelevant for the use here: I just temporary plugged a CD drive just to do the initial install and setup.

Besides the games that are in fact single computer files called ROM which contains a copy of the data from a read-only memory chip from an arcade game's main board, I'm using three different softwares:

  • First, the Operating System: I'm using Freedos which is a free and open source Operating system belonging to the DOS family. Just download Freedos from their website, burn the ISO file to a CD, launch the CD at the boot and follow the installation steps in order to install it on your harddrive. I'm also using a DOS sound card driver for the Sound Blaster PCI 128 that you can download from here. After downloading it, unzip it in the root of your harddrive (i.e. C:\). Then, go to the SBPCI folder and run install.bat. You can then delete the install folder SBPCI. At the next boot, the sound driver will be loaded with the execution of the autoexec.bat.
  • On top of this I'm using Mame for Dos. There are many different versions, I let you Google it (or Bing it) or you can use this version here. After downloading it, unzip it in a folder called MAME in the harddrive's root (i.e. C:\). Then copy all your game ROMs in the MAME subfolder called ROMS. Freedos and MAME for Dos make up the back-end.
  • Since Freedos and MAME for Dos are command-line only software, I'm using a frontend which is called Game Launcher. You can download it here (choose the DOS Binary zip file). After the download is completed just unzip the file in the harddrive's root. Game Launcher will be located in C:\GLAUNCH. You'll have to edit mainly two batch files (MAME.CFG and MAMESCAN.CFG) in order to let Game Launcher where MAME and the ROMS are located in your harddrive, see bellow. Also you'll have to manually launch MAMESCAN.EXE under the GLAUNCH folder to let it create an available game menu list for Game Launcher.

After all of the above is done, your filing structure should look like this in your C: drive (also see attached image):

DOS (the FreeDOS folder)
DOSDRV (the Sound Blaster driver folder)
GLAUNCH (the Game Launcher folder)
MAME (the MAME folder)
TEMP (a temp file folder)
autoexec.bat (file)
config.sys (file)

The above is just a general guideline, you're going to need some basic DOS knowledge, and read each software documentation if you really want to do it this way, but here is the content of the final autoexec.bat and config.sys (of course you can configure / customize it to better suit your needs):

AUTOEXEC.BAT
@ECHO OFF
SET BLASTER=A220 I5 D1 H7 P330 T6
SET SBPCI=C:\DOSDRV
C:\DOSDRV\SBLOAD.EXE
C:\DOSDRV\SBINIT.COM
C:\DOS\SMARTDRV.EXE
PATH C:\;C:\DOS;C:\MAME;C:\GLAUNCH
CD GLAUNCH
GLAUNCH.EXE

CONFIG.SYS
DEVICE=C:\DOS\HIMEM.SYS
DEVICE=C:\DOS\EMM386.EXE NOEMS NOVCPI
DOS=HIGH, UMB

Also the two files MAME.CFG (under the C:\GLAUNCH\CONFIG folder), and the MAMESCAN.CFG (under the C:\GLAUNCH\ folder):

MAME.CFG
[Emulator]
# Emulator name, i.e. MAME
name = MAME

# Short description of emulator, i.e. Arcade Machines
description = Arcade Machines

# Location of emulator, i.e. c:\mame
directory = c:\mame

# Name of emulator executable, i.e. mame.exe
executable = dmame.exe

# Global options passed to emulator, i.e. -sound 1
global_options = -soundcard 1

MAMESCAN.CFG
[Main]
# The path to the MAME executable
mame_executable = c:\mame\dmame.exe

# The path to the MAME ROM directory
mame_rom_directory = c:\mame\roms

# This is a base path to use for the Game Launcher files to be
# created. Two files will be created by appending ".rom" and ".map"
# to this base path.
base_configuration_path = config\mame

Finally, to customize the control for Game Launcher you'll have to edit the section # Key mappings of the file GLAUNCH.CFG (under C:\GLAUNCH\).

Now that Freedos and the sound driver are properly installed, MAME is installed with it's ROM in the subfolder and Game Launcher is installed and configured, here is what happen when I turn on my cabinet:

  • Initial power up - BIOS screen is displayed
  • FreeDOS boots
  • AUTOEXEC.BAT & CONFIG.SYS starts to load
  • Sound card driver loads
  • GLaunch loads

From here I can select the game I wanna play from a list, using the sticks and the push buttons. I select a game, which is then launched with MAME for Dos and can then play with it. I have attached an animated picture that simulates what happens when I boot my machine.

Step 5: Conclusion / Links

I have now reviewed each of the four key points for converting an Arcade Cabinets into a MAME cabinet.

Since it wasn't the primary objective of this Instructable, I deliberately overlooked the aesthetic aspect of it (you can find many different side arts, marquee art , control panel art or even plastic T-molding at online stores such as MAMEMarquees or ArcadeOverlays) or how to built your own enclosure cabinet.

I also completely overlooked the sound hardware part, but there's not much to say about it: it's just basically a sound card and just the matter of integrating a speaker inside the cabinet.

I have put together a set of picture of my MAME Cabinet on Flickr and you can take a look at it here to get some inspiration (or not) since you can see some details I overlooked here like the mouting of the motherboard inside the cabinet, the support bracket I custom made for the extension cards (PCI Sound Card and AGP Video Card), harddrive mouting brackets etc.

To end, let' me briefly review some links of interest:

  • Like on any topics, the online collaborative encyclopedia Wikipedia has some good articles of interest: about Arcade Games in general, about Arcade Cabinets and about MAME.
  • The official MAME website where you can download the latest version and read some related documentation.
  • The website MAMEWorld claims to be the "Largest MAME resource on the Internet" and I frankly believe this claim to be true ; a ton of information about various software, tips projects and so on.
  • Dos MAME support is I believe the most complete website documenting a DOS Arcade Cabinet running MAME. Great stuff there.
  • MAWS is THE database where you can find information about any games available for MAME ; a reference website !
  • KLOV for "Killer List of Videogames" is a full database of the different arcade cabinets produced throughout the years: 4000+ machines listed !
  • The BYOAC Wiki contains some really exhaustive information for whoever wants to build their own MAME Cabinet.
  • You got a problem, have questions or would like to show off your newly built MAME cabinet ? The BYOAC Forum is probably the most active forum of interest where you can some very resourceful and knowledgeable people.
  • The official Freedos website where you can download the latest installation CD or floppy disk as well as the related page, on Wikipedia of course.
  • The official website of Game Launcher, unfortunately the development has stopped in 2003, but Game Launcher is still a great a functional piece of software.

Some online stores I personally tried and was very happy with:

  • Ultimarc where you can find, among many other thing the ArcadeVGA Video Card, the I-Pac or even sticks and pushbuttons. Shipping from the UK with no problems at all. Really a great website.
  • MAMEMarquees or ArcadeOverlays are websites where you can order any type of graphics for your cabinet. Has many reproduction or can even do custom work, as you wish. I tried them both, excellent quality and service. Great stuff.
  • Finally, a book "Project Arcade: Build Your Own Arcade Machine" by John St. Clair Wiley Publisher that may be considered as THE Bible within the MAME community because of the thorough information it contains.

This concludes this Instructable. I hope you had enjoyed it !
Of course, feel free to ad any comments, remarks or questions below. Thanks !

You can view two shorts videos I made that summarize this Instructable: