Game port

Da Wikipedia, l'enciclopedia libera.
Game port

Da-15 port.PNG
Un connettore DA-15 su una scheda audio

Tipo Porta di ingresso per joystick
Informazioni storiche
Ideatore IBM
Specifiche meccaniche
Inseribile a caldo
Esterno
N° piedini 15
Connettore DA-15
Piedinatura
DA-15 DSubM.png
Connettore maschio DA-15
Pied. 1 +5V +5V DC
Pied. 2 B1 Bottone 1
Pied. 3 X1 X asse per joystick 1 (0–100 kΩ)
Pied. 4 GND Massa per B1
Pied. 5 GND Massa per B2
Pied. 6 Y1 Y asse per joystick 1 (0–100 kΩ)
Pied. 7 B2 Bottone 2
Pied. 8 +5V +5V DC
Pied. 9 +5V +5V DC
Pied. 10 B4 Bottone 4
Pied. 11 X2 X asse per joystick 2 (0–100 kΩ)
Pied. 12 GND Massa per bottoni 3 e 4 (o uscita MIDI)
Pied. 13 Y2 Y asse per joystick 2 (0–100 kΩ)
Pied. 14 B3 Bottone 3
Pied. 15 +5 V +5 V DC (o ingresso MIDI, qualche volta sconnesso)

La game port (in italiano porta giochi) è il tradizionale connettore per dispositivi di entrata per videogiochi su PC con architettura x86. All'incirca dal 1990, la game port è stata solitamente integrata con PC I/O o schede audio, o ISA o PCI, o come una caratteristica incorporata di alcune schede madri; prima di ciò, era di solito su una scheda ISA dedicata. Microsoft ha cessato il supporto di game port con Windows Vista,[1] quindi è probabile che le aziende smettano di produrre schede con questo connettore. Tuttavia, è ancora totalmente possibile fornire driver di terze parti che funzionano con la game port, e alcune società che hanno prodotto schede con le game port in passato agiscono in questo modo. Sono anche disponibili sul mercato degli adattori USB che permettono ai controller delle game port di funzionare.

Dettagli della game port[modifica | modifica sorgente]

Interfaccia analogica[modifica | modifica sorgente]

Diversamente dalla maggior parte degli altri connettori (e controller) per joystick durante i primi tempi dei computer per casa e delle console per i giochi, la game port è in effetti analogica piuttosto che digitale, facendo affidamento su qualche forma di convertitore analogico-digitale (analog-to-digital converter, ADC) per interpretare i movimenti del joystick. I primi manuali per PC IBM descrivono questa porta come adatta per connettere due paddle analogiche piuttosto che dei joystick. Questo approccio storicamente ha dato ai PC IBM un vantaggio nei giochi di simulazione, specialmente i simulatori di volo,[senza fonte] ma d'altro canto, rendeva il modello e l'uso di più semplici joystick per arcade o console più complesso ed inutilmente contorto, a parte il fatto di essere essenzialmente incompatibile con qualsiasi interfaccia per joystick esistente, in particolare i joystick Atari con connettore DE-9, di fatto standard.

Acquisizione e programmazione[modifica | modifica sorgente]

Inoltre, mentre altri standard per i joystick (come i joystick Atari o NES) sono molto facili e semplici da usare per i programmatori, la game port richiede un'attenta programmazione e un'attivazione tempestiva dell'interrupt software per leggere un input. Questo naturalmente causava problemi di prestazioni in quanto leggere la game port richiedeva una notevole quantità di tempo per la CPU, specialmente in confronto a sistemi con una "normale" porta joystick digitale (TTL).

Circuiti[modifica | modifica sorgente]

La tipica implementazione di una game port usa un condensatore ed un semplice comparatore di tensione per formare una sorta di rozzo ADC. Per leggere un input questo circuito deve essere interrogato e resettato in precisi momenti (generalmente oltre 30 volte al secondo) in modo da garantire una sufficiente prontezza in fase di gioco. La frequenza di acquisizione dei dati ed i valori effettivi dipendono tipicamente dalla resistenza interna del joystick, dal rumore elettrico, dalla velocità della CPU e dalla costante temporale RC totale del condensatore utilizzato.

Problemi noti[modifica | modifica sorgente]

La sua natura analogica è stata anche la causa di molti problemi, ad es. tutti i tipi di joystick avevano bisogno di "calibrazione", anche quelli stile arcade, in quanto nessun controller di giochi e nessun joystick produceva ogni volta le stesse misurazioni, ma esse erano dipendenti dal modo esatto in cui era fatta l'acquisizione e perfino dalla velocità della CPU in alcuni modelli piuttosto scadenti. Inoltre, tutti i tipi di porte giochi per PC soffrono di rumore elettrico.

La procedura di calibrazione è ancora richiesta in qualche fase, anche sotto sistemi operativi moderni come Windows XP e di solito consiste nel muovere il joystick intorno a tutti i suoi assi per misurare i valori massimi di escursione su ciascun asse, non importa se il joystick usa segnali analogici (da potenziometri) o segnali digitali (usando microinterruttori o contatti). I joystick USB non richiedono calibrazione, in generale.

Ai tempi del DOS, ogni gioco che usava le porte giochi doveva fare la propria calibrazione, spesso ogni volta che il gioco partiva, e alcune routine di calibrazione malamente codificate non riuscivano nemmeno a funzionare in modo coerente e corretto, rendendo alcuni joystick inutilizzabili con alcuni giochi. Con Windows XP, è sufficiente solo un'unica calibrazione per joystick, che è assunta "valida" finché il joystick non è staccato.

Certe applicazioni e giochi, tuttavia, erano (e sono) in grado di usare alcuni joystick analogici senza calibrazione esplicita, sotto determinate limitate condizioni. In generale, se è richiesto solo un input puramente discrezionale senza nessuna informazione dotata di una precisa intensità, un joystick analogico può essere "autocalibrato" semplicemente lasciandolo in posizione centrale e prendendo una misura, e usando poi qualche soglia arbitraria o adattativa per rilevare il movimento e l'escursione dalla posizione centrale. La limitazione di questo metodo è che la lettura dello stesso joystick sulla stessa game port può cambiare nel tempo, e alcuni joystick possono non funzionare affatto con questo metodo. Inoltre, il joystick deve essere in posizione centrale almeno una volta quando ha luogo l'"autocalibrazione" implicita, anche se non esplicitamente dichiarato.

Caratteristiche elettroniche[modifica | modifica sorgente]

La corrente massima erogabile dalla porta giochi è di circa 750 mA,[2] tuttavia è condivisa con la tastiera (max 100 mA[3]), il mouse (~ 25 mA[4]), e la porta VGA (50 mA[2]). Restano così approssimativamente 575 mA ad effettiva disposizione della game port.

Estensione delle capacità della game port[modifica | modifica sorgente]

La game port supporta nativamente solo 4 distinti pulsanti per controller, tuttavia esistono joystick avanzati in grado di gestirne un numero maggiore. La prima variante di joystick avanzato sacrifica la possibilità di collegare due controller per poter gestire i tasti aggiuntivi al posto di quelli che, normalmente, utilizzerebbe il secondo giocatore. Altri joystick hanno un circuito interno modificato che codifica lo stato dei pulsanti su 4 bit in modo da poterne gestire fino a 16. I joystick di alta gamma come il Microsoft SideWinder fanno affidamento sulla multiplazione di un flusso proprietario di dati attraverso gli input dei 4 pulsanti standard e a volte attraverso i piedini "inutilizzati", ottenendo pieno supporto per un numero di pulsanti piuttosto elevato (ad es. 16 o 20), e, in alcuni casi, diventa possibile implementare caratteristiche speciali come collegare in Daisy chain più joystick, gestire il force feedback o programmare le funzioni del joystick. Ovviamente i dati di tutti questi tipi di joystick (deviando dallo standard IBM), non possono essere interpretati con i metodi convenzionali, rendendo così necessario l'uso di driver specifico per ogni modello.

Alcuni appassionati di hardware e di fai da te hanno trovato usi alternativi per la game port, collegandole una vasta gamma di dispositivi di input, dai misuratori di tensione alle interfacce di acquisizione dati.

Storia e varianti[modifica | modifica sorgente]

Y-splitter

L'originale game port fu ideata dalla IBM (rilasciata nel 1981 come una scheda di espansione del primo PC IBM[5]) che inizialmente consentiva di gestire quattro assi analogici e quattro pulsanti su una porta, permettendo di collegare due joystick e due paddle, sebbene questo richiedesse uno speciale cavo "Y-Splitter" e non fosse completamente supportato da alcune porte midi/game di solito posizionate sulla scheda audio.

Alcune game port (di solito incorporate nelle vecchie schede madri o su schede di I/O) non supportavano completamente 4 assi e 4 pulsanti, rendendo possibile solo l'uso di un singolo joystick a 2 assi e 2 pulsanti.

La porta giochi a 15 piedini non è più fornita sui PC fabbricati attualmente[senza fonte], benché esistano adattatori che consentono a joystick e controller più vecchi di connettersi via USB[6] e Microsoft ha terminato di fornirle nativamente supporto a partire da Windows Vista, con la motivazione della maggiore diffusione delle periferiche da gioco USB. Questo lascia il supporto per le game port a carico del fabbricante del dispositivo (cioè scheda audio o convertitori USB) su cui la stessa game port è montata.

Connettori MIDI[modifica | modifica sorgente]

Le porte giochi usano connettori DA-15 (chiamati anche scorrettamente DB-15). Da quando la game port, intorno al 1990, si è spostata dalle schede di espansione dedicate, alle schede audio, questi connettori di solito fungono anche da connettori per strumenti MIDI; per rendere questo possibile, due dei piedini +5V e GND superflui dello standard originale sono stati ridedicati agli input e output MIDI. Per usare una porta giochi con strumenti MIDI, occorre un cavo con un DA-15 maschio ed uno femmina e due connettori DIN maschi da 5 piedini. I driver e l'hardware per le funzioni MIDI delle game port si basano sull'interfaccia MIDI MPU-401 della Roland, ormai standard (solo in modalità UART), e supportano la maggior parte delle applicazioni standard MPU-401 per Windows e DOS. Il "modello corretto" ufficiale di un adattatore MIDI per una porta giochi si può trovare in questa pagina MIDI.

Voci correlate[modifica | modifica sorgente]

Note[modifica | modifica sorgente]

  1. ^ Andre Rivera, Hardware Compatibility and Drivers 5600, 11 settembre 2006.
    «Q: Are MIDI/game ports supported under Vista? A: We've removed support for these types of devices, in favor of USB connected devices.».
  2. ^ a b System board D1170 reference manual. 091205 rm.com
  3. ^ Small footprint Notebook style PS/2 Keyboard. 091205 img.custompublish.com
  4. ^ Solid-state optical mouse sensor with PS/2 and quadrature outputs. Technical Data. HDNS-2000. 091205 iammp.org
  5. ^ J. B. Calvert, The Game Control Adapter in A Review of Electronics, 18 agosto 2002.
  6. ^ USB to Game Port Adapter. URL consultato l'8 marzo 2010.

Collegamenti esterni[modifica | modifica sorgente]