Introduction: Homemade Arcade Cabinet

Welcome! this is my first attempt to create a MAME arcade cabinet from scratch. I built this thing some years ago and just decided to upload it to

I tried to take as many pictures I could to show the step-by-step creation process.
This project has many interesting topics in which I worked: woodworking, design, electronics, painting, programming.

If you like this project please comment!

Step 1: Cabinet Construction

I think a good blueprint is a must as a good starting point for this project. I wish I could created a 3d design but I only know a little bit about 3d tools. If you take this approach a good -and free- software to play with is Sketchup from Google.

I chose the way of hand drawing designs. Since I wanted to build an old-fashioned cabinet I looked up to the Taito cabinets designs (Alpine Ski or Jungle King for example)

Since I couldn't find any full sized blueprint of the cabinet I liked to build, I had to create it by my own. First of all, I got a small picture of the side view of an "alpine ski" and printed it out in a deskjet printer. 

After slicing the silhouette of the side view I took a small piece of squared paper and draw the design there.
The next part was easy. All I had to know was one of the measures of the real cabinet (for instance, the length from the floor to the control panel) and apply a simple rule to calculate the other values.

I got one of the measures from a cabinet installed at a restaurant. The height from floor to control panel was 92cm.

The height from the floor to control panel in the small picture was 5cm

With this data I calculated the depth of the machine, by measuring the depth of the small picture (which was 6cm) and applying the formula that gives the measure of the real depth:

real cabinet side depth = 6 * 92 / 5  = 110cm

I got all the measures of the side view with this method and created a blueprint of the cabinet sides as the construction starting point.

Based on the blueprints I started the process cutting the MDF sheets for both sides of the cabinet. Every cut was made with the circular saw except the curved cut of the upper sides. I didn't have any tool to make that kind of cut so I had to build it by my own. I did this by using a saw blade fixing one end as an axis and attaching the jigsaw to the other end. This kind of cut must be performed with a lot of care and in very slow motion because the jigsaw blade can easily get twisted.

After both sides were ready I sanded the borders to get a smooth surface.

Next, I created the inner frame. This part is the reference to build the rest of the cabinet because the control panel will be positioned just over this frame.

The distance between both cabinet sides is 66cm. I got this measurement from the control panel prototype created before. Although the cabinet can be narrower I this measure is very comfortable for two players with six buttons each.

After fixing both sides to the frame, I started with the control panel construction, as you can see in the next step.

Step 2: Control Panel

I think this is one of the most important part of the cabinet. The control panel must be strong enough to get the hits of the most anxious players.

I tried to build a solid base with a 18mm MDF but any other kind of wood could be used. I placed this support over the frame attaching it with two metalic guides on each end. (then I fixed the guides to the cabinet sides with screws).

After deciding the tilt angle of the control panel top I built the wood box. Two 18mm MDF were used to support the control panel top just to avoid any kind of bending

After the box construction I estimated the joystics and buttons place. Each player has six buttons and that is enough for most games. An additional button was placed in the upper left corner of the control panel to serve as quit function.

Other button emulates the "insert coin" and two other are placed in the control box for player 1 and 2 start. I cut both joysticks and buttons holes with a hole saw.

Finally I placed the joysticks and buttons to test the layout.

There is a 2mm gap between buttons. This distance should be the shortest you can to create a comfortable layout for the fingers. (after some tests I realized that 1mm is much better, but it was too late)

This is the component list of the control panel:

2 Red buttons
2 Yellow buttons
2 Violet buttons
2 White buttons
2 Green buttons
2 Cyan buttons
2 Black buttons
1 1 player start button
1 2 player start button
2 Balltop joysticks

I bought the buttons at happcontrols. The joysticks were bought from a local provider.

Step 3: Keyboard Drawer

My first attempt in the keyboard drawer building was very disappointing because of the low quality rails I chose.

The rail wheels broke after a while so I decided to discard it and bought another one.

I placed the drawer rails just under the control panel base.

Step 4: Keyboard Hack

I had half way done with the keyboard hack because six months before the starting of this project I built a control panel prototype just to know if it would work.

I got an old PS keyboard and removed the printed circuit board (PCB). Then I soldered a wire to each pin of the PCB (if I had to do it again, I would use a ribbon cable instead). With the maylar and the keyboard layout I was able to determine the definition of each key.

I needed to handle 24 keys:

4 keys for player 1 joystick
4 keys for player 2 joystick
6 keys for player 1 buttons
6 keys for player 2 buttons
1 key for escape button
1 key for insert coin button
1 key for one player start
1 key for two player start

Most games will work OK with this setup.

One of the most difficult things with the keys selection was to avoid the "ghosting" and "blocking" got in some cases:

What this means:

Ghosting: when you press 2 keys you got a third
Blocking: pressing certain keys combinations they blocks others

I created a reference sheet as a helper to choose the right keys as you can see in the picture.

Step 5: Speakers

This was the cheapest solution I found for the speakers system. After some weeks of research and with a small budget remaining I decided to keep this part of the project in the "cheap" highway.

The sound produced by this little amplifier is OK because of the "boxed" cabinet style. I usually play with half volume and it sounds very well.

The speaker system is the easiest part to change in the cabinet, so they can be easily replaced anytime with any other set up.

Step 6: Video

This was a little difficult because I didn't have the monitor at the time I created the blueprints. So the main problem was to get a TV that fits in the cabinet!

The old days cabinets usually had a 20" monitor. I discarded both pc monitor and arcade monitor for this project. 

The arcade monitor requires special hardware and knowledge to interface it with the computer. And a PC monitor would look too "perfect" for an old-fashioned arcade cabinet.

I chose a TV as the display hardware for my cabinet: Relatively cheap, and "plug and play" since with the RCA input there is no need of electronics addins to convert the input signals.

After two months of research I could find a suitable Fairmate 20" TV that fits very well in the cabinet. Since I didn't have the TV when the blueprints were created, I took all the measures based on my own TV. The more suitable TV should be triangle shaped (see the pictures) to fit inside the cabinet (if it is totally square it would go outside the cabinet backdoor)

In addition the TV should have other two features. 1-it should have a RCA video input (almost all the TV's have them) or S-Video. 2-it should be cheap. As I already mention, the whole project is quite expensive and I was unable to spend more money on a brand new TV. Anyway, all the new TV's I found where more cubic shaped so I discarded them all.

Once I've found the one that seemed to be the right TV for the cabinet I had to face another problem: the front control panel of the unit had a huge height. The effect of this big height is that the TV would stay too far from the upper edge of the control panel, and therefore the bezel in the bottom will be also huge and ugly. Since I can't "select" and "cut" the bottom panel of the TV (and I refused to open the TV to make any changes because of the known hazardous high voltages inside) I asked the supplier if he could rotate the CRT tube for me. The guy did the job and that solved the problem. The height excess is now at the top but that is not a problem because I will hide it behind the speakers cover.

I had to visit the TV supplier once again because the guy flipped the image vertically (mmmm... seems to be ok) but also flipped it horizontally (all the left to right action would be right to left!!). Just imagine double dragon guys walking from right to left :(

TV Out

Most of the older TV's in my country has composite (RCA) inputs and not s-video.
At the time I built this cabinet most of the video cards available had s-video output, so the only way to get it work would be to plug an adapter to the video card.

It took me about five months to find the best solution... Finally I decided to buy a TV Elite XGA unit: 

This is a wonderful piece of hardware because some of it's features:

1. It is external
2. It can be connected to any pc
3. It does not uses any driver (just plug it into VGA and voila! showing the same in the TV. Therefore it can be used with any operating system (since it does not uses any drivers). The first game I tested on the cabinet was "Wolfenstein 3d" running on an ancient 386 machine :)
4. It shows both in the pc monitor and TV
5. The changes you make on the pc are reflected in the TV (brightness,
position, height, width, etc)

In addition it supports a very long RCA wires (I tried it with a 10 meters wires installation and it works OK).
Some of the other video cards I've tried produced a very bad output with a long wire. Of course there is no need of such wire length but it is just another remarkable feature of the XGA TV Elite. It was a little bit expensive than a standard video card but it really worthed it.

I had to build a solid base to hold this heavy TV.

Step 7: Painting

The cabinet was painted with a paint roller. The painting process is a nightmare if you don't have enough room and any chances of messing things up. 
Painting with a spray can is far the best way of doing this.

I painted the cabinet inner white because I planned to use this space to store things (tools and other things)

Step 8: Bezel

The bezel:

The first thing I thought about the bezel was to get a rectangular MDF sheet and make a rectangular hole inside it with the jigsaw. I found a problem with this approach: the finishing. The bezel is one of the most visible things in the cabinet so the inner edge should be perfectly square (with straight cuts). Although with practice it is possible to do it with the jigsaw it is much better to create the bezel with four frames, and then attaching them togheter.

By using two MDF guides the borders can be fixed to them with screws (hiding the screw heads to obtain a better finishing). A good sanding is also required.

In the cabinet I installed two bezel guides on each side. The borders of the bezel rest over this guides.

The border height of the bezel in the picture #2 fits between the side of the cabinet and the side side of the TV as you can see in pictures of the installed bezel.

So there is no space between the bezel and the TV borders.

The glass:

The old machines had a glass and not plexiglass so I got a real glass for the cabinet.

After a couple of days searching for the best way to attach the glass to the cabinet I find out that the best way is the easiest: I placed it from the cabinet rear, resting over the bezel support guides. The glass bottom rests over the control panel edge fitting very well (the height of the control panel must exceed the bezel level).

As you can see in the pictures, the glass height is a couple of inches longer than the bezel. This allows to make two guides on each side for the glass. Although it is not necessary at all I think is a good support for the higher part of the glass to avoid any up and down movements.

I choose transparent glass for the project, but smoked could also be used (I don't like them because the cabinets I used to play in the old days were all built with transparent glasses). The advantage of the smoked glass is that hides the TV borders and bezel.

The thickness of the glass I choose was 0.5cm (or 0.1968503937007874 inches :) and its enough and very strong for this cabinet.

The results of the finished bezel and the glass installed over it are very good. They fits perfect with the TV.

Step 9: Backlight

I chose a small 25W fluorescent light for this cabinet. The light spreads nicely over the backlight paper. Too much light can disturb the player's attention so 25W is far enough.

Attaching the backlight is very simple as you can see in the following pictures.

In the marquee section you can see some pictures of the marquee installed with the backlight on.

Step 10: Marquee

Marquee guides:

After some failed tries of getting a tool that could make the marquee guides I finally decided to make them with the circular saw and the help of some other tools. Warning! please take care if you decide to do this, because it can be very dangerous.

Here are some pictures about the marquee guides making. At first I draw two lines according to the plexiglass thickness and then attached a piece of wood which served as a guide for the circular saw. The height of this guide must be measured carefully in relation with the height of the exposed saw to avoid cutting too deep:

After this I put the circular saw and started the cutting process in a very slow motion:

Marquee retainer:

I didn't use the classic marquee retainers you can see in other projects because I just couldn't find them in my country. I chose a very simple solution as you can see in the picture below:

I put a couple of white adhesive stoppers (one on each side) to allow an easy positioning of the marquee. I tried to put the marquee on its place without this couple of stoppers and it is almost impossible to do it.

The plexiglass is supported by the stoppers and then can be slid until the top reaches the upper guide, as you can see in the following pictures:

By putting the screws in the cabinet sides makes the marquee stay on its place. I think a more thickness plexiglass would be better but in a home environment 0.5mm should be enough.

Step 11: Coin Door

The coin door was installed in the cabinet only for decorative purposes. In the future I will connect it to the "insert coin" button so it will be fully functional with coins like a real arcade.

I got an old Asahi coin door donated to me by a friend (thanks Ricardo Carracedo). He gave me the coin door and some coins to test it. 

I disassembled the coin door and applied thinner to help removing the old yellow paint. One minute later I brushed the coin door with an aluminum sponge which quickly removed the old paint.

After cleaning all the coin door parts with a dry cloth I then applied a non gloss spray paint.

I draw a rectangle in the cabinet front cover and then cut it with the jig saw.

Step 12: Computer

This is the computer I bought for the cabinet:

Brand: Compaq Deskpro (refurbished)
Processor: Intel Pentium III 650Mhz
RAM: 128Mb
Disk: 10Gb
Operating system: Windows 2000

I used a crossover cable to copy the MAME software, the frontend and the roms from my computer. 

I installed Windows 2000 but I think that Windows 98 is a good choice too because the startup screen can be easily changed and the startup speed is much better than w2k.

Step 13: Frontend

I decided to make my own frontend because I couldn't find any just as simple as I wanted.

I found the template somewhere in the internet (I cannot remember where, if you do please e-mail me and I'll give the credits here)

Frontend summary:

    -Created with Visual Basic 6.0

    -Tested with MAME 0.84

I designed the frontend to be fully functional with the control panel by using this configuration:

        Up and down: scrolls game list one by one

        Left and right: go to the previous or next initial letter of a game.

        Player 1, button 3: displays a keyboard grid that allows to type some letters of the game name and go directly to the list position of the game that starts with that letters.

 Player 1, button 1: starts the game

Insert coin button: adds a credit

Player I and II start: starts the game (for 1 player or 2 players of course)

Escape button: quits the current game. Closes the keyboard grid. Has no effect when is pressed in frontend (in other words, the frontend cannot be quitted from the control panel).

The font type and size was customized to be nicely displayed on a standard TV screen.

Step 14: Artwork

I took the "defender's" background and added the word "arcade" and some arcade characters downloaded from

In the future I plan to add more artwork on the cabinet sides, maybe creating it with templates and spray painting.

Hope you enjoy this project as I did by building it.
Please comment if you like.