Rio - The Make Class Blog
This instructable is for those of you who like to game but missed or want to relive the times where those addictive coin sucking machines were on top of the game food chain.
There are a couple of instructables about arcade cabs already but none of them are like the classic style, two player, street fighter cabinets which I think are the most versatile and fun to have. Also this is made by a student without a lot of money making it a bit more accessible. (Not everyone has access to a metal workshop)
I'll explain it in three parts focusing on different sections of the cab. These are, the computer, the controls and the cabinet itself. Note that, just like all instructables, you do not have to follow my exact steps. There is a lot of room for customization. Therefore the cab i've made is not very esthetically pleasing. Not yet anyway, it's still a work in progress.
If you need more clarification or maybe an extra photo or something just add a comment.
Maybe i'll just shut up and get on with it then.
Step 1: Computer - the Stuff I Used
I imagine that you guys are mostly interested in gaming so I'll just start where i started, the games.
These day's it's not uncommon to have an old spare computer somewhere in the house and if you don't have one it's easy to get one. The emulator the computer is going to run is MAME, Multiple Arcade Machine Emulator. In order to get some kind of performance it is recommended that you at least have a
Pentium III processor
256 MB of RAM
a dedicated graphics card ( anything from the NVidia GeForce2 and up, or comparable ATI card will do)
As always the better your system specs, the better your games will run. But the operating system of choice will also be a factor.
I went for performance and grabbed my old and trusted Sony VAIO.
It has a
Pentium IV - 2.4 GHz
1024 MB of RAM
NVidia GeForce4 MX 440
This is overkill i know but i did it anyway.
Especial because i will be running a Linux distribution on it.
The next few steps will not have any pictures because there just isn't much to see. If you really want some screen captures just ask and I'll add it as soon as possible.
Step 2: Computer - the OS
As said before I wanted to use Linux on the machine because of it's stability, speed and the ability to completely customize it. And also because a license for windows would just up the costs for the machine. But don't worry all you windows lovers I'll try to give you some information and directions too.
The idea is to make it a single button boot and shut down machine. One that boots straight into the game selection screen. Sounds simple enough right.
To get the computer to boot you will of course need to install an OS. I'll assume that you already know how to install one so i won't be covering this here. I do recommend to install your OS to one partition and your game roms collection to another so you can easily install different operating systems and experiment with them without having to copy the roms again and again. In linux the simplest thing to do is to create 3 partitions; one swap partition roughly double the size of your RAM, one partition for your root and a home partition for the roms.
For the people interested I used a linux distribution called Arch Linux which is intended for advanced users but has great documentation and community, this is the distro if you really want to learn linux.
For everybody not so familiar with linux Ubuntu is one of the fastest, most stable and user friendly operating systems that i have ever seen. And it's free! It's worth a look at even if you don't intend to run Linux as your system. Be sure to check out the Firefox start page, it has a lot of information about how to use Ubuntu.
If you get stuck in any way, always consult the documentation first. The linux scene is known for it's well documented programs. A handy program to get information is "man" short for manual. Just type in any command line terminal:
where 'program' is of course the program you want information about. Like:
Step 3: Computer - the Emulator
Now that you have your OS running it's time to install MAME.
There are a number of different versions and styles, all with their advantages and disadvantages so it's up to you to choose which one you like. The windows users should probably just use the original MAME. The linux users can use SDLMAME which can be found in your distributions repositories. Be sure you also have installed the appropriate graphics driver, it will give you a significant speed boost.
To test if you're setup is working just drop your roms into the folder indicated by your MAME program. And open command line terminal (yes windows users it is a command line based application. If you can't remember where it is hidden just click Run in the start menu and type CMD and press enter). Now type this:
for windows users, be sure that you are in the folder where you installed MAME. Windows isn't smart enough to execute programs that aren't in the direct vicinity.
You can do this by typing cd C:\the\path\to\mame\
sdlmame name_of_the_rom_you_want_to_play.zip <-- for linux users
But where do i get these roms might you ask. Well that is something you must find out yourself.
It is iligal to download and use the games if you don't own them. But you wont be hunted down so don't worry, unless you are making a profit with it.
The fact that i own some of the games PCB's make it legal for me to play them on my machine.
So if you just cant sleep just go look around on e-bay or something and find some arcade PCB's, note it doesn't matter if they still work or not.
MAME World Has lots of information about MAME and roms.
Also you might be wondering why my roms end with .zip . This is because the program expects it to be archived. If you have unzipped every game you have, bad move. Just dump all your roms in their archived form in the roms folder.
If your game is now dancing in front of you then you have MAME working on your computer.
To know the controls read the documentation, it has lots of information about all the options you have in MAME.
Note: not all arcade games work, MAME was developed so the games would not be lost in time, it is essentially an archiving project. So try a few games. Metal Slug is always a winner.
Step 4: Computer - the Frontend
Now you can't imagine you'll always want to have a keyboard dangling somewhere on your cab to input commands. Luckily there exist quite a few front ends for MAME. We are going to use the excellent frontend called WahCade! which is a port to linux from the windows version MAMEWah. The front ends are customizable in themes, layouts and lots more. Just check out the sites for screenshots.
It is probably not in the standard repositories but the sites contain all the install information that you need.
(sorry windows users i have no experience with MAMEWah so your on your own here. However i do know that WahCade! is a near 1 on 1 port so it's possible that every thing is interchangable)
When you got it installed just run
and feed it all the information it needs. When your done let it generate a list from your roms folder.
This will ensure that when you are in the game selection menu, you will see the full name of the game instead of the filename (ssf2tu for example). To check if it works just launch WahCade!
The first time wil always take longer than the rest because it needs to parse all the roms that were generated in the setup. Give it a few minutes.
When it's running notice that you can navigate with your arrow keys and standard MAME input controls, which is a big advantage for us because we want to build the actual arcade controls that use the standard MAME input keys. Again for exact controls and options consult the programs documentation.
Step 5: Computer - Automation
Our next goal is to make it a one button push from boot to game selection screen. We need to eliminate every keyboard input that is necessary
The first thing you stumble upon is the login screen. Except windows users, they get logged in as administrator automatically which is not very secure. I recommend everyone to create one simple user with very low permissions so you can't accidentally screw things up.
Now setup your user to be logged in automatically.
If you've chosen Ubuntu as your OS then you are running the GNOME desktop environment, this comes with the session manager and login screen called GDM. The settings for autologin can be found under System > Administration > Login Window.
Switch to the security tab, check Enable Auto Login and chose your user. Done
Users that use KDE as desktop environment have KDM as session manager, its options can be accessed through the KDE control center.
If you have different desktop environment or session manager consult the documentation on it. Virtually every session manager has an autologin feature.
Windows users can edit this option in the control panel accessible from the start menu.
Now for the frontend to start upon login. This is an easy thing in linux because it is scriptable in any desktop environment (again windows users are on their own, it is definitely possible).
Ubuntu users can go to System > Preferences > Sessions then click the Add button and fill in the form making sure they fill in 'wahcade' in the Command field. Again KDE users can use the KDE control center, others have to go through the documentation.
To test it just reboot your machine. If it doesn't work check your settings and try again. To turn your computer off just press the power button once quickly and it should gracefully shutdown. By the way don't worry if you accidentally or deliberately turn the power off without proper shutdown. Linux is very robust and will take the impact no problem. Windows users please try to avoid it.
You are now done installing your computer.
Step 6: Computer - Customization Tips
The cool thing about having your own arcade cabinet is that you can customize it as much as you like. The OS is of course a part of it.
Try to get rid of the text you see when you start the computer and try to change the Ubuntu logo or windows logo into something you've made yourself.
For linux you should take a look at Usplash.
For windows a quick google search can do wonders.
Also try to customize the frontends theme, maybe to something that matches your favorite games or the exterior of your cabinet.
WahCade! also has a feature to play a movie when starting up. You can create any movie in any motion graphics package and play it every time you start your machine.
It can also function as a music station, playing random music from the indicated folder.
Another cool thing to do is to create screen shots from your games and link them to the menu items, that way players can quickly see what kind of game it is. These screen shots are also used as a screen saver if enabled. Otherwise it will use the xscreensavers which are also very nice (GLMatrix and Flying toasters to name a few).
As you can see lots of customization options. Again look through the documentation for all the options.
Next up the arcade controller.
Step 7: Controller - Layout and Parts
We are getting closer to the real deal here. The next step is to make the controller with all the buttons and joysticks like the real arcades. This WILL cost you money, these parts are made to be durable and easily fixable so they cost a bit.
I got mine at ArcadeShop.de which was closest to me since i live in the Netherlands. Most of you will probably go to Ultimarc in the US. UK people can go to Gremlin Solutions.
Before I continue I have to point out this site ArcadeControls. It helped me tremendously in building my entire cabinet. BE SURE TO CHECK IT OUT!
So what do you need? Well you can use just about anything you can think of in terms of layouts.
I looked at a lot of games and came to the conclusion that the Street Fighter style setup was the most universal one (and of course most compatible with Street Fighter).
This layout consisted of one joystick and six buttons per player, along with a player one start button and player two start button. What we also need is a button to tell the computer that I've thrown in a credit, It is after all an arcade machine.
Do a bit of math and you'll see that i needed 15 buttons and 2 joysticks.
Note: There are a lot of types of controls in arcades, like spinners for Arkanoid games but they would just make this instructable more complicated. ArcadeControls has all the information you need on them so you can experiment with them, just make sure your keyboard encoder can work with them (see below).
These things do not come with USB cables naturally (imagine 17 USB cables...). Al these things work just like simple electrical switches, even the joysticks work like that. In order to connect these to the computer we are going to use a so called keyboard encoder. This thing takes a simple electrical current, turns it into a key press and sends it to the computer through USB. The one we're using is a specialized version developed by Ultimarc for mame driven computer arcade machines called the I-Pac. They come in all sizes and prices and allowing you to reprogram them for your own custom layout and buttons. i
With a bit of scrolling I found the perfect variant the I-Pac VE. It was equipped with enough inputs for two players with six buttons each, a joystick, start button, coin button and four extra inputs. at a very reasonable price. The only downside was that when the power goes down the chip forgets the customization you programmed in to it and defaults back to the MAME controls, which for our purposes is just perfect.
My total cost was about € 115,- shipping included. This was the most expensive part for me.
Step 8: Controls - Mounting the Buttons
Now it's time to start building.
Here are a couple of things we're going to need:
- Wood, as a mounting surface. You can also use metal which is cool but it's hard to work on.
- Stuff to work with the wood, like a saw, drilling machine with drill bits for bigger holes.
- Some screws or nails and a screw driver or a hammer.
First you have to decide what size the board is going to be, this maybe difficult since you may not already have a cabinet or a plan for a cabinet to take measures from. I had already bought a broken cabinet so i already knew mine had to be 54 cm in width and 13 in depth and make sure the wood isn't thicker than the length of the buttons.
After you've decided that you need to draw out the layout you had in mind. Just keep in mind the sizes of your buttons and the lower part of the joystick, it also needs room at the bottom. Also keep in mind that the I-Pac also needs to be mounted there. (ok it doesn't need to be on the same board but it's handy if you need to transport it or something.) Check the images for my solution.
As you can see I slightly angled the buttons to be a bit more ergonomic and to make them fit better.
The size of the holes are naturally the same size as the buttons diameters, the hole for the joystick has to be the same size as the buttons, otherwise it probably won't move. I think that the standard size is 28 mm.
To mount the buttons you must first click off the micro switch at the lower end, then screw off the ring. After that put the button in the hole, screw the ring back on and click in the micro switch. The joystick is a bit trickier, depending on the joystick you have. Any way you must separate the stick from the lower half. Then mount the lower half to the bottom of the board with the hole exactly centered and the micro switches facing each side straight. Now put the stick back trough the top and secure it again.
Step 9: Controls - Wiring the Buttons
Now for the wiring we need this:
- Electrical wire, the thin kind. Be sure to get at least two colours. One for ground and one for the rest.
- Some clips to put on the wire ends so we can connect them to the buttons easily.
- a wire cutter, stripper and a grip.
- maybe some ti rips or tape to keep things together.
The first thing we'll do is hook up all the buttons to the ground on a per player basis. Cut one of the
wires in pieces big enough to jump from button to button. Then take two wires and strip their ends, one end goes in the ground (gnd) pin on the I-Pac of player one (my ground wire is red). The other end together with an end of the other wire will be clamped in the clip with a grip. Strip another wire and do the same with the last wire and this one. Every time you clamp two wires together you slide the clip onto the ground pin of one of the micro switches of the buttons or joystick. It's the pin with the 90 degree angle. Continue until all the micros switches have been linked of player one.
Now cut the other colour wire in pieces long enough to go from every micro switch back to the I-Pac. Strip them and put a clamp on one end, the other end goes into the I-Pac in the corresponding pin.
Every micro switch has 3 pins, the big one with the 90 degree angle in it is ground. The other two are the ones transmitting the signal to the I-Pac. Now which one should you choose? One of the pins is constantly transmitting until the button is pressed. It then stops until the button is released. The other pin does the opposite which is exactly what we need. You can tell which is which by the markings near the pins. It either says NC or NO, which means Normally Closed and Normally Open respectively. You need the NO pin, because an electricity current can only flow in a closed circuit so we need to press the button to close the circuit. If it doesn't say NC or NO it might be represented by an open and a closed bridge.
A word of caution: when wiring the joysticks you actually wire it mirrored. If you would pull on the stick the upper micro switch would be pressed. If you push the stick the bottom one will be pressed. The same goes for left and right. If you've done it wrong you'll notice when you're playing, your character will do exactly the opposite of what you want him to do.
Now just plug the I-Pac in one of the computers USB ports and fire up the computer. It should all work and you will be able to play with your real arcade controller. The cabinet might be missing but we'll fix it.
If some buttons don't respond check another button that's further down the chain, if it works the ground wire is connected like is should be. You should then check the connection to the I-Pac. If it still doesn't work check the MAME controls, maybe the button isn't mapped jet this can be on a per game basis.
Step 10: Cabinet - Building It All
You could go and build your own, that would be cool. But you can also be a bit lazy and still have good quality stuff. Go search around on eBay or wherever and maybe someone wants to get rid of one.
I found one in Belgium just over the border. The guy gave me two real arcade monitors (both broken sadly), a big box full of spare parts an about 12 games, including a working original tetris (might even be worth a lot of money :-P ). A total of € 40,-
So you have a cabinet, now what? We just need to put everything together. We are going to empty the cabinet from it's old inhabitants. Remember to save everything, it might be useful or worth some cash!
But first check the monitor. If it still works then maybe you can easily connect it to your graphics card. It is rare that someone sels you a cabinet with a working PC compatible monitor but hey it wouldn't be the first time. If it doesn't have any suitable connections just get it out of the cabinet, it will save you a lot of headaches. Instead put in a nice 17 or 19 old CRT monitor, it'll do the colours really good and your computer will automatically recognize it.
If the old mount points from the old monitor are still there the i recommend that you use them. It will save you a lot of work and the monitor will be at a nice predefined angle. I had to do it a bit more primitively but it worked. I had to install a board to hold the monitor up and used kitchen rolls to stabilize it. The monitor i have installed now is a 17 HP monitor which will remain there until I can find a bigger one.
Next I removed the old controls which were horrible and installed my own. I used a very long hinge to secure it at the bottom so if something goes wrong I can fix it fast an easy. I glad i did that because i needed to do it three times already! The board was wide enough to stick between the two side and needed considerable force to pull it back so no need for locks or something.
Then the coin slot door was removed and i put my computer there on the side held in place by a couple of wooden beams. Not very pretty so my dad made a nice cover for me from zinc with a hole in it for the power button.. I still need to find a big button thing to turn my computer on. My monitor is behind glass and so are my computer speakers which i simply laid on top of the monitor and taped them tight until i find some better ones. But because they are behind glass i can't turn them on so they are always on. It's a good thing they have toggle buttons.
For power I just used a power cord with multiple outlets, three in total running out through the back.
Step 11: Room for Improvements
Well it works and i'm really happy with the end result even though it's still in need of paint and a bigger screen and some other small things.
I hope this instructable was a help to you, this was my first one.
Please excuse me if some things aren't clear i've been typing and arranging this for almost 7 hours straight.
Remember this is still a work in progress, it can get better with your help! If you have any questions, requests or comments pleas use the comment section and i'll try to answer as soon as possible and update the instructable accordingly.