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.

Different joystick types

Digital Joysticks

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 controllers

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

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.

PC analogue joystick interface

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.

Comparision of analogue and digital joysticks features

                      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
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 game

Nowadays 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.

author: Tomi Engdahl