Arcade Machine

Note: I'm in the process of moving my old arcade website at http://members.shaw.ca/kevinu to it's new home here at Google Sites. In the process, I will also be updating this site to reflect the changes I have made to the control interface and software over the last few years.

The old site is still accessible here: old arcade website.

Here is what I will be updating over the next while.

  • Details about the iPac control interface that I'm now using
  • An awesome new home-built spinner made from a VCR head, a 3.5" disk, and a mouse.
  • Faster computer (1.3ghz AMD)
  • Windows OS
  • Custom written menu system
  • New emulation software: Mame 0.127
  • I'm not longer using Williams Arcade Classics
  • New non-emulated software: Microsoft Pinball Arcade (using Howard Casto's wrapper)

 
 

Did you hang out in arcades in the 80's? Do the names Defender, Frogger, Galaga or Pac Man ring a bell? If so, then this web page is for you!

Through the magic of something called "arcade emulation", your PC can bring these classic games back to life by tricking them into believing they are running in their original cabinets.

Plus, to bring back the "feel" of these games, you can even build yourself a full sized arcade machine that plays hundreds of classic arcade games for a real blast to the past!

Have I gotten your interest yet? If so, then read on, you're goona love this.

 

Arcade Emulation

How I discovered emulators

I was first introduced to arcade game emulation in 1996 when I discovered a gem of a computer game collection titled "Williams Arcade Classics" sitting on a shelf in a computer store. The box described how you could play six original Williams arcade games on your PC through the use of an arcade game emulator program. The word "original" instantly caught my eye. These weren't remakes or clones, but the actual program code that existed in the arcade machines. Being a huge Williams game fan, my Visa card was instantly swiped and the "real" Defender was in my greedy little hands. I know owned a piece of arcade history.

After installing the games on a 33mhz 486 computer, I was facinated at how accurate the games looked, sounded, and played to their original stand-up arcade machines. They played exactly like I remembered them back in the 80's. I soon realized however, that the only thing missing from the experience was the feeling of standing in front of a full sized machine, with lights blaring away, sounds filling the room, joysticks and buttons rattling away, just like in my arcade days of the past. At that point I just knew that I had to build my own full-sized arcade machine.

What is an arcade game emulator?

All arcade machines have one thing in common - they have a specialized computer inside that is dedicated to playing an arcade game. The actual arcade game is basically a computer program that is stored in a special computer chip called a ROM. If you copy the game program from the ROM, and store it in a file on your computer, there is a way to play it. These ROM files are widely available for download on the internet.

An arcade game emulator is a program that runs on your computer. The emulator is able to read the original game program from a ROM file, and trick it into thinking that it is running on it's original dedicated arcade computer.

Is this all Legal?

I don't mean to scare you here, but there is something you should be aware of with regards to copyrights. Arcade game programs (ROM files) are copyrighted, so unless you've paid the game company for the right to use the game program, you're probably violating copyright laws. For example, you cannot legally have a Pac-Man ROM file in your possession unless you own an original Pac-Man ROM chip. One way to keep the arcade machine perfectly legal is to either buy the original arcade ROM chips for every game in your arcade machine or only use games you have bought. Williams Arcade Classics, which I'll talk about soon, is a perfect example of legally ownable emulated versions of some classic Williams games.

Try playing some games now!

Click the continue button and I'll show you how you can quickly play many of the William's games I've mentioned (yes they're legal!).

Play Now!

You can read all day about arcade game emulators, but wouldn't it be nice to play a couple of classic arcade games right now just to see what arcade emulation is all about? Well you can, right here within your web browser!

Midway has put some of their classic arcade games on their web site for everyone to play for free. These are original arcade games being emulated and require the ShockWave browser plug in. If you don't have ShockWave, don't worry, it can be easily installed from their web site for free. Also, you need to use Internet Explorer.

Show me the games! 



Arcade Emulators

OK, now we're going to learn about some arcade game emulators that you can use on your PC, which just happens to be ideally suited to power your own arcade machine.

Today, there are many emulators available, some that play a single game, and others that play many games. The decision of choosing which game emulator(s) to use in your arcade machine will really depend on the speed of your computer. Here are my recommendations for computers of various speeds.

Multiple Arcade Machine Emulator (MAME)

MAME is the ultimate arcade emulator and provides the ability to play over 1,000 unique classic arcade games. One great thing about MAME is that it is still in development. This means that problems are getting fixed and new games are being added.

MAME requires a fairly fast computer, I recommend a 233mhz Pentium or faster. If you have a PC fast enough to power MAME, this is the only emulator you'll need in your arcade machine.

 

Williams Arcade Classics (WAC)

WAC is a collection of emulated Williams games including Defender, Stargate, Robotron, Joust, Sinistar, and Bubbles. WAC was developed by Digital Eclipse. In my opinion it emulates these games faster and better than any other emulator available. It's very fast; the games are playable on machines as slow as a 33mhz 486 PC.

Unfortunately, WAC was only sold in stores and is no longer available for purchase. Your best bet on obtaining a copy is to regularly search Ebay. It's definately worth the effort to find a copy.

Here is some interesting information about WAC from Jeff Vavasour, the programmer behind this amazing emulator.

 

Chris Pile's Asteroids emulator

This is the fastest Asteroids emulator available. I've used it successfully on a 33mhz 486 PC and on a Pentium it really rocks (no pun intended!).

Chris's home page (http://members.tripod.com/~asteroids) doesn't appear to be available anymore, but you can still find his emulator all over the web. Try using Google to find a copy to download or visit our downloads page.

 

Sparcade

Sparcade is another multi-game emulator that works good on PC's as slow as 33mhz. I highly recommend a 66mhz 486 or faster though.

Visit the Sparcade website for more information.


The Computer Inside

When selecting a computer to run arcade game emulators, the general rule to keep in mind is the faster the better. Emulators, with the exception of some of the faster ones I've previously mentioned, take a lot of horsepower to provide game play at acceptable speeds. Listed here is the computer I initially powered my arcade machine with, what I use now, and what I'd like to have inside in the future.

My original system (1998-2000)

When I originally built my arcade machine back in 1998, it had a much slower computer inside. This computer provided good game play however the number of emulators it could run was very limited. The emulators I used with this setup were Williams Arcade Classics, Chris Pile's Asteroids emulator, and Sparcade.

  • i486 33mhz, 8MB memory
  • 17" monitor
  • Cirrus Logic graphics card (local bus)
  • SoundBlaster sound card
  • 210MB & 170MB hard drives
  • keyboard
  • unamplified speakers with removable speaker face

My current system (2000 - present)

My arcade machine currently has the following computer equipment inside. While it is fast for the majority of games that I play, it does suffer occasional slow-downs with some games in MAME. Slow-downs most often occur when there are a gazillion things flying around the screen. Overall this system does provides great game play and I'm not even considering upgrading it until something much faster and really cheap (free) comes along. The emulators I currently use on this system are MAME and Williams Arcade Classics.
  • Pentium 233mhz, 32MB memory
  • 17" monitor
  • Voodoo2 Banshee video card, 16MB memory
  • SoundBlaster sound card
  • 3.2GB hard drive
  • keyboard
  • Microsoft Mouse (for spinner control)
  • unamplified speakers with removable speaker face

My dream system (future??)

  • Something 900mhz or faster
  • 21" monitor
  • Fast video card
  • SoundBlaster type sound card
  • 20GB 7200RPM hard drive
  • keyboard
  • Microsoft Mouse (for spinner control)
  • Amplified speakers with sub-woofer

A friend of mine, Lance Taylor, has a 900mhz computer inside his arcade machine. Playing MAME on his machine is ABSOLUTELY INCREDIBLE!

Choosing an operating system

Before selecting the operating system, think about who will be using the arcade machine. You, the computer guru? Your wife or husband the Technophobiac? Your impatient press-all-the-buttons-at-once-and-wonder-why-it-don't-work kids? This will have a big impact on the ease of use level you want to provide in your arcade machine.

I'm going to give you some pros & cons of MS-DOS versus Windows that I hope will help you select an operating system. There are probably many more items I could list for each, but I've just listed the ones that I feel are important with regards to ease of use, reliablity, and performance.

MS-DOS

    Pros     Cons
   
  • starts up quickly
  • no shutdown required, just kill the power
  • runs arcade emulators faster
  • doesn't require a mouse
  • simple & reliable operation
  • low cost
   
  • poor driver support (will your sound card work in DOS?)
  • hard to find if you don't own it already
  • poor network support
  • it's archaic, do you know how to use it?

Windows

    Pros     Cons
   
  • good driver support
  • good network support
  • GUI environment
   
  • slow to start up
  • requires mouse or special keyboard mappings
  • doesn't like being powered off
  • runs arcade emulators slower
  • can be unreliable at times

My recommendation

If you're planning on only using arcade game emulators and will not be running any sort of other games that require Windows, then I highly recommend MS-DOS as the operating system. I make this recommendation mainly for these two reasons:

  1. The arcade machine will start up quickly - MS-DOS can start up within seconds on a fast computer. This will help prevent the "Why is it taking so long?" comments you might hear from your players.
     
  2. Simply kill the power to turn if off - turning off the arcade machine doesn't get any faster than this. Do this with Windows and you'll be watching ScanDisk the next time you turn the machine on. If you have kids, this is really important.

If you are going to be the primary game player and don't mind pressing a few extra buttons to control the machine, will always be around to help others, and will be using a fast computer, then by all means use Windows. Just keep in mind that you may need to do some additional keyboard mapping to provide access to any Windows features you may need such as Shutdown. Windows can give you some advantages over DOS, such as networking which is handy for remote configuration, and good video and sound driver support. You'll want to seriously consider adding a trackball though, not just to play Missile Command, but to enable you to control the mouse pointer.


Game Menus

When I set out to build my arcade machine, I had one major goal in mind: the machine had to be easy enough for anyone to use without my help. I wanted my kids, wife, buddies, whoever, to be able to turn it on, start a game, and say "Hey, this is really cool!" instead of "How do I use this thing?"

Start the games already

OK, so far you have a computer, an operating system, and some arcade game emulators. How do you pull this all together and make it all easy to use? Fortunately, several people have already put some thought into this and have created menu programs just for this very purpose. There are several good game selectors, also known as front-ends, that will list the arcade games available on your machine and allow your players to select and start a game.

ArcadeOS (for MS-DOS)
ArcadeOS was designed specifically for PC based arcade machines and is the best game selector available. It features simple operation, supports multiple emulators, and is highly configurable.

One feature I like the best is it's ability to lock the configuration. This is handy to keep kids or non-computer people from accidently screwing things up.

Visit the ArcadeOS web site for more information or to download it.

 
ArcadeFX (for Windows)
This is a Windows based frontend for MAME. It is very visually appealing and looks like it has a lot of potential. Definately worth a look.

Visit the ArcadeFX web site for more information

Thanks to ZeroEffect for the tip!

 
Arcade@Home (for Windows)
This game selector is for Windows based machines. It appears to be quite popular. However, I have never used it.

Visit the Arcade@Home web site for more information

Eliminate startup screens

Something else you can do to make the arcade machine just a bit easier to use is to eliminate any sort of title or option screens that appear before a game starts.

The source code for MAME is freely available. If you are capable, you can patch out the MAME startup prompts and recompile the program. I've done this and it's great to never have my visitors be distracted by prompts they know nothing about.

I have patches available for Williams Arcade Classics and Chris Piles Asteroids emulator that eliminate their normal start up screens. See the downloads page for more details.

Additional help features

Here are a few other features I've implemented to help keep the arcade machine simple to use:

  1. Upon power-up, the game menu is automatically displayed.
  2. I have a small instructions sticker on the front-glass that lists the joystick and buttons used to select, start, and exit the games.

Building an arcade cabinet

Playing classic arcade games on your computer using it's keyboard and/or joystick is really fun and all, but something just seems to be missing - the "feel" of an arcade machine. Playing these games on a full sized arcade machine with real arcade controls really brings these games back to life.

You have two options for an arcade cabinet: buy and restore an original, or build your own. The next several pages mainly discuss how to build your own cabinet. If you decide to buy instead of build, you still might find some of the information helpful to get your computer and controls installed inside. I highly recommend building your own cabinet because it can be a very rewarding experience.

Cabinet components

First, let's start by learning some arcade cabinet terminology to help get familiar with the various parts of an arcade machine cabinet.

Pretty well all upright standing arcade machines were and still are built using the same basic cabinet design. The components of this Williams Defender machine have been labeled to help you become familiar with the terminology used when working with arcade machines.

Cabinet components


Cabinet Design

There are hundreds of different arcade cabinet styles you could reproduce. You could even design your own. I modelled my cabinet after my all time favorite classic arcade game, Williams' Defender.

If you search the web looking for cabinet dimensions, you most likely won't find very many. If you find a cabinet style you want to copy, you can try to find someone that actually owns an original and ask them to take some measurements for you. You can also try visiting an arcade that has the cabinet you're interested in and take your own measurements.

For my project, I wanted the cabinet to resemble Defender as closely as possible which meant I had to get ahold of the actual cabinet dimensions. After posting a request for Defender dimensions on the rec.games.video.arcade.collecting newsgroup, I received a reply from Brien King who sent me the cabinet dimensions I needed. Click here to see the dimensions, courtesy of Brien King

Here is a list of recommended resources to help you choose a design:


Materials & Tools

Materials

These are the materials I used to build my Defender style cabinet. The materials you'll need may vary depending on the cabinet style you choose and your building skills. I was able to buy everything at a local hardware store.

Qty Description Unit Price Total
3 4' x 8' x 5/8" particle board 11.00 33.00
1 2"x4"x10' spruce 4.00 4.00
1 30" x 33" clear acrylic panel 9.00 9.00
1 1 1/2" particle board screws, box of 100 4.00 4.00
1 Package of 4 turn latches 3.00 3.00
4 Gloss black spray paint (buy good paint!) 5.00 20.00
1 Yellow gloss spray paint 5.00 5.00
1 Red gloss spray paint 5.00 5.00
    Total $83.00

Tools

Circular Saw Table Saw Hand Saw Jigsaw
Saw Horses Framing Square Tape Measure Screwdriver
Sanding Block Sandpaper Soldering Iron Solder
Carpenters Glue Tack Cloth Masking Tape Drill & Drill Bits



Building the Cabinet

The following instructions describe how I built my cabinet. I'm a programmer not a carpenter - if you know anything about carpentry you may want to use your own contruction techniques.

Cut out the side panels

The cabinet is constructed mainly out of 5/8" particle board. Begin by clamping two sheets of 5/8" particle board squarely together. We're going to cut out both side panels at the same time so they turn exactly the same.

Using the side panel dimensions you obtained, draw the outline of the side panel onto the top sheet. Then cut out the side panels using a circular and/or hand saw. After cutting, keep the panels clamped together and sand all the edges nice and smooth and square. After sanding, unclamp the panels and write "inside" on the inside of each panel. Now stand them up and take a moment to get a feel of what your cabinet is going to be like. This moment really got my adrenalin pumping.

Optional Enhancement: If you're thinking about adding T-molding to the panels, now would be a good time to prepare for it. While I haven't tried this before, I think you should be able to use a router to cut the groove which the T-molding would slide into. Practice on a scrap piece first just in case the router shreds the partical board to bits.

Mark the panel positions

To help determine where each of the remaining panels (kick plate, coin door panel, speaker panel, etc.) are attached to the side panels, the end of each panel is outlined onto both side panels.

Starting on the side you marked "inside", draw an inset line 1/2" all the way around the outside edge of the side panel. Then, as shown in the picture below, mark the end of each remaining panel by drawing a parallel line 5/8" inwards from the existing inset line. Finish off by marking the panel ends.

Pay careful attention to how the panels overlap each other. This is done to minimize the gaps which appear when two panels are positioned together.

Cut out the remaining panels

With the end view of each panel draw onto the side panels, you are now ready to begin cutting out and fastening the remaining panels.

Starting with the kick-plate, measure the height of the kick-plate panel using the markings from the previous step. Cut out the panel from a piece of partical board and sand the edges. All the remaining panels are 24 1/4" wide. Now have someone hold both side panels in an upright position on a flat level surface and move the kick-plate into position aligning the ends of the panel with the markings on the inside of the side panels. Screw the panel into place using 1 1/2" particle board screws. Drill a 3/32" pilot hole before inserting each screw or else you'll cause the wood to bulge or split. The drilling is tricky so practice a few times first!

Repeat the above step for each of the remaining panels with the exceptions listed below. Work your way up the front side of the cabinet, over the top, then down the back side.

  • The control panel is not screwed directly to the side panels. Two support rails are added to hold the control panel in place. The braces are screwed to the side panels, then the control panel is screwed to the braces.
  • The rear-door is cut to size during this step but it is not screwed to the cabinet.

Here are a few photos of my cabinet after the construction phase. Use them to help identify all the panels and their relative positions and to get an idea of how it all fits together.

Add the monitor and computer shelf

The monitor simply rests on a shelf which is supported by two braces. To determine the shelf position, simply prop the shelf and monitor up inside the cabinet in their approximate positions. Adjust the monitor height and viewing angle. Then mark the shelf position and screw screw it in place. Add 2 2"x2" braces to securely support the shelf.

The computer shelf is where your computer will be stored. Make sure you mount it it close enough to the monitor so that the video cable reaches.

Rear door

Add 4 door stops to the cabinet to hold the rear door in position. I used four turn latches to hold the door in place.

Mounting speakers

The speakers are mounted to the speaker panel. The speakers I used had a flat detachable face which made them easy to mount. The back speaker enclosure was removed and discarded. A small hold was cut into the speaker panel to allow the rear of the speaker to fit though. This allowed the speakers to be mounted flush on the panel. The speakers are held in place by screws.

Mounting the computer

Mounting the computer is simple, just set the box on the shelf and connect it all up. Pay careful attention to the cable lengths so that all the cables fit.

If you really want that arcade machine look inside your machine, you can remove the computer from the case and mount it directly on the shelf. At one time I had removed the motherboard, powersupply, and drive bays and mounted them directly on the CPU shelf. This was neat, but soon realized there wasn't much protection from bumping the components while tinkering inside. Cooling was also a concern because there was no longer any airflow over the components. I have since put the computer back in it's case.

Current setup Old Setup


Front Glass

The front glass, also known as a monitor bezel, hides the area outside of the visible screen viewing area and makes the arcade cabinet more attractive.

Add the supports

Mount a strip of wood inside both side panels as shown in this photograph. These strips are used to support the front glass.

Create the front glass

The front glass is cut from a sheet of clear acrylic. The inside is painted black with the exception of a screen viewing area which is left unpainted.

Note: If the acrylic panel comes with a protective adhesive paper, leave it on until the cabinet is finished to help prevent scratches.

Cut the acrylic to size and temporarily mount it in the cabinet. Acrylic is difficult to drill, so I recommend some type of clamp to hold it in place. My front glass is not secured, it is held in place by gravity. Next, install and position the monitor inside the cabinet, so that the front of the monitor screen is flush with the acrylic. Make sure the monitor is centered in the front glass and at the correct angle. Then trace the outside edge of the monitor onto the acrylic panel's protective paper. This outline will be used to mask off the viewscreen area, which must remain unpainted. To finalize the masked area, measure the distance from the outside of the monitor frame to the inside edge of the monitor screen glass. Use a framing square to get the mask squarely aligned to the edges of the acrylic panel. Carefully mask off the correct viewing area and spray paint the outside border using black spray paint. Gloss or flat paint can be used, both result in a glossy finish. Use good masking tape to get a nice sharp edges. Don't panic if you hold the bezel up to the light and notice that you can see through it; it's dark inside your cabinet and you won't be able see through it after it's installed in the cabinet. The front glass should turn out really glossy and sharp looking and will sure add a touch of professionalism to the cabinet. The front glass bezel is the most noticeable part on the whole cabinet, so take your time and do a good job. :)

The photo on the left is my first bezel which fit a 14" monitor which has now been removed. The new 17" bezel is on the right. The plastic monitor frame is quite visible on the 17" mostly due to the camera angle. I might paint the monitor frame black some day so it's not so visible.



Coin Door

You'll need some way for your players to "insert quarters". This can be done by using either a real coin slot or a free-play credit button.

Use a real coin door

A coin door actually serves two purposes; adding game credits and providing easy access to inside the cabinet. You should be able to pick up a coin door for cheap from any arcade dealer, locate one in your area and go visit him.

A coin door has one switch per coin slot that is activated when a coin is dropped into the slot. This switch is wired to the Credit button in the emulator software. My coin switches are wired to the "3" key.

Overall I love having a coin door on my machine. Not only does it look great, but it's proved to be an excellent piggy bank. In several months my machine collected about $125 of my own quarters!

Use a free-play credit button

A simple alternative to a coin door is to install a free-play credit button on the coin door panel. This button is wired to the credit key in the game emulator program. My arcade machine initally had a free-play button before I obtained a real coin door.





Painting the Cabinet

Preparation

To prepare the cabinet for painting, I first sanded all the corners and flat surfaces nice and smooth. Next I used a vacuum and a tack cloth to remove all the dust particles from the surfaces. Then I applied three coats of a good gloss black spray paint to the front, sides, and top of the cabinet. The surface of the particle board is kind of rough, and the spray paint did not hide the wood grain. If I would have used a primer, the finish might have turned out smoother. The finish is glossy though, and I think it looks really nice.

I originally thought spray painting would be cheaper, but I ended up using four spray cans which costs more than a litre of regular paint. If I do build another cabinet, I might try using some sort of brush-on melamine paint which might cost more, but would give a nice hard durable finish. If anyone has used melamine on a cabinet, let me know how it turned out.


Click on a picture to view a full size image

Cabinet Artwork

Current status: Artwork not finished

My plan for adding side art is to create red & yellow stencils then spray paint each color separately onto the side of the cabinet. The stencils are being created by using a CAD program (TurboCAD) to trace the red & yellow patterns from an original Defender photograph. The resulting CAD drawing will be easily scalable to full size, the colors separated, and two full size stencils will be printed. After printing, an Xacto knife will be used to cut out the stencil patterns.

I created a small test stencil then tested it on a scrap chunk of wood and it turned out OK.

Visible to the right of the Defender photograph is the CAD drawing in progress. The "humanoid" head is washed out in the photo but I have another photo with a good head shot that I'll merge into the drawing. The Defender photo is from Brien King's arcade restoration site.


Marquee

Current status: Marquee not finished

In the photo below, you can barely see that I have a piece of acrylic plastic mounted in the marquee location. The protective paper has been left on until the graphics are complete. I'm going to design the marquee graphics using PhotoShop, then print it out on a large ink jet printer. The graphics will then be placed under the acrylic marque panel.

More photos will be posted whenever I finish this step.


Control Panel Overview

The control panel is where all the button and joystick controls are mounted. We'll talk about the actual arrangement of the buttons and joysticks later, for now here's an overview of how the control panel works.

How it works

The arcade buttons and joysticks are connected up to the computer through the keyboard connector. When you move a joystick or press a button, a keystroke is sent to the computer just as though you typed a key on the keyboard. For example, pressing the joystick in the up direction might send the letter "E" to the computer. Your arcade game emulator has been told that "E" means joystick up and performs that action in the game. Each control on the panel is therefore mapped to a keystroke.

Building the control panel involves mounting the buttons and joysticks in a suitable arrangement, wiring them up to a keyboard interface, and mapping them to keystrokes.


Interfacing

Interfacing the arcade controls to the computer is probably the most time consuming portion of this project. While it may appear to be difficult, it really isn't.

There are many ways to wire the arcade controls to the keyboard interface on the computer. Two of the most popular techniques I've seen are hacking apart a keyboard or buying a specialized keyboard encoder.

Keyboard Hack

This type of interfacing is the cheapest route to go and involves opening up a keyboard and using the components inside. There are two keyboard hack methods you can use:

Wire directly to the keyboard circuit board - Some older keyboards have a large circuit board inside (see pictures below). This provides the opportunity to solder the leads coming from the controls directly to the circuit board. This is probably the simplest method if you have limited soldering experience as the solder points are spaced quite far apart. However, this type of keyboard is becoming difficult to find.

This is the method I initially used in my machine and has since been replaced with method #2 below.

Click to see full size image Click to see full size image
Click to see larger images

  1. Use a keyboard encoder - Newer keyboards don't have the large circuit board mentioned above. Instead, they have a two plastic membranes with electrical contacts that are activated when keyboard buttons are pressed. These membranes are connected to a small keyboard encoder circuit that is approximately 2"x4" in size. It is possible to strip away the entire keyboard and use only the keyboard encoder. The encoder has a cord and connector that runs to the computer's keyboard port, and two groups of contacts. Shorting one contact from each group results in a keystroke.

    This technique requires a bit more work because you have to create a matrix of contacts to keystrokes. Also, the soldering requires extra care due to the small size of the encoder board.

    Warning! I have heard of one case where someone actually wrecked their motherboard while mapping their encoder matrix. Do this at your own risk and use an old crappy PC if you can!

    This is the method I'm currently using in my arcade machine and I will talk more about it later on. I'll post some pictures of the encoder soon.

Commercial Keyboard Encoders

Several companies sell keyboard encoders that work great in arcade machines. Here are two of the more popular encoders being used in home built arcade machines:

  1. I-PAC - The I-PAC (Interface for Pc to Arcade Controls) is a small board which allows connection of arcade controls such as buttons and joysticks to a keyboard port or USB port on a PC motherboard. It was designed around the MAME emulator and can be used with other emulators.

    For more information visit: http://www.ultimarc.com
     

  2. Hagstrom Electronics - Use the KE72 to interface switches to your PC keyboard input. Great for PC games! All Inputs are individual, so no ghosting can occur. Each input may be programmed to generate up to 32 keystrokes when activated, and up to 16 when released. Fast scanning of the inputs assures you of quick response to your controls. Powered from your PC keyboard port!

    For more information visit: www.hagstromelectronics.com/modules.html

Keyboard Hack vs Commercial Keyboard Encoders

There are a few downfalls that you should be aware of relating to the keyboard hack method.

Most keyboards are only capable of detecting four buttons held down at the same time. Let's say you're playing a two player game of Rampage for example. If both players hold their joysticks in the upper-left position, four keypresses are sent to the computer. Now if either player also attempts to punch or jump, the computer may not receive these additional keystrokes because the four key limit has been reached. I've had this happen on my machine and it's a bit frustrating. Fortunately, this problem is more likely to occur only during two player games or games that use a lot of buttons. I rarely see this problem while playing Stargate.

Another problem you might come across with the keyboard hack is called "ghosting". Ghosting can occur when a certain combination of keys are pressed and the keyboard sends an additional unwanted keystroke. For example, if E and S are pressed, the keyboard also sends a P. This could interrupt game play as P could be mapped to Pause in the game emulator. Personally, I've never had a problem with ghosting that I'm aware of but you should be aware it can occur.

One benefit of the keyboard hack method is it's low cost. A used keyboard can be found for a few dollars or even free. This provides excellent opportunity to give this method a try without incurring a large expense.

The commercial keyboard encoders do not suffer from the problems that occur with the keyboard hack. Pretty well the only reason I do not use them is due to their cost. A $75US encoder would end up costing me around $150 by the time I get it into Canada.

So, my recommendation is this: If you're going for the ultimate arcade machine with a gazillion buttons and don't mind the extra expense, then go for the commercial encoder. If you're on a limited budget and just want to experiment, go with the keyboard hack method - you can always upgrade later.

Additional Reading

The Build Your Own Arcade Controls website provides a lot of good in-depth information on topic of interfacing. Take some time to visit the site at www.arcadecontrols.com/arcade.htm.


Parts List

To obtain that real arcade feel, you just have to use real arcade joysticks and buttons. You can either buy used controls from a local arcade dealer, or buy new controls from a company. I chose to buy new controls from Happ Controls. They are located in Chicago, USA and have a good reputation in the arcade community. Visit their web site to view their catalog online or order a hardcopy for free.

If you decide to build an arcade machine, ORDER YOUR CONTROLS EARLY! I had the cabinet built before the controls to arrived and it was torture waiting for them to arrive.

This table lists the controls I ordered. The total price was $37.60 US (in 1998). Non-USA residents beware - I ended up paying close to $100 due to shipping charges, tax, import duty, customs brokerage fees, and the CDN to US exchange rate.

Qty. Description Unit Price Total
1 Happs Ultimate Joystick, 8 way switches, Red 10.25 10.25
1 Happs Ultimate Joystick, 8 way switches, Blue 10.25 10.25
1 Happs Pushbutton with horizontal microswitch, 1 Player Start 1.40 1.40
1 Happs Pushbutton with horizontal microswitch, 2 Player Start 1.40 1.40
2 Happs Pushbutton with horizontal microswitch, Red 1.30 2.60
2 Happs Pushbutton with horizontal microswitch, Yellow 1.30 2.60
1 Happs Pushbutton with horizontal microswitch, Green 1.30 1.30
6 Happs Pushbutton with horizontal microswitch, White 1.30 7.80
    Total $37.60

Note: I recommend ordering a few extra buttons for replacements or for future additions.


Control Layout

Putting some thought into this step is important so that your panel works well with the type of games you want to play.

Playing Tempest, Arknoid, or Missile Command with a joystick sucks. These games really require a spinner or trackball to be played well. Playing Defender with anything but the original control layout feels "unnatural". Robotron with only 1 joystick is almost unplayable. See what I'm saying here? Match your control panel the games you want to play.

Of course it is practially impossible to make a panel that works with all games so you'll have to compromise. Some games do work OK with different controls. Asteroids for example works OK using a joystick instead of buttons for direction control.

At the start of this project, I only wanted to play the Williams Arcade Classics games on my arcade machine so my control panel is very biased towards these games.

Take some time now to make a list of the primary games you want to play on your arcade machine. Then research the control layout the original games used. This will help you decide on the layout of your multi-game control panel.

My Layout

My control panel was primarily intended to support the Williams games Defender, Stargate, Robotron, and Joust. The design is modelled after Sean Riddle's design he created for his multi-game Williams machine. Even though it was designed mainly for Williams games, it works very well with a wide variety of other single and dual player games.

The controls are positioned as identified in the table below. The horizontal and vertical positions are measurements from the top left corner of the control panel to the center of the control.
Control Layout Control
#
Horizontal
Position
Vertical
Position

The control panel is constructed from 5/8" particle
board and is 24 1/4" wide and 8" high.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
3 1/4"
15 3/16"
6 1/16"
8 1/8"
11 1/8"
13 1/8"
20 9/16"
22 1/2"
5 13/16"
7 9/16"
not avail
12 3/16"
17 7/8"
19 1/4"
3 3/4"
3 3/4"
1"
1"
1"
1"
1 3/4"
1 3/4"
6"
5 1/4"
not avail
6 1/4"
5 3/8"
3 5/8"


Mounting the controls

To begin, first mark the button and joystick positions on the panel. Be careful not to place the controls too close together - you must leave enough room between the controls (mainly the buttons) for the mounting nuts, switches, contacts, etc. Also make sure you don't place anything too close to panel edges or the controls may bind with the cabinet.

Now drill all the mounting holes and temporarily mount all the controls on the panel. Do a trial fit of the panel into the cabinet just to ensure everything fits nicely together. Lastly, remove the controls and give the panel a paint job. I painted my panel with two coats of gloss black spray paint. I only painted the top and front edge of the panel because these are the only two surfaces visible when the control panel is installed in the cabinet.

Once the paint dries, re-install the controls and now they are ready for wiring.


Wiring the Controls

***************************************************
Please Note! This page is currently being re-written. I am now using a keyboard controller instead of the keyboard shown below. The updated page will reflect the new wiring method. Jan 10/02.
***************************************************

The buttons and joysticks contain switches which are activated when the buttons are pressed or the joysticks moved. These switches are wired directly to the back of a keyboard circuit board. Each button and joystick switch is wired, or mapped, to a single key on the keyboard. If you rip open a keyboard, you'll notice that each key is a simple switch which has two contacts protruding from the back of the circuit board. The control panel switches are soldered directly to these contacts. You don't have to be a real whiz with the soldering iron to do this, but you do have to be careful that you don't apply too much heat.

Click to see full size image Click to see full size image Click to see full size image
Click on a picture to view a full size image

The joysticks each contain four switches, one each for Up/Down/Left/Right. When the joystick is moved to the Upper/Left position, two switches are activated therefore two keydown messages are sent to the computer.

When mapping the control/keyboard relationship, I played all games several times using the keyboard to verify the keys I chose worked together well. The controls listed below work well with my keyboard. However, each keyboard may work differently and you should choose your own mapping. Keep in mind that most keyboards can only recognize a maximum of four keys down at a time. Also, be aware of something called "keyboard ghosting". Ghosting happens when you press two or more keys simultaneously, but the keyboard controller incorrectly reports that a third key was pressed instead. You should do some research on ghosting as it could greatly affect how well your controls work together. This is especially important for dual player games, such as Joust.

Here is the keyboard mapping used on my machine:

Control Mappings

Control# Usage
(Williams Games)
Key/Input


An additional button has been mounted out of
sight on the top of the cabinet. This button
provides access to the game options menu.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Coin Door
Options
Primary Joystick
Secondary Joystick
Escape (Quit)
Enter

1 Player Start
2 Player Start
Thrust

Fire
Reverse
Sinbomb
Spinner - not used
Hyperspace

Inviso & Flap
Smart Bomb
Insert Coin
MAME Options
numpad 8,2,4,6
E,C,S,F
ESC
Enter
1
2
; (semi colon)
' (single quote)
left-Alt
H
COM1 serial port
Space
. (period)
right-Alt
3
TAB

The keyboard circuit board is simply hung suspended from the control panel by four wires. When the control panel is removed from the panel, the keyboard circuit lifts out with it. I threw the original keyboard case away. You may choose to have a shelf inside the cabinet in which the keyboard rests on, but that's up to you. Now that the cabinet is completed, I never take the control panel out.


Other Controls

A couple of other controls you may want to consider adding to your machine are a spinner and/or a trackball.

Spinner Control

A spinner control is something I added to my arcade machine long after it had been built and played on. Playing Tempest with the joystick no longer appealed to me because it played so different than the original. This was the primary reason I decided to add a spinner control.

Buy or Build

You can actually buy spinner controls, but they tend to be quite expensive. For this reason, I decided to build my own. There are spinner plans available on the internet, but they require you to obtain the exact parts they mention which could be quite difficult. I came to the conclusion that a spinner control can be built ad-hock using parts found around the house or garage.

Here are a couple alternatives if you want to buy or build a better spinner:

  • Happ Controls sells a spinner control that can be used as a replacement in real Arkanoid machines. If you're a machinist, perhaps you could duplicate it? Pictures 1 2
  • Cheep Spinner This site has a "how to" guide in PDF format that shows you how to build a nice spinner. This one actually looks doable.
  • Twisty Grip Spinner - detailed plans for building your own spinner.

My Spinner

Here is a brief description of how I built my own spinner control. The basic idea behind building a spinner is to operate the left-right mouse decoder wheel via a knob mounted on the control panel. Start by removing the circuit board from an old mouse (I used an older style Microsoft mouse) then use whatever parts you have lying around your house to connect a knob to the decoder wheel shaft. I gutted a large potentiometer I had lying around to use as the shaft. A heavy flywheel was added to the shaft inside the potentiometer case so that when you spin the knob it keeps spinning for a short time. Try to have the knob spin with as little friction as possible. The spinner is connected to COM1 and is then available to the games as a new control type.

NOTE: You may need to make the spinner less sensitive by removing every second or third spoke from the mouse decoder wheel.

Here are a couple of pictures of my home-made spinner control.

Here is what the spinner control looks like after it has been mounted on the control panel.

A spinner control is sure to be a wonderful addition to any arcade machine and I highly recommend one.

Trackball Control

Not many games I know if use a trackball control. However, if you love Missile Command, or if you use Windows on your arcade machine, this is most likely a must have addition to your machine.

Unfortunately, I have no experience with this so I'm going to have to recommend you research other sites. I know others have successfully added trackballs to their machines and there is a lot of information on the web.

Next topic



Summary

Hopefully, by now you should have enough information to go ahead and build your own arcade machine. It's really not that difficult, even if you aren't a wiz at carpentry or electronics. Go ahead and give it a try, it'll be a great learning experience. Get a friend to help you, they'll want one too. Solve any problems as you go. Experiment with your own ideas. Just do it, the comments you'll hear from others are almost worth the effort alone. Plus, I think you'll really enjoy your arcade creation.


Credits

Thanks are due to the following people who contributed to this project in one way or another:

  • Lance Taylor - For giving a helping hand during construction, providing computer parts, and giving me the motivation to build this thing.
  • Allan Umbach - For helping me get the cabinet pieces cut nice and square.
  • Brien King - For providing Defender cabinet dimensions (see his web page in the links section).
  • Jeff Vavasour - For providing the Williams Arcade Classics patch to bypass the option screens in WAC.
  • Chris Pile - For developing the fastest Asteroids emulator available for DOS, and providing the special keyboard enhancements I asked for.

Downloads

This page lists the freely available software mentioned previously on this web site.

Arcade Game Emulators

   MAMEDownload from the MAME site.
   SparcadeDownload from the Sparcade site
   AsteroidsDownload from www.sys2064.com

Arcade Game ROMS

Try using Google or Yahoo to find ROM sites.

Patches

Early in my arcade machine project, I emailed Digital Eclipse and Chris Pile to request patches to their arcade game emulators that would eliminate any sort of startup or exit screens. Quite to my surprise they emailed me back with the program patches to do exactly like I asked!

Williams Arcade Classics Patch     (2KB)

Jeff Vavasour of Digital Eclipse has created this custom patch to bypass the first option screen which appears when you run each game using the individual game executables. Follow the instructions in the README.TXT file to apply the patch. Once applied, running defend.exe, robotron.exe, etc., will take you directly into the game, bypassing the initial game options screen.

Chris Pile's Asteroids Emulator Patch      (18KB)

Chris has created two new program files for use with his Asteroids emulator. These files bypass the initial option screen and jump directly into the game. They also completely exit when ESC is pressed.

To install, simply extract the ASTFULL.COM or ASTWIN.COM from the zip file directly into your Asteroids emulator directory. Then run the new file to start the game. You can still use the original asteroid.com program to adjust the emulator game and keyboard settings.

Front-ends

   ArcadeOSDownload from the ArcadeOS web site
   Arcade@HomeDownload from the Arcade@Home web site


Web Links

Here are some arcade related web sites that I've found interesting.

Arcade Classics If you're interested in owning a restored arcade game, check out this site.
Arcade Restoration Workshop Brien King was the source of the Defender cabinet dimensions I used to build my cabinet. Has excellent information regarding the restoration of original arcade machines.
Arcade@Home Good site with lots of pictures and links of cabinets built or converted by others. Also has emulation news updated daily. Prepare for a million pop-up ads when visiting this site.
Build Your Own Arcade Controls Excellent site with information on building all sorts of controls for your arcade machine. A MUST SEE.
Cheep Spinner Has excellent plans for building a simple sturdy spinner control.
Digital Eclipse Developers of the excellent Williams Arcade Classics emulator. Check out their site for more information on their game products and projects in development.
Happ Controls A good source for arcade controls and other amusement supplies & products.
Lance Taylor's MAME Machine Lance is a friend of mine who also built his own cabinet. Check it out!
Sparcade Emulator A fast DOS based arcade emulator written by Dave Spicer.

FAQ - Frequently Asked Questions

1. Can you send me the ROMs for "GameX"?
No!
2. I can't find Williams Arcade Classics anywhere. Can I download it from you?
No! I recommend you try Ebay to locate a copy.
3. Can you send or sell me the plans to build your arcade machine?
I wish I could but I don't have any! Pretty well all the information I have to offer you is already available on this web site.
4. Where can I download the ROM files used by MAME?
See the downloads page for more information. Also, try using any popular search engine such as Google or Yahoo. The files are out there, you just have to find them.

WebRings

This site is a member of the following WebRings. If you arrived here from another WebRing site, click here to go to the starting page.


Comments