ゲームポート

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索
DA-15コネクタ
サウンドカード上の
ゲームポート
DB 15 gameport.svg

ゲームポートx86ベースのパーソナルコンピュータ(パソコン)にビデオゲーム用の入力デバイス(ゲームコントローラ)を接続するレガシーインターフェースである。通常の場合、ISAまたはPCIのI/Oカードやサウンドカード、いくつかのマザーボードではオンボード上に実装している。

IBM PC上での他のタイプのゲームコントローラコネクタ[編集]

以前からパラレルポートシリアルポートPS/2コネクタなどをゲームコントローラ用のポートとして使用する試みはあったが、プラグアンドプレイ性に優れたUniversal Serial Bus (USB)はその普及以降、標準的なゲームコントローラコネクタとして定着していった。しかし、機器側にインテリジェントなコントローラを必要とせず、機器を安価に製造可能なため、ゲームポート接続のアナログジョイスティックゲームパッドは選択肢の一つとして考えられている。

MIDIポート[編集]

ゲームポートはDA-15コネクタ(DB-15と誤って呼ばれている場合もある)を採用しており、余剰・重複端子にMIDI信号も配線されていることが多い(Pin15にMIDI IN、Pin12にMIDI OUT)。これはゲームのBGM発音にMIDIが用いられた経緯による。MIDI規格では入出力端子に5ピンDINコネクタが規定されており、DA-15コネクタのままではMIDI機器(MIDIケーブル)を接続できず、変換コネクタや変換ケーブルを必要とする。ゲームプレイと音源モジュールによるBGM再生を同時に行うためにはゲームポートとMIDI OUTポートを併用する必要があり、左記のコネクタ変換を兼ねた分岐ケーブル(オスとメスのDA-15と2つのオスの5ピンDINコネクタを備える)が用意されている。

MIDIポート用のハードウェアとデバイスドライバは、ローランドのMPU-401 MIDI インタフェース(UARTモードのみ)を基本としており、WindowsやMS-DOS用の多くのMPU-401用アプリケーションをサポートしている。MIDIポートの公式な設計はこのページで参照することができる。

ゲームポートの詳細[編集]

アナログインタフェース[編集]

ゲームポートは初期の家庭用パソコンやゲーム機で見られるインタフェースとは違い、アナログ的といえる。ゲームコントローラの動きを横取りするためにアナログ-デジタル変換を採用している。初期のIBM PCの説明書には、デジタル式ジョイスティック類よりも、アナログ式パドルを接続するのに適切と記述されていた。この観点から見ると、ゲームポートはシミュレーションゲーム、特にフライトシミュレータに適しているが、複雑な操作盤やジョイスティックの使用には向いていないといえる。当時最も普及していたインターフェースであるアタリのDE-9コネクタとは互換性がない。

データ取得とプログラミング[編集]

アタリや任天堂のジョイスティックのようなインタフェースはプログラマが扱うのが容易であるのに対して、ゲームポートは慎重にプログラムする必要があり、入力を読むためにタイミングよくソフトウェア割り込みでトリガをかける必要がある。システムと通常のデジタル (TTL) ジョイスティックポートを比較するなどを行うゲームポートの読み出しに著しくCPU時間を消費し、パフォーマンス問題を引き起こす。

回路[編集]

ゲームポートの典型的な実装は、一個のコンデンサと単純なコンパレータを使い、荒っぽい積分型ADコンバータの出力形式の並びを使い、入力を読み取るために、正確なタイミングでポーリングとリセットを行う。 ゲーム入力のレスポンスをよくするためには、これを1秒間に通常30回以上行う必要があり、実際に得られたデータの回数と値はゲームコントローラ内の抵抗や回路上のノイズやCPUスピード、ゲームコントローラ全体の容量からくるRC回路時定数に依存する。

キャリブレーション[編集]

そのアナログ特性ゆえにゲームポートを使用するすべての種類のゲームコントローラはキャリブレーションが必要となる。 基準軸からどの程度外れているかを測定するために、すべての軸とボタンを順序に沿って測定していく。また、デバイスが実装する出力する信号の種類(可変抵抗からアナログ信号・マイクロスイッチや接点を使って得たデジタル信号など)に関わらずキャリブレーションが必要である。

MS-DOSでは、ゲームポートを使うゲーム毎に、ゲームプログラム自身でキャリブレーションを行わなければならなかった。このキャリブレーションはゲーム開始時に行われ、いくつかの貧弱なキャリブレーションコードによって、ゲームコントローラを適切に動作させることに失敗することもあり、一部のゲームではゲームコントローラが使用できなくなることもある。

Windows XPなど後世代のOS下でもキャリブレーションが必要である。

歴史と派生品[編集]

元々のゲームポートはIBMによって設計され、当初は一つのポートに4軸アナログスティックと4つのボタンをサポートしていた。その後2つのジョイスティックと4つのパドルを接続できるようになったが、それには特殊な「Y-splitter」ケーブルが必要で、MIDI/ゲーム兼用ポートでは完全な動作をサポートしていない。

古いマザーボードやI/Oカードの一部には、デバイスが実装するボタンの一部が使用できないなどの不具合が発生する場合がある。

MIDゲームポートはUSBポートを採用したゲームコントローラの普及の結果、多くのパソコンには実装されなくなった。しかし、一部のマザーボードには搭載されていて、MIDIポートもしくはゲームポートとしてBIOS上で設定が可能になっている。また、Radio Shackのような小売業者はUSB上で古いゲームコントローラを使うためのアダプタが販売している。

ゲームポートの機能の拡張[編集]

本来、4つ以上のボタンをサポートしていない仕様上、4つ以上のボタンをもつゲームコントローラでは専用ドライバが必要になる。 標準のドライバでは未使用だったピンを使うまたは、キーマトリクスの使用などで機能を実現している。キーマトリクスにすることによって最大16個のボタンを組み合わせることができるようになるが、三つ以上のキーの同時押しは逆流防止ダイオードを入れない場合できなくなる。

Microsoft Sidewinderのようなゲームポートを使ったハイエンドゲームコントローラは、4つの標準ボタン入力と未使用ピンに独自のデータストリームを多重化して流すことによって、複数のジョイスティックをデイジーチェーン接続したり、フォースフィードバック機能をつけたり、いくつかの条件下でジョイスティックをプログラミングできたりする一方で、16個や20個など多くのボタンを完全にサポートしている。

しかし、専用ドライバを必要とするゲームコントローラは、より多くのCPU時間を消費したり、使用できる環境がドライバが対応しているOSに依存するなどの欠点が挙げられる。

何人かのハードウェアもしくはDIY愛好家は、電圧や電流測定、単純なインタフェースやデータ取得方法などを組み合わせることにより、ゲームポートに接続する入力デバイスを複数接続し、他のアプリケーションからそれらを扱う方法を発見している。

関連項目[編集]

外部リンク[編集]