Jump to content

Game port

From Simple English Wikipedia, the free encyclopedia
Game port
A DA-15 connector on aSoundcard
Type Joystick input port
Production history
Designer IBM
Superseded by USB
Specifications
Hot pluggable yes
External yes
Pins 15
Connector DA-15
Pin out

Pin 1 +5V +5V DC
Pin 2 B1 Button 1
Pin 3 X1 X axis for joystick 1 (0–100 kΩ)
Pin 4 GND Ground for B1
Pin 5 GND Ground for B2
Pin 6 Y1 Y axis for joystick 1 (0–100 kΩ)
Pin 7 B2 Button 2
Pin 8 +5V +5V DC
Pin 9 +5V +5V DC
Pin 10 B4 Button 4
Pin 11 X2 X axis for joystick 2 (0–100 kΩ)
Pin 12 GND Ground for buttons 3 and 4 (or MIDI out)
Pin 13 Y2 Y axis for joystick 2 (0–100 kΩ)
Pin 14 B3 Button 3
Pin 15 +5 V +5 V DC (or MIDI in, sometimes unconnected)

TheGame portis aporton somePChardware,and hardware similar to it. This port is for the connection ofanalogdevices used to controlcomputer games,such asjoysticks.In most hardware designs for personal computers in 2010, the port is anintegrated componenton thesound card,anotherI/Ocard, or themotherboarditself. Starting withWindows VistaMicrosoftno longer supports this port withdriversfrom theOperating System,but third party drivers are still available. There are also drivers that allow to map the game port to aUSBdevice.

Hardware[change|change source]

Unlike most other ports on the PC, the Game port is an analog port. This means that signal first needs to be changed todigitalform, a task which is usually done by ananalog-to-digital converter.In the early days, most joystick designs were digital, which made them easier to build and cheaper. The game port has a 15-pinDSUBinterface. Most home computers that used digital joysticks had a 9-pin one. This made existing joysticks unable to work well with the newinterface.

Digital joysticks are easy forprogrammersto access. Thesignalis already digital, and only gets transferred to the PC. Analog signals are much harder to use, they need carefulsoftware interruptdriven programming (to get a useful signal). Interrupts use the mainCPUof the system. Digital circuits can useTransistor–transistor logic,which does not use the CPU.

Circuits[change|change source]

The usual way a game port is added is using acapacitorand a simplevoltage comparator.Both together form a sort of simpleramp-compare ADC.This system ispolledperiodically and reset at precise moments to read an input. This must be done more than 30 times every second. The actualfrequencyand value usually depend on the joystick'sresistanceinside, noise,CPUspeed and the total joystick-capacitor'sRC time constant.

The need for calibration[change|change source]

Its analog nature has been the cause of problems. One problem was that all kinds of joysticks neededcalibration.This was true even forarcade-style ones. The reason for this was that no game controller and no joystick produced the same measurements each time. These depended on the exact way acquisition was made. Some of the worst designs even depended on the speed of theCPU.Also, all kinds of PC game ports suffer fromelectrical noise.

The calibration procedure is still needed at some point, even under modernoperating systemssuch asWindows XP.Usually, it consists of moving the joystick around all of its axes to measure the maximumaxis excursionvalues, no matter if the joystick usesanalog signals(frompotentiometers) ordigital signals(usingmicroswitchesorcontacts).USBjoysticks, on the other hand, do not need calibration. This is because USB sends digital signals.

In the days ofDOS,every game using the game port(s) had to do its own calibration, often each time the game started, and some poorly coded calibration routines made some joysticks unusable with some games. With Windows XP, only one calibration per joystick is enough, which is thought "valid" until the joystick is unplugged.

Certain applications and games are able to use some analog joysticks even without explicit calibration, under certain restricted conditions. A system of a joystic and game port that is not calibrated can give a "direction", at best. It can not give anintensity.An analog joystick can be "self calibrated" just by leaving the joystick in the middle position and taking a measurement, and then using some arbitrary or adaptive threshold to detect movement and excursion from the middle position. The reading of the same joystick over the same game port can change over time, and some joysticks cannot work at all with this method. The joystick must be in the middle position at least once when the implicit "self calibration" takes place.

Microsoft declared it would no longer include support for game ports in operating systems beginning with MS-Windows XP Professional x64 edition, reasoning that USB-based gaming equipment had become more common. This leaves game port support up to the manufacturer of the device (i.e. Sound card or USB converters) the game port ships on.

Extensions of the game port capabilities[change|change source]

Some advanced game port joysticks support more than 4 buttons (e.g. 6 or 8) but require a special device driver for the extra buttons to work properly, since the game port does not have actual hardware support for more than 4 different buttons.

This can be fixed by using pins and input meant for the second joystick (i.e. button 5 through 8 are mapped to the signals to the axis pins meant for the second joystick - resulting in the issue of the two buttons mapped to the same axis being not both usable at the same time), using some normally "unused" pins, or changing the joystick's circuits (and related software) to read a 4-bitstatecode from the four button inputs, thus giving up to 16 button combinations (though with some limitations e.g. some buttons may not be held down) or a combination of both techniques.

High-end game port joysticks such as theMicrosoft SideWinderrely onmultiple xingaproprietarydata stream through the 4 standard button inputs and sometimes through the "unused" pins, giving full support for a rather high number of buttons (e.g. 16 or 20) while special features such asdaisy-chainingmultiple joysticks,force feedbackor joystickprogrammingbecome possible.

The obvious drawback is the need for a specialdevice driverto understand the joystick input. This makes its use time consuming andoperating system-dependent, while the joystick is usually unusable without a special driver (unless multiple operating modes are supported).

SomehardwareandDIYenthusiasts have found ways to connect many different input devices to the game port and found other uses for it, such as voltage or currentmeasurementor simpleinterfacinganddata acquisition.

History and variants[change|change source]

Y-splitter

The original game port design byIBM(released in 1981 as a separate expansion card for the firstIBM PC[1]) first allowed four analogaxesand four buttons on one port, allowing two joysticks or four paddles to be connected, although this required a special "Y-splitter" cable and is not fully supported by somecombined midi/game portsusually found on sound cards.

Some poorly made game ports (usually built-in on old motherboards and I/O cards) did not fully support either 4 axes or 4 buttons, making only the use of a single 2-axis and 2-button joystick possible.

The 15-pin game port is no longer provided on modern PCs,[source?]though adapters exist that allow older joysticks and controllers to connect via USB.[2]However, Microsoft's Vista operating system lacks all game port support, even for USB adapters.[source?]

MIDI connectors[change|change source]

Game ports useDA-15connectors (also incorrectly calledDB-15). Since the game port moved from dedicatedexpansion cardsto sound cards about 1990, these connectors usually double as connectors forMIDIinstruments; two of the redundant +5V and GND pins of the original standard were rededicated to MIDI input and output to make this possible. To use a game port with MIDI instruments, one requires a cable with a male and a female DA-15 and two male 5-pinDIN connectors.The drivers and hardware for the game port midi capabilities are based around the now standard RolandMPU-401MIDI interface (in UART mode only), and support most MPU-401 standard applications for Windows and DOS. The officialproper designfor a game port-MIDI adapter can be found at midi.org.[3]

References[change|change source]

  1. Calvert, J.B. (18 August 2002)."The Game Control Adapter".mysite.du.edu/~etuttle/electron/elecindx.htm, A Review of Electronics.
  2. "USB to Game Port Adapter".Retrieved2010-03-08.[permanent dead link]
  3. "this MIDI page".Archived fromthe originalon 2008-02-12.Retrieved2010-04-12.

Other websites[change|change source]