ePanorama.net - Joystick Documents
Introduction to joysticks
There have been many different types of game controllers used in the history of computer games. The most popular controller hase been joystick, which is simple a box with button and stick to control the motion in the game. But there have been many types of joysticks and I try to clear out some facts in this introduction part.
The most common joystick type in home computers have been Atari-style digital joysticks. Those joysticks are calle after Atari, because this joystick type was first introduced in Atari 2600 videogame and then adopted to the home computers introduced on ever since (VIC 20, Commodore 64, Amiga, MSX-computers and even Sinclair Spectrum joystick adapters used this joystick type).
The joystick itself consisted of five whiched which are arranged to that four of them told about the joystick direction (UP, DOWN, LEFT, RIGHT) and one was for fire button. The joystick connector was 9 pin D-shell connector. Normally all of those whiches are open, but when joystick is turned from the center position, one or two position whiched are closed (according to what direction the stick is turned). The fire button worked so that it closes when button is pressed. All of the swiches are connected between ground and corresponding signal pin of the joystick connector.
The nicest thing is that those joysticks were standard and there were joysticks available from many manufactureers. Unfortunatelu most of those joysticks broke down quite fast (especially very popula types manufactured by Quickshot) because switches and mechanics were made cheaply.
Paddle controller is a simple controller which consists of one knob which is used to control the game. Paddle controllers were used in videogames since the first TV-games to control the racket on the screen. Paddle controllers use analogue principle for control, and they simply consist of one potentiometer and button in one controller.
The analogue information from potentiometer has to be converted to digital for in order the computer to use that information. Nowadays it would be done with Analogue to Digital converters, but ten to fifteen years ago those things were hard to get, hard to use and expensive. So home computer manufacturers needed a simpler and less expensive alternative. The answer was to convert the potentiometer position to pulse width information which can be easily conveted to numbers using counter chip or simple software loop. This was cheap, but not very accurate method, especially when software loop was used for measurement.
Analogue joysticks were like a combination of ideas of both joystick and paddle. The idea was that potentiometers were used to measure the movement of tick (instead of swiches like in digital joystick). Digital joystick made is possible to have more accurate control, which was needed in flight simulator programs. Analogue joysticks have been used in Apple, Amiga and IBM PC, which only had analogue joystick inputs.
Analogue joysticks are not so standardized as digital ones. Each manufacurer had it's own specifications of the stick and their own connector model.
Nowadays the most common analogue joystick type is PC analogue joystick. This joystick model was presented by IBM together with their first IBM PC computer. The joystick is just a basic analogue joystick with two buttons. The original joystick interface had circuit for connecting two joysticks, but had only one joystick connector. A special Y-cable was needed if there was need for two joysticks at the same time. Later time some manufacturers put two connectors to their interface card and some card manufacturers implemented only one joystick input. Fortunately most of the card nowadays have option for two joysticks like the original IBM joystick card.
The joystick interface card was designed to be as simple and cheap as possible. The card consisted only of bus interface electronics and four monostable multivibrators (all in on 558 chip). Those monostable multivibrators were simple timer circuits which put out a pulse with width directly proportional to the joystick resistance value. The pulse width was then measured using software loop. This has caused anormous amounts of problems to game programmers when computers have become faster and faster all the time. On faster machines, the joystick routine in the software does not read the joystick signal properly resulting in a timing problems. Some dedicated joystick cards are designed to vary the joystick signal so the software can properly detect the joystick and process the data.
The joystick consists of two potentiometers with variable resistance value between 0 Ohm and 100 kohm (in some joysticks up to 150 kohm). The potentiometer resistances have the minimum values when the joystick is at the top left position. One end of the potentiometer is connected to +5V pin and the center pin is connected top the analogue input of the joystick. The other end of the potentiometer is left not connected to anywhere.
There are two commonly used ways how PC analogue joystick stick mechanism is constructed. Some joystick convert the stick position to linear motion, whcih then changes the position of the slider in about 100 kohm linear potentiometer. More popular construction is to use normal axial potentiometers and the joystick movement directly turns those potentiometers. Some joystick used special 100 kohm potentiometer which can only turn that 60..90 degrees which joytick can turn. The more common construction is to use the standard 470 kohm (lin) 270 degree potentiomer and use about one fourth of the scale from the beginning (in this way getting 0..120 kohm value range). Usually those potentiometers are normal carbon slider potentimeters which do not last long in intense gaming.
Atari digital stick PC analogue stick Technology 5 switches 2 potentiometers and 2 switches Connector in stick 9 pin D female 15 pin D male power feed to stick optional +5V +5V needed for for autofire operation Stick directions 8 unlimited Auto centering Yes Yes or No (usually adjustable) Buttons 1 (optionally 2 2 or 3) Sticks per connector 1 1 or 2 (need Y-cable) Connectors typically 2 1 Calibration needed No Yes Stick durability Bad to good Bad to average Limitations only 8 directions No stick moved/centered on/off control feeling/feedback to user Other uses for port Mouse,paddle, Steering wheel, lightpen Flightstic with pedals Programming issues Position reding method One I/O command Special reading routine Position reading time < 1 us 1..2 ms Button reading methid One I/O command One I/O command Button reading time < 1 us < 1 us Suitability for games Flight simulators Bad Very good Car simulators Average Good Pick and jump Good Average Shoot then up Good Good to bad depens on gameNowadays there are so called PC digital joysticks. Those sticks have implemented some other way thatn through PC joystick card interface to avoid some of the common PC joystick problems and providing faster access for joystick for game programs. The way how those digital PC joysticks communicate with PC is not standardized and possible methods are keyboard connector, serial port or proprietary serial protocol through old joystick interface.