ゲームコントローラー用のI/Fを標準化
さまざまなサードパーティが参入する
あまり広く知られていないがGame Port、あるいはGame Controllerそのものは最初のIBM-PCから標準で「定義されていた」。あくまでも定義がされていただけであって、標準で搭載されていたわけではない。
IBMはGame Controller Adapter(55ドル)を別売りの形で用意しており、これを実装するとジョイスティックなどのゲーム用コントローラーを接続できた。コネクターは15ピンのD-Sub(正確に言えばDA-15コネクター)が利用されており、この1ポートで2つのジョイスティックを装着できるというものだった。
画像の出典はHACKADAY.IO。ここには回路図も掲載されている。
ただ初代IBM-PCは家庭用というよりもビジネス用という用途が多かったこともあってか、IBM自身はGame Controller Adapterこそ用意したもののジョイスティックなどのコントローラーそのものは用意せず、それもあってか当初の売れ行きはあまり芳しいものではなかった。
その後、1984年にIBM-PCjrを発表するにあたり、今度は家庭用をターゲットにしたこともあって、なにかしら必要と感じたのだろう。IBM PCjr Attachable joystickも発売するのだが、このコネクターは独自の8ピンのもので、Game Controller Adapterとまったく互換性がなく、かつIBM PCjrそのものの売れ行きも不調だったため、こちらもあまり広く利用されるに至っていない。
それでもGame ControllerのI/Fが標準化されたことは大きなポイントであり、サードパーティーからジョイスティックを始めとするゲームコントローラーの類がいろいろ登場したし、サードパーティーからGame Controller Adapter互換のI/Fカードも次第に増え始めた。
ジョイスティックの構造そのものは非常にシンプルである。ジョイスティックそのものは、2つの100KΩの可変抵抗器を、ジョイスティックのX軸とY軸の動きに連動するように直角に配し、ここからX軸とY軸の変量を抵抗値としてポートに返す形になる。一方でスイッチの方は純粋にOnかOffかを読み取る格好だ。
ちなみにボタンの方はともかく、抵抗値の読み取りの方は今ならADC(Analog Digital Converter)を使って一発で高精度に読み取りできるが、1984年当時はまだADCの精度が低く、しかも高価だった。
そこで可変抵抗器の抵抗値を使い、コンデンサーと抵抗を使って簡単なワンショットタイマー回路を構成し、これをNE588(4chタイマー)で測定するという形で抵抗値(に比例する値)を読み取っている。高精度とは言い難いが、低価格なわりにそれなりの精度でジョイスティックのX/Y軸の位置を読み取れたようだ。
一応1個のGame Portで2軸のジョイスティックとボタン2つを持つゲームデバイスを2台まで接続できることになっているが、その後ゲームデバイスの多機能化にともない、ボタンやジョイスティックの数が増えるようになったため、1デバイスでGame Portを占有する方向に進んだのは必然である。
週刊アスキーの最新情報を購読しよう
本記事はアフィリエイトプログラムによる収益を得ている場合があります