Joystick converter

Joystick converter game control adapter (GCA) for PCs

Although frowned upon by many as addictive and devoid of educational value, a computer game can be great fun to play. This little circuit allows you to connect a digital ( switch based joystick converter) joystick to the analog inputs on the game control adapter (GCA) which is available on most IBM PC/ATs and compatibles. A normal joystick interface consists of two inputs. each of which is connected to the two potentiometers in the joystick. Traditionally, the joystick converter. Traditionally, the resistance formed by each of these potentiometers is used to charge a capacitor. When the capacitor voltage has reached a certain level, bistable toggles. This means that the charging time is a function of the potentiometer position. The output state of the four bistables and the four digital inputs is a bit pattern found at address 201H. A software counter then tells the system how long it takes before a bistable bit toggles. This interface works fine in the closed. unchanging system. Unfortunately. the immense increase in processor speeds that has come about in recent years has caused compatibility problems with regard to the use of the analog joystick converter inputs. The reason is simple: the same joystick read routine gives different clocks speeds. The effect of clock speed differences has been reduced to some extent by making the timing variable with the aid of a switch. In this way, the program still read the desired value (well roughly ….).Most analog joysticks have a center position adjustment, which, unfortunately . can be turned by accident in the excitement of a game. Consequently, the program  (Game) will not respond properly to your signals anymore. so that you will be unable to reach the highest score. Fortunately, many programs have a fairly wide margin around the center position. so that small misadjustment need not be fatal. This type of software dose does not follow the above concept of reading the joystick position and turning it into a proportional value. instead. it just read left, right up This circumstance is exploited by the present design. Arguably, if proportional movement translation is not used, there is no reason why the potentiometer in the joystick cloud not be dropped altogether and replaced by simple switches, while still using the analog input on PC. Fortunately, switch based joysticks, exist -they also go under name digital joystick. with reference to the circuit diagram, the joystick is in the center position if it not operated, and none of the four switches is closed. This means that the PC ‘sees’ the resistance formed by R2//(R1+D1). The value of R1 is calculated such that the GCA card ‘sees’ a joystick resistance of about omega, in a split of the diode. If the lever is moved to the right pin 4 on K1 is pulled to ground, so that D1-blocks and the computer  ‘sees’ R2 (100 kΩ) only. If the lever is moved to the left pin 3 on K1 will go low. This causes T1 to be switched on via R3, and consequently, the GCA card to ‘see’ a joystick resistance of about 100 Ω. In this way, the input signals are converted into resistance values 100 Ω. 50 kΩ or 100 kΩ. The same applies to the up/down section built around T2. The ‘fire’ button is read directly via pin 6 on K1. If your joystick has a second button, this is read also via pin 5 on K1. Also, note the presence of the +5 V supply voltage on pins 8 and 15 of K2  (computer’s side) – this may be used for inductive joystick and/or type with an ‘auto-fire’ button.

Finally, R1 (R5) may be replaced by a series combination of a 68-kΩ resistor and a 50-kΩ present. This allows you to adjust the joystick center position and ‘play’ older games that lack an up-to-date initialization routine.

Joystick converter Parts list.


  • R1, R5 =82 kΩ
  • R2, R3, R6, R8 = 100kΩ
  • R4, R7 = 100k Ω


  • D1, D2 = 1N41482
  • T1, T2 = BC557B


  • K1 = 9-way male sub-D connector, PCB mount, angled pins
  • K2 = 15-way male sub-D connector, PCB mount angled pins


Leave a Reply

Your email address will not be published. Required fields are marked *