Game port

From Wikipedia, the free encyclopedia
Jump to: navigation, search
Game port
Da-15 port.PNG
A DA-15 connector on a Soundcard
Type Joystick input port
Designer IBM
Superseded by USB
Hot pluggable yes
External yes
Pins 15
Connector DA-15
DA-15 DSubM.png
Pin 1 +5 V +5 V 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 +5 V +5 V DC
Pin 9 +5 V +5 V 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)

The game port, originally introduced on the Game Control Adapter, is a device port that was found on IBM PC compatible and other computer systems throughout the 1980s and 1990s. It was the traditional connector for joystick input and MIDI devices, until replaced by USB in the 21st century.

Originally located on a dedicated expansion card, the game port was later integrated with PC sound cards, and still later on the PC's motherboard. During the transition to USB, many input devices used the game port and a USB adaptor in the form of a cable expansion.

History[edit]

This Microsoft joystick's output was the traditional game port, but was supplied with a game-port-to-USB adaptor for connection to newer systems.
A "Y-splitter" cable used to connect multiple devices to the same game port

The game port first appeared during the initial launch of the original IBM PC 1981, in the form of an optional $55 expansion card known as the Game Control Adapter.[1][2] The design allowed for four analog axes and four buttons on one port, allowing two joysticks or four paddles to be connected via a special "Y-splitter" cable.[3]

At the time there was no sort of industry standard for controller ports, although the closest was the Atari joystick port. This was originally introduced 1977 on the Atari VCS, and by 1981 was used on both Atari gear and the Commodore VIC-20. But it could not be considered truly widespread until around 1983 when it appeared on the Commodore 64 and several other platforms. In contrast with the IBM design, the Atari port was primarily designed for digital inputs, specifically eight-direction joysticks. It did include two analog inputs as well, which could support a single analog joystick, but these were not widely used.[4] The Apple II also sported a joystick port with enough channels for two joysticks, but only one button per stick.[5] The BBC Micro had a similar port to the IBM design, even using the same 15-pin connector, but was wired in such a way to support only one fire button per stick.[6] In most respects, the IBM design was similar or more advanced than existing designs.

Originally available only as add-on that took up an entire slot,[1] game ports remained relatively rare in the early days of the IBM PC, and most games used the keyboard as an input. IBM did not release a joystick of its own for the PC, which did not help. The most common device available was the Kraft joystick, originally developed for the Apple II but easily adapted to the IBM with the addition of another button on the back of the case. When IBM finally did release a joystick, for the IBM PCjr, it was a version of the Kraft stick. However, it connected to the computer using two incompatible 7-pin connectors, which were mechanically connected together as part of a larger multi-pin connector on the back of the machine.[7] This eliminated the need for the Y-adaptor.[8] Adaptors for Atari-style "digital" sticks were also common during this era.[9]

The game port became somewhat more common in the mid-1980s as improving electronic density began to produce expansion cards with ever-increasing functionality. By 1983 it was common to see cards combining memory, game ports, serial and parallel ports and a realtime clock on a single expansion card.[10] The era of combo expansion cards largely came to an end by the late 1980s as many of the separate functions normally provided on plug-in boards became common features of the motherboard itself. Game ports were not always part of this supported set of ports.

However, the game port was given a major boost in usage in 1989 with the introduction of the first Sound Blaster. As sound cards were primarily used with computer games, Creative Labs took the opportunity to include a game port on the card, producing an all-in-one gaming solution. At the same time, they re-purposed two otherwise redundant pins on the port, 12 and 15, to produce a serial bus with enough performance to drive an external MIDI port adaptor. Previous MIDI systems like the MPU-401 used their own separate expansion cards and a complex external adaptor, whereas the Sound Blaster only required an inexpensive adaptor to produce the same result.[11] By the end of the year the Sound Blaster was the best selling expansion card on the PC, and was almost universal on new machines, and the game port was finally widespread.

With the exception of laptops—for which companies released joystick adapters for parallel or serial ports, which needed custom software drivers[12]—through the early 1990s the game port was universally supported on sound cards, and increasing became built-in features as motherboards added sound support of their own. This remained true through the second half of the 1990s, by which time integrated sound support had displaced the 3rd party sound card to a large degree. By the early 2000s such support was so widespread that newer sound cards began to dispense with the game port as it was certain the machine they would be used in already had such support, including MIDI.

The introduction of the first USB standard in 1996 was aimed squarely at the sort of roles provided by the game port, but initially had little market impact. The introduction of the iMac, which was based almost entirely on USB expansion, began a rapid expansion of USB in the market.[13] This led both to new gaming devices using USB, as well as the profusion of adaptors. For instance, the 1997 Microsoft Precision Pro joystick was re-introduced in a version that used a game port connector, but also included a USB adaptor in the box.[14] The rapid takeover of USB meant that this was superfluous when the Precision Pro 2 was released the next year in 1998. By 2000, game ports were purely for backward compatibility with now outdated devices.

Microsoft Windows discontinued support for the game port with Windows Vista,[15] though USB converters can serve as a workaround.

Hardware[edit]

The game port's DA-15 connector included inputs for a total of four analog channels and four buttons. These were almost always implemented as two joysticks with two buttons each, but it was also possible to support four paddle controllers each with one button using the same inputs. The port included a considerable number of redundant pins, including a total of four +5V supplies, and separate grounds for most of the buttons. In most similar game ports, like those on the Atari, a single +5V and ground is used for all the channels.[16]

The game port was originally mounted on a dedicated ISA card. Since the early 1990s, when the game port moved from dedicated expansion cards to PC I/O or sound cards, these connectors have usually doubled as connectors for MIDI instruments; two of the redundant +5 V 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 a cable is required with a male and a female DA-15 and two male 5-pin DIN connectors. The drivers and hardware for the game port midi capabilities are based around the now standard Roland MPU-401 MIDI interface (in UART mode only).[17]

The analog channels were read by sending voltage into the line, through a potentiometer in the controller, in this case 100,000 ohm, and then into a capacitor. The value was read by timing how long it took for the voltage in the capacitor to cross a certain threshold. The rate varied depending on the resistance, and thus physical position, of the potentiometer. In the Atari port, which had similar analog channels, there was a convenient timer available in the form of the video clock circuitry. In the PC there was no similar clock because video functionality normally provided on an expansion card. Instead, these timers were provided by a separate chip that combined the voltage readers and timers. When the trigger voltage was reached, the resulting value was copied into a register where it could be read out at any time. The value was being constantly updated by the hardware, but it was up to the software application to poll the value often enough for smooth movement.[16]

The game port can supply approximately 750 mA of power;[18] however, this is shared with the keyboard (max 100 mA),[19] mouse (~ 25 mA),[20] and the video port (VGA uses 50 mA),[18] leaving approximately 575 mA for actual game port usage.

Software[edit]

Initially there was no standardized software for running the joysticks, applications would poll the known ports associated with the sticks as part of their game loop. This did, however, leave the implementation of a lot of housekeeping tasks to every application that used them, like looking for and enumerating the active devices, and calibrating them. This changed in Windows 95, which introduced standardized Windows registry entries to hold these values and make it easier for applications to find these devices. DirectX further expanded the options with the "joystick minidriver" with a number of new capabilities. Among these were support for up to six analog axes, a point-of-view hat, and up to 64 buttons. It also supported up to 16 such devices, which could be connected using any interface, not just the game port.[21]

See also[edit]

References[edit]

  1. ^ a b Lemmons, Phil (October 1981). "The IBM Personal Computer / First Impressions". BYTE. p. 36. Retrieved 19 October 2013. 
  2. ^ Calvert, J. B. (18 August 2002). "The Game Control Adapter". A Review of Electronics. 
  3. ^ "ABM advertisement". PC Mag: 273. July 1983. 
  4. ^ Atari Hardware Manual (PDF). Atari. 1982. pp. III.19–III.32. 
  5. ^ "Apple II Pinouts". Usenet newsgroup Apple II FAQs. 21 August 1998. 
  6. ^ Connecting Joysticks To The BBC Micro (PDF) (Technical report). Acorn. 1992. 
  7. ^ PC jr. Technical Reference (PDF). 1983. p. 2.12. 
  8. ^ "DOS Games Joysticks & Other Gaming Device Support". Nerdy Pleasures. 10 February 2012. 
  9. ^ "Joystick PC Gameport Connector Pinout". AllPinouts. 
  10. ^ "Super 12 Pak Multi-Function". PC Mag: 342. 17 April 1984. 
  11. ^ Petzold, Charles (28 April 1992). "Environments". PC Mag: 403. 
  12. ^ "Laptops Take Flight". Computer Gaming World. November 1993. pp. 11–12. Retrieved 28 March 2016. 
  13. ^ Edwards, Benj (15 August 2008). "Eight ways the iMac changed computing". Macworld. 
  14. ^ Grendel. "3DP-Vert, a USB adapter for the Microsoft SideWinder 3D Pro, Precision Pro and Force Feedback Pro". Code.google.com. Retrieved 2015-11-11. 
  15. ^ Rivera, Andre (11 September 2006). "Hardware Compatibility and Drivers 5600". Q: Are MIDI/game ports supported under Vista? A: We've removed support for these types of devices, in favor of USB connected devices. 
  16. ^ a b "PC Gameport (Joystick) pinout". pinouts.ru. 
  17. ^ "Official design for a game port-MIDI adapter". MIDI Association. 
  18. ^ a b "System board D1170 reference manual l" (PDF). p. 21. 
  19. ^ "Small footprint Notebook style PS/2 Keyboard" (PDF). 
  20. ^ "Solid-state optical mouse sensor with PS/2 and quadrature outputs. Technical Data. HDNS-2000" (PDF). 
  21. ^ "Joystick Support". Microsoft Hardware Dev Center. 

External links[edit]