Gameport

aus Wikipedia, der freien Enzyklopädie
Gameport an einer Soundkarte

Der Gameport [ˈgeɪmpɔːɹt] (eigentlich Game port) ist ein Port an PC-artigen Computern, an den man analoge Joysticks, Paddles, Gamepads und bei neueren Ports MIDI-Geräte anschließen kann. Es können bis zu vier analoge Steuerungsachsen und vier digitale Feuerknöpfe über einen Gameport abgefragt werden.

Geräte zum Anschluss an den Gameport benötigen nur ein Minimum an eigener Elektronik, da die Auswertung der analogen Signale im Computer erfolgt (zur prinzipiellen Funktionsweise aller am Gameport anschließbaren Geräte siehe Paddle). Der Gameport wurde bereits für IBMs erste PCs (1981) als Erweiterungskarte angeboten und gehört damit zusammen mit RS-232-Seriell und Centronics-Parallel zu den „klassischen“ PC-Schnittstellen.

Inzwischen wurde der Gameport, ebenso wie die EIA-232-Schnittstelle und die parallele Schnittstelle, durch den vielseitigeren USB-Anschluss verdrängt, der jedoch komplexere Elektronik in den Eingabegeräten benötigt. An neuen PCs ist deshalb heute zumeist kein Gameport mehr vorhanden. Zugleich steht der freigewordene Platz auf der Blende nun für Surroundbuchsen zur Verfügung.

Während der Linux-Kernel bis heute (2020) einen Treiber für den Gameport enthält, bietet das Betriebssystem Windows ab Windows Vista keinerlei Unterstützung mehr für den Gameport und setzt für die entsprechenden Geräte vollständig auf USB. Allerdings ist es für die Hersteller von Gameport-Hardware zumindest unter den 32-Bit-Versionen von Windows Vista und Windows 7 durchaus noch möglich, unsignierte eigene Treiber bereitzustellen, was teilweise auch getan wurde. Unter den 64-Bit-Versionen dieser Betriebssysteme ist dies dagegen im Normalbetrieb nicht möglich, da Microsoft hier die Treibersignierung erzwingt.[1] Der Gameport ist daher beinahe vollständig vom Markt verschwunden.

Am Computer ist der Gameport als zweireihige 15-polige D-Sub-Buchse ausgeführt. Seit dem PC System Design Guide von Intel und Microsoft ist der Anschluss als goldfarben vorgesehen. Es können über einen Y-Adapter auch zwei Joysticks bzw. Gamepads zugleich angeschlossen werden, allerdings gilt dies nur für zweiachsige und zweiknöpfige Standard-Joysticks. Mehrachsige Joysticks und Gamepads mit mehr Knöpfen benötigen einen ganzen Gameport für sich selbst.

Zusätzlich können, wenn der Gameport wie seit ca. 1990 üblich auf einer Soundkarte oder einer Hauptplatine mit Onboard-Sound integriert ist, mittels eines speziellen Kabels meistens auch MIDI-Ein- und Ausgabegeräte angeschlossen werden, die dann von der Software des PCs nach dem Standard MPU-401 angesprochen werden. Diese Möglichkeit des Gameports wurde von den ersten Sound-Blaster-Karten eingeführt und ist nicht Bestandteil der ursprünglichen Norm. Auch MPU-401 wird ab Windows Vista nicht mehr unterstützt. Im Linux-Kernel ist bis heute (2020) ein MPU-401-Treiber enthalten.

Pinbelegung

Gameport-Stecker
Sub-DA15 Steckerbelegung: (Draufsicht) Pfostensteckerbelegung: (Draufsicht)
..1...2....3...4....5....6....7...8

...9..10..11..12..13..14...15

..8....7....6....5....4....3....2....1

..-...15..14..13...12..11...10...9

Pin Beschreibung
1 Versorgungsspannung +5 Volt
2 Joystick 1 Taste 1
3 Joystick 1 X-Achse
4 Masse
5 Masse
6 Joystick 1 Y-Achse
7 Joystick 1 Taste 2
8 Versorgungsspannung +5 Volt
9 Versorgungsspannung +5 Volt
10 Joystick 2 Taste 1
11 Joystick 2 X-Achse
12 Masse (MIDI Out)
13 Joystick 2 Y-Achse
14 Joystick 2 Taste 2
15 +5 Volt (MIDI In)

Zwischen den Pins der Achsen und +5 V (Pin 1) wird das 100-kΩ-Potentiometer geschaltet, das mit dem eigentlichen beweglichen Joystick verbunden und meist in dessen Bodenteil eingebaut ist. Wenn die Tasten des Joysticks betätigt werden, werden die entsprechenden Leitungen mit Masse verbunden.

Es ist zu beachten, dass Gameports auf PCI-Karten oft nur +3,3 Volt Spannung statt +5 Volt auf den entsprechenden Pins ausgeben. Dadurch funktionieren einige Geräte mit aktiver Elektronik an solchen Karten nicht mehr.

Programmierung

Während moderne Betriebssysteme eigene Treiber für den Gameport mitbringen, die Spielen und Anwendungsprogrammen skalierte und normierte Werte zurückgeben, war dies zu DOS-Zeiten nicht der Fall. Da DOS selbst keinen eigenen Treiber für den Gameport mitbringt, mussten Programme und Spiele den Gameport direkt programmieren und die Werte abfragen.

Hierfür muss zuerst ein beliebiger Wert an den I/O-Port 201hex geschrieben werden und dann in einer Schleife fortwährend vom gleichen Port gelesen werden, bis die entsprechenden Bits der jeweiligen Achsen auf 0 zurückgefallen sind. Die Zeit bis zum Fallen auf 0 ist dabei proportional zum gemessenen Widerstand, welcher jedoch – je nach Joystick-Modell – nicht proportional zur Achsauslenkung sein muss.

Im PC-BIOS existiert eine Funktion, die über Software-Interrupt 15hex aufgerufen werden kann, welche die Joystick-Werte vom Gameport wie oben beschrieben abfragt und für die analogen Achsen Werte zwischen 0 und 255 zurückgibt.[2]

Weblinks

Commons: Game port – Sammlung von Bildern, Videos und Audiodateien

Einzelnachweise

  1. Archivlink (Memento des Originals vom 14. September 2007 im Internet Archive)  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/forums.creative.com
  2. http://www.designin.de/Artikel/PC-Schnittstellen/PC-MT05.PDF