Game port

From Deskthority wiki
Jump to navigation Jump to search
Game port with MIDI on the back of a Sound Blaster Live! sound card

The Game port is a game controller port, introduced as an optional add-in card with the IBM PC in 1981. Throughout the 1990's, the port was found on the popular Sound Blaster line of audio cards where it was also a MIDI in/out port. Like many older port standards, it is now almost entirely surpassed by USB.

Capabilities

The port had been designed to connect one or two (via a Y-adaptor) game controllers, each having an analogue joystick and two buttons.

A standard controller occupying the whole port can use up to four analogue axes and four buttons.

Gamepads with digital D-pad's have also been made, with the digital switches connected to a circuit that emulates an analogue joystick.

More complex game controllers with more buttons and capabilities (such as force feedback) connect also to a PS/2 port (with passthrough for the keyboard) or even the serial port. Some use instead a proprietary protocol over the Game port — which does require special software support such as a driver.

Many ports have also MIDI, by having repurposed two power pins for MIDI in and out. Standard MIDI cables have DIN connectors, so an adaptor is necessary. An adaptor may also be necessary to use some older game controllers (or Y-adaptors) with these ports, because they would draw power from the repurposed pins.

Connector and pinout

Pin Original With MIDI USB
1 Stick 1 +5V Stick 1 +5V +5V
2 Button 1 Button 1 to pin 7
3 Stick 1 X Stick 1 X
4 Button 1 GND Button 1 GND GND
5 Button 2 GND Button 2 GND
6 Stick 1 Y Stick 1 Y
7 Button 2 Button 2 to pin 2
8 +5V +5V
9 Stick 2 +5V Stick 2 +5V
10 Button 4 Button 4 Data+
11 Stick 2 X Stick 2 X
12 Button 3,4 GND MIDI out
13 Stick 2 y Stick 2 y
14 Button 3 Button 3 Data-
15 +5V MIDI in

The connector is female 15-pin D-subminiature (DA-15) on the host side.

Simple game controllers connect only pins 1 through 8, using the first joystick line pair and two buttons. If two simple controllers are connected via a Y-adapter, it connects the second controller's power, joystick and button pins to higher pins. (avoiding the MIDI pins 12 and 15)

Standard controllers use no protocol: buttons' switches and joysticks' potentiometers are read directly via the wires by hardware on the host. Each button shorts to ground when pressed. Each joystick axis should be on a 100kohm potentiometer against the +5V input. Full Up and Left should give 0 ohm (5V). Full Down and Right should give full resistance (or 0V). Neutral should give 50 kohm (or 2.5V). By convention, a flight stick connects throttle to pin 13 (Stick 2 Y) and pedals to pin 11 (Stick 2 X).[1]

Some flight sticks and gamepads with many buttons use proprietary protocols over the existing lines. For instance, CH flight sticks send a scancode for each button (and digital axis) over the four button lines. Game controllers from Gravis, Logitech and Microsoft repurpose the button-pins to use as a serial interface.[2]. Force-feedback commands could be sent over MIDI[3].

Adaptors

MIDI to combined MIDI/Game port

The original port uses several lines for +5V and ground respectively. As a combined MIDI/Game port, line 12 (GND) has been repurposed as MIDI out and line 15 (+5V) has been repurposed as MIDI in.

Game port to combined MIDI/Game port

Most joysticks should get their power from other pins than those repurposed for MIDI but some older joysticks may require an adaptor that wires those pins to other power pins on the host connector. [1]

Passive adaptor to USB

Passive adaptors are used for flight sticks that support both USB or Game port, but using the same cable.

Devices from Logitech and Microsoft are known to use the same pinout (in the table above). The device detects a USB host by the wires for button 1 and 2 (pins 2 and 7) being connected together inside the adaptor. [4]

Active adaptor to USB

Many commercial adaptors have been made with varying capabilities.

sw3dprousb (aka 3DP-Vert)
Open source firmware for ATmega32u4 (The Teensy 2.0 in particular). Supports the Microsoft SideWinder 3D Pro, 3D Pro Plus, Precision Pro and Force Feedback Pro. Does not support force-feedback.[3]

Note

Game port is not compatible with the 15-pin "Analogue in" port on the Acorn BBC Microcomputer, even though both use the same DA-15 connector and both have four analogue axes. The pinout is different and for different potentiometers.

References

  1. 1.0 1.1 Allpinouts.org—Joystick PC Gameport. Dated 1998-03-01. Retrieved 2018-11-27.
  2. Archive.org—http://atrey.karlin.mff.cuni.cz/~vojtech/joystick/specs.txt. Written by Vojtech Pavlik. Last archived snapshot from 2017-10-21. Dated 1998.
  3. 3.0 3.1 Thread by Grendel on DescentBB—USB Converter for MS Sidewinder 3DPro, PP, and FFP. Dated 2009-06-28. Retrieved 2018-11-28
  4. Post by Grendel on DescentBB—MS Sidewinder Precision Pro: DIY Gameport-USB adapter. Dated 2008-12-20. Retrieved 2018-11-27