Connect an arcade joysick
to your PC.
E-Mail swallow@coin.demon.co.uk
This file was written by Greg Bendokus and is provided here for your
information. We can accept no liability for damage caused to your PC from
errors or omissions. If you find any errors, please let us know. It was written
by an American so references of Radio shack and 120V can be substituted for
Maplin and 240V.
This project will allow you to connect an arcade-style
switch joystick to your PC's gameport through the use of the guts
from a PC gamepad. Yes, you read correctly. To be able to
complete this project, you must be in possession of the following:
1. An arcade joystick, preferably the whole console with sticks
and buttons, right from an arcade machine. I used one from a
Double Dribble machine because it has 2 nice sticks, each with 4
fire buttons. (I haven't tried an arcade stick that uses
microswitches - if you do, let me know how you make out.)
2. Some basic knowledge of electronics, i.e. how to follow
circuit board traces and the difference between hot and ground.
3. One (or 2) PC gamepads. What kind to use it up to you - the
$5 ones from Babbage's work as well as a Gravis. Don't get too
fancy because you're going to junk everything except the circuit
board inside (hereafter referred to as the circuit card).
4. A spool of wire, available from Radio Shack, which will be
used to connect the leaf switches to the gamepad circuit card.
Don't use anything too thick, or you will have problems with your
wire overlapping traces on the circuit card, causing all kinds of
headaches. You will also need a short piece of this wire with
both ends stripped, to use as a test lead.
5. A soldering iron. A good pencil iron from the Shack will do,
just don't use one of those industrial 600 watt guns and you
should be fine. Since we'll be soldering directly to the circuit
card, don't use solder with a lot of rosin in it.
STEP 1 - Getting Ready
Take your gamepad, remove all the screws, and open it up. Throw
away everything except the small circuit card, attached to which
is the cable that plugs into your PC.
If you have a common gamepad, you should see 2 groups of 4 round
traces on the circuit card. 4 of these are for the fire buttons,
the other 4 are for the compass directions. Determine which ones
are which.
Plug this shell of a gamepad into your PC and turn it on.
What you need to do now is to fire up any game program on your PC
that has a joystick calibration function in it. The choice is
yours, but make sure the program shows you the actual position of
the joystick on the screen. MsPacPC is a good example. If you
have Windows 95, you can use the joystick setup applet in the
control panel, which is my preferred method. Be sure you have
the joystick type set to "4 button gamepad" if you do this.
NOTE: I've done all of my wiring and soldering with the gamepad
plugged in my PC while it was turned on. I can't be responsible
for any damage caused if YOU do this, but unless you wire up a
120V AC line to the gamepad, I can't imagine that anything could
get fried. Doing it this way also immediately allows to check
your work. Not recommend
STEP 2 - Finding the correct traces.
Each round trace on the gamepad card has 2 circuit traces leading
to it, usually one on each side. By connecting a single piece of
wire across both of these traces, you "close the circuit" for
that switch and the gamepad circuitry thinks you've just pressed
a direction (or a fire button). What you want to do is take your
test wire and manually close these switches and see what
direction is registered in your calibration program. The switches
on PC gamepads are usually arranged this way:
||
--------------||---------------
| |
| U 2 |
| 1 |
| L R |
| 4 |
| D 3 |
| |
-------------------------------
Take a piece of paper and jot down your findings.
Of course, if your arcade joystick setup is using only 2 fire
buttons, you don't need to worry about buttons 3 and 4. If you
are using 2 joysticks (you will need a joystick "Y" cable,
available at the Shack), be aware that your PC is limited to 2
fire buttons each when using 2 sticks.
STEP 3 - Time to do some soldering.
Well, we're ready to solder. Look at one of the leaf switches on
your arcade stick. Each one should have 2 solder blades on it,
even though some have 3, like Wizard of Wor sticks.
All you do now is simply solder each blade to opposite ends of
the traces for that direction on the game card. Let's do the
left direction first. Move your joystick left and note what leaf
switches close; it won't always be the ones you would think!
Now, solder a wire, about 6 inches long, to one of the blades on
the back of the leaf switch. Repeat for the other blade. Now
take these 2 wires and solder them, one to each side, to the
left gamepad direction trace on the gamepad, which you've
determined earlier with your test lead.
Move the joystick left, and with any kind of luck, the screen
should say that you're moving the joystick to the left. If this
works, congratulate yourself and wire up the rest of the
directions and any fire buttons you're using. Repeat the whole
process with another gamepad card if you have second joystick.
Some of you may note that I didn't mention you could tie all the
grounds together on the leaf switches and just run one wire to
the low side of all the gamepad's switches. I seem to get
better results when I DON'T do this, i.e. the stick calibrates
easier with my software. It is also a pain in the ass to find a
common ground on a gamepad - it's just easier to make each
connection a separate one. Feel free to experiment, though...
STEP 4 - Finishing up.
That wasn't so bad, huh? Hopefully, when you got your joystick,
you also got the wooden enclosure it came in. If you did, you
can use a screw and attach the circuit card right to the wood
next to the joystick assembly. Most gamepad circuit cards have
holes in them which make this easy to do. Just make sure none of
your wires interfere with the leaf switch blades. You can then
take a piece of plywood, cut it to fit the back of the wooden
console, and nail it on, making a box. Use a staple gun to
fasten the PC cord(s) to the wood so your handiwork isn't ripped
to shreds if the cord is yanked. You should now have a
completed box with one (or two) cords coming out of the back,
ready to plug into your PC.
(If you didn't get the enclosure, well, build something to hold
the stick. You're on your own for the fire buttons...)
Now, plug the thing into your PC and fire it up! I recommend
trying Starforce to really give the thing a good work-out. If
you've wired up 2 sticks, the logical choice to try first would
be Robotron (worth building for this game alone). Be sure to
calibrate the program(s) for your new stick(s) first! If all goes
well, you should be quite impressed with your work. It should
also become quite a apparent what youve been missing by trying to
play these emulators with a gamepad. :-)
POSSIBLE PROBLEMS:
1. You may need to adjust the gaps of your leaf switches. If
you find it hard to move diagonally, check each individual
direction and adjust the switches for the best feel. There is a
very fine line when setting leaf switches - either they don't
touch at all or they are too sensitive. If you have a leaf
switch blade adjustment tool (looks like a knitting needle with a
gap on the end), this will be a much easier process. I have no
idea where to get one of these tools - arcade machine repairmen
usually have them.
2. It may be hard to accurately calibrate the joystick in some
programs. The only real problem I've had is with Mike Cuddy's
Gyruss and Time Pilot emulators. The on-screen joystick cursor
just goes nuts when I try to calibrate the stick. I resorted to
plugging in a normal gamepad, calibrating the program with that,
and then plugging the arcade stick back in. No problem. Most
other programs, like Sparcade and even Doom(!), calibrate quite
easily and work like a champ. MAME even calibrates automatically,
which is really nice.
3. You may be tempted to try to use an Atari joystick instead of
an arcade stick. Don't bother. The 'bubble' switches on these
joystick's circuit cards have such a weak electrical connection
that the end result will always seem to be erratic, with one
direction usually refusing to work at all. Experimenting with
this is where the whole project started, however.
4. I've tried my setup on several Soundblaster cards, including
one of those $30 clone cards, with no problems at all. I have
NOT tried it with a GUS, or anything else for that matter. I
can't imagine why one sound card's gameport would behave
differently than any other, but in world of computer hardware,
anything's possible.
-----------------------------------------------------------------
Well, there you have it. If you run into any problems or just
want to tell me how you like your new controller, please Email me
at:
bendokus@postoffice.ptd.net
Also, be aware that this is a very early version of this
document, the bulk of which being written at 2 AM. If you
feel something could be explained better or come up with
an easier way to do something you've read here, please let
me know. I am looking for ANY suggestions that would improve
this document, so please Email me at the above address.
You are free to upload this document to whoever or wherever you
like, provided you do not modify it in any way.
I will not be held liable for any misuse of the information
contained herein. What this basically means is that I am
absolved of all blame if you blow up your PC.
-----------------------------------------------------------------
I'd like to thank all of the arcade emulator authors for their
hard work, allowing me to re-live a prized part of my childhood.
Thanks also to Phil for reading my first draft of this document.
Your web page will definitely be missed!
Finally, special thanks must go to my good friend Scott Stilphen,
arcade machine guru that he is, who patiently endured my temper
tantrums when we first tried to wire up Atari sticks to a Gravis
pad. Without him, this project would have never happened.
-----------------------------------------------------------------
Greg Bendokus
19th March. 1997
E-Mail swallow@coin.demon.co.uk