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 instructables.com
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 :(
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 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 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
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:
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
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)
-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 localarcade.com
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.
2 years ago
Nice work! built a worse quality one myself using a plug and play and an RF modulator... No idea how to use MAME, so I think I'm good for now XD
4 years ago
Hi has anyone gotten a keyboard failure error
Reply 3 years ago
What kind of failure? the most common: ghosting.
If I had to do this again, i would not hack a keyboard... Just use an Arduino Leonardo instead. It has built in HID so the keyboard interface construction is very simple (and no ghosting!!). I already used it for interfacing a mini pinball with a tablet and works like a charm...
Reply 4 years ago
Any how do you fix it
Question 4 years ago on Step 1
Do you have the Blueprints for this project?
Answer 3 years ago
no blueprints :( just took some measures from old arcade cabinet at a restaurant and from a taito cabinet image i got from internet...
for the rest of the process, just try and error... Is the best way to learn things instead of following a blueprint... but anyway... like everything... is all about personal taste...
Question 5 years ago on Step 13
Since the website is no longer up, will you be able to provide the cost again? It would really help someone (like myself) on a budget.
6 years ago
Thanks for a well written instructable. This will help me a lot with my MAME project. A really nice looking cabinet!
Reply 6 years ago
Thank you CrazyBill!!
9 years ago on Step 13
Really nice build. I am planning to do something similar too. I am a programmer, and I also want to make my own front end. Could you please give me some info about how you did it? ( I do know vb6 as well)
Reply 9 years ago on Step 13
I read the gamelist file generated by Mame and then displayed it in the screen
When the user choose a game, call the mame.exe with the game name as parameter along with other ones (like fullscreen display, etc). Basically what I do is to call command line mame.exe with parameters, with shellexec32
Anyway, as I mention before, there is a much better frontend than mine called MaLa which has many cool features.
Thanks for your comment and good luck.
Reply 9 years ago on Step 13
Thanks for your reply, that was very helpful. I know about MaLa and other cool front ends, I am just the kind of person that like to do things myself. I also enjoy the challenge of doing things I never tried before! :)
10 years ago on Step 8
Hi Crusso. Great instructable. You can use a router to cut a hole in MDF and get a smooth edge for the bezel. If you setup a jig with a straight rule to control the router its actually quite easy. Youtube has a lot of videos and this is how I learnt.
Reply 10 years ago on Step 8
Thank you for your comment,
I have a router now but not at the time i built this arcade machine. You're right, it would be much better with a router.
11 years ago on Introduction
Great instructable, Carl..
Here is mine I am making..
It is a MIME, PINBALL..
Reply 10 years ago on Introduction
Reply 10 years ago on Introduction
Sorry, it suppose to say:
Multiple Arcade Machine Emulator
Reply 10 years ago on Introduction
thanks for the info
Reply 11 years ago on Introduction
Wow, that looks really cool. You should post an instructable or at least a video when you're done. It looks amazing,
10 years ago on Introduction
No more carlosrusso.com web site, I had to shut it down.
All the information is included in this project at instructables.com web site.
Thank you for writing.