PC-to-Apple2 Joystick Converter

by Jeff Hurlburt

Probably, the best way to get your hands on a high-quality joystick for your
Apple II is to convert a PC joystick. For sure, you will have a wide selection
from which to choose.

My PC stick is a standard CH Products "FlightStick". A resistance measurement
produced a disconcerting revelation: the X and Y pots top-out around 100K Ohms--
50K less than a standard Apple II stick! Fortunately, you can compensate for the
difference just fine by adding a bit of capacitance. The finished converter is
shown below:

The following is condensed from an article in the Spring issue of II Alive:

To PC Stick To Apple II

(15-pin female connector) (9-pin male connector)

[1] [4] and [5] --------------------------- [2] +5V [2]
--------------------------------------------[7] Button 0 [3]
--------------------------------------------[5] X-axis [6]
--------------------------------------------[8] Y-axis [7]
--------------------------------------------[1] Button 1
[3] Ground

On the 9-pin Apple II side ...
add 680 Ohm resistor between [7] & [3]
add 680 Ohm resistor between [1] & [3]
add .01 uF cap between [5] & [3]*
optional: add 50K-100K trim pot in series with the cap add .01 uF cap between [8]
& [3]*
optional: add 50K-100K trim pot in series with the cap

*NOTE: The Capacitors compensate for smaller R range of PC
sticks.The C values are approximate. For standard 100K Ohm PC sticks, .01 uF
pretty well guarantees you will be able to cover the full Apple II X and Y range

Values of .01 uf (X-axis) and .005 uF (Y-axis) worked well on the PC
"FlightStick" when plugged into our Apple II+.

Most likely, you will find that the a stick tops-out too early in the X-max
and/or Y-max direction. For best control precision, what you want is for extreme
values to occur near the extremes of stick movement:

X (horizontal) Left= 0 Right= 255
Y (vertical) Up= 0 Down= 255

This way, you have lots of active swing which makes graphics work and playing
most games much easier.

For adjusting, use a program which continuously reads and displays X and Y stick
values. The program below does this and displays "B0" when Button 0 is pushed and
"B1" when Button 1 is pushed. Do a CTRL-C to exit.

20 PRINT "X= "; PDL(0); TAB(15); "Y= ";PDL(1); TAB(30); 30 IF PEEK(49249)>127
40 IF PEEK(49250)>127 THEN PRINT " B1";

Experiment with capacitance values between .002 uF and .01 uF to get the best
'spread'. For easier fine-tuning, add the 50K-100K trim pots in series with each

The converter I built fit inside heat-shrink tubing. Putting it in a small
plastic box may be better. You can mount the trim pots (and/or switches with
fixed "trim resistors") and select between settings for a 'Fast', short swing,
'hot' Game Stick and a 'Normal', full swing, 'cool' Game/Graphics Stick.

Send EMail, corrections, comments and questions to:R/\/\/