9 pin D-SUB male connector to the Atari joystick
Some games are easier to play with digital joystick instead of analogue type. Unfortunately PC has only analogue joystick connector, which makes it impossible to connect normal digital joystick to it. But with a little adapter circuit, it is possible to use Atari style digital joystick with IBM PC joystick interface. The circuit adapts the joystick connectors and converts digital joystick movement signals to analogue signals. The circuit can be used with any PC game to replace the original analogue joystick. The circuit also simulates also Gravis Gamepad operations except the extra buttons.
R2,R5 100 kohm
P1,P2 100 kohm trimmer
Generally the circuit is not very sensitive to the component differences on diodes and transistors. Generally almost any small signal transisotr with Hfe on range of 100-500 should do the job. For the diode you can use almost any common diode, like very popular 1N4001 rectifying diode.
The circuit operation
The interface circuit directly connects the joystick buttons to the corresponding PC joystick connector pins because they operate similarly in both joystick types. Because PC need different resistances to X and Y inputs to know the joystick position, the circuit converter the four switch inputs form the Atari stick connector to the different X and Y resistance values which are the outputted to PC joystick port. The circuit gives the following resistance values from the 9 different positions an Atari-style joystick stick can have:
UP +----------------------------------------------+ ¦ x = 0 kohm ¦ x = 50 kohm ¦ x = 100 kohm ¦ ¦ y = 0 kohm ¦ y = 0 kohm ¦ y = 0 kohm ¦ +--------------+---------------+---------------¦ LEFT ¦ x = 0 kohm ¦ x = 50 kohm ¦ x = 100 ohm ¦ RIGHT ¦ y = 50 kohm ¦ y = 50 kohm ¦ y = 50 ohm ¦ +--------------+---------------+---------------¦ ¦ x = 0 kohm ¦ x = 50 kohm ¦ x = 100 kohm ¦ ¦ y = 100 kohm ¦ y = 100 kohm ¦ y = 100 kohm ¦ +----------------------------------------------+ DOWNThe resistance values are exactly the same as what is given by PC gamepad controllers (like Gravis Gamepad for PC) or what normal PC analogue joystick give out when it is in center position or in any extreme position (fully moved to one of the eight main directions).
The different resistance values are generating using following method (this example is for forward/back direction movevement):
Left/Right movement conversion works in exactly the same way. Normal digital joystick button is wired to Button 1 input in PC joystick interface and one extra button in digital joystick connector is wired to the Button 2 in PC joystick interface.
NOTE: The transistors and and diodes are absolutely necessary for this circuit to work. You can"t avoid using active circuit elements if you want to to convert and unmodified Atari joystick to PC josytick port. I know that there are some simple circuits which use only few resistor to adapt joystick to PC, but those can"t be used with unmodified Atari joysticks. They require you to completely rewire internals of the joystick (which is not always possible as shown in their circuit diagrams). The intention of my circuit was to make the circuit general and avoid any changes needed inside the joystick.
Tuning the circuit
When you have built the interface, you have to set the trimmers to correct positions.The potentiometers must be set so that the circuit shows 50 kohm to joystick interface when the joystick is in the center position. So first align the potentiometers just to the center position. If you want to more accurate alignment, use a simple test program to align those more accurately. The aligning procedure is very simple: just urn tje joystick to left and right positions and calculate the average of those values the test program shows. The align the potentiometer so that the circuit gives the calculated value when joystick is in the center position. Do the same to the forward/back direction.
Modification idea: Getting more buttons to work
Because the use of extra buttons in joystick is not standarized, what pins are used on those depend on the computer, it is possible to make a circuit which works well with all kinds of button arrangement, you need to do some experimenting to get the second butotn to work. If for some reason the circuit as it is does not work, it might be possible that your joystick uses pin 9 for extra button, instead of pin 5, you must do a small modification to the circuit to get the system work. A simple modification is to move the wire going to pin 5 on 9 pin connector to pin 9 on the same connector.
Another idea which you can try is to keep the wire on pin 5, but add an extra wire which connects pin 5 and 9 together. This causes that all extra button (no matter are they connected to pin 5 or 9) are recognized as button 2 on PC joystick port.
Modification idea: Adding support for more buttons
15 pin D-SUB male connector to the PC