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.)
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.
- "one power switch turn it all",
- no inside keyboard,
- no inside mouse,
- no computer case,
- no floppy or DVD drive,
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.
Step 1: ATX Power Supply Power Up
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
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
- 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.
- Red wire: red signal (rgb)
- Green Wire: green signal (rgb)
- Blue wire: blue signal (rgb)
- Black wire: ground
- White wire: horizontal synchronization (H)
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.
Step 3: Control Interfacing : Keyboard Hack
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):
- 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
- 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
- Start 1: 1
- Start 2: 2
- Coin 1: 5
- Coin 2: 6
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
- AMD K6 II
- 64 SDRAM
- ArcadeVGA AGP Videocard
- Sound Blaster PCI 128
- 10 Gb Harddrive
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.
DOS (the FreeDOS folder)
DOSDRV (the Sound Blaster driver folder)
GLAUNCH (the Game Launcher folder)
MAME (the MAME folder)
TEMP (a temp file folder)
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):
SET BLASTER=A220 I5 D1 H7 P330 T6
DEVICE=C:\DOS\EMM386.EXE NOEMS NOVCPI
Also the two files MAME.CFG (under the C:\GLAUNCH\CONFIG folder), and the MAMESCAN.CFG (under the C:\GLAUNCH\ folder):
# 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
# 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
Step 5: Conclusion / Links
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.
- 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.
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: