Personal tools
You are here: Home KtJ's Blog ゲームポートのしくみ
« May 2017 »
Su Mo Tu We Th Fr Sa
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
Recent comments
Insights like this l cars with insurance deals 2017-05-25
Oh my gosh, I adore progressive car insurances 2017-05-25
Perfect answer! That http://onlinekreditnet.info/günstige-kredite-online.html 2017-05-25
What a neat article. auto fiesta insurance 2017-05-25
Wow I must confess y free car insurance drive away 2017-05-25
 

ゲームポートのしくみ

by ktj posted at 2016-10-01 09:54 last modified 2016-12-31 08:07

USBが普及する前にPC互換機で広く利用されたジョイスティック用の端子であるゲームポート(game port)について調べてみたのでまとめてみる。

ゲームポートとは

ゲームポートはDサブ15ピン(DA-15)のコネクタを介してジョイスティックとPCとを接続するインターフェースである。英語版Wikipediaによれば、ゲームポートは81年のIBM-PC登場時点で純正オプションとして用意されていたようだ。当初は単独のカードとして提供されていたが、その後はMulti/Super IOカードに含まれるようになったり、サウンドカードに含まれるようになった。

構造的には4軸のアナログ入力と4つのデジタル入力とを備えた端子であり、当初は二股ケーブルを用いて2軸、2ボタンのジョイスティックを2つ接続することを想定していた模様。そのためか端子の上段(ピン1~8)・下段(ピン9~15)のそれぞれに2軸、2ボタンの入力が割りあてられている。具体的にはピン3,6,11,13がアナログ入力で、ピン2,7,10,14がデジタル(ボタン)入力となっている。DOS時代末期はスロットルレバーを含めた3軸、4ボタン、8方向の視点切り替えスイッチ付きのフライトスティック等が登場している。

ジョイスティック側の構造

epanprama.netに記載のドキュメントによれば、ジョイスティックのXY軸(やスロットル)の傾きを検出するためにVccとアナログ入力端の間に100kΩの可変抵抗を配置するようになっている。そして、レバーやリンク機構などを用いてジョイスティックやスロットルを可変抵抗の回転つまみに連結し、これらの傾きによって可変抵抗の抵抗値が変化するようにする。なお、ボタンについてはアタリ規格等と同様各端子とGNDとの間にボタンを配置するようになっている。

PC側の構造

ボタンについては5V/1kΩで端子をプルアップしておく。アナログ入力についてはやや複雑で(epanorama.net参照)、アナログ端子を抵抗(2.2kΩ)やコンデンサ(22nF)とともにNE558等のタイマICに接続するようになっている。タイマICは、コンデンサが放電されてから所定の電圧まで充電されるまでの間、Hを出力する回路である(充電が終わるとLを出力し続ける状態になる)。マルツオンラインの解説によれば(ゲームポートに使用されているNE558はリンク先で説明されている555を4回路内蔵したIC)、NE558がHを出力し続ける時間は1.1CRとのことであり、最短(ジョイスティックの可変抵抗が0Ωの時)で2200*2.2*10^-8*1.1=約53マイクロ秒、最長(ジョイスティックの可変抵抗が100kΩの時)で(2200+100000)*2.2*10^-8*1.1=約2.5ミリ秒ということになる。(2016/10/7追記: epanorama.netの記載によればCrystal Semiconductor CD4376Bのリファレンスデザインとしてコンデンサは5.6nFのものを推奨しており、この場合はNE558がHを出力し続ける時間はおおよそ14~630マイクロ秒ということになる。また、PCI接続のサウンドコントローラの場合は計時用のカウンタ回路を内蔵している場合もあり、I/Oポートへのアクセスを数回に抑えることが可能である。無論専用のドライバが必要であるため基本的にはWindows向けの機能と思われ、多くのDOSゲームでは従来どおりCPUがちまちまと計時する必要がある)

(2016/12/31追記)IBM PC Technical Referenceによれば、タイマ時間は"24.2 + 0.011×抵抗値"(単位はマイクロ秒)とのこと。このことから純正ゲームポートカードに使用されているコンデンサは10nF、抵抗は2.2kΩと推定される。(追記終わり)

PCのCPUはIOを介して周期的にタイマICの出力をチェックし、出力H(負論理なのでI/Oポート上では0)を連続して検出した回数を持って上記時間を計測可能であり、計測した時間から可変抵抗の抵抗値を判断することができる。ゲームポートはこのように時間によってジョイスティックやスロットルの傾きを検出するものであり、タイマICの出力をチェックする間隔を短くすれば分解能は向上する。そのため、十分な分解能を得ようとする場合、ジョイスティックやスロットルの傾きによっては(可変抵抗の抵抗値を最大にしたとき)CPUは数百回I/Oポートにアクセスすることになる。

このように、タイマICをA/Dコンバータ代わりに使うテクニックはA/Dコンバータが高価だった当時は広く利用されていたらしく、AtariAgeのフォーラムによればAtari2600にも採用されていたとのこと(Atariの場合はTIAカスタムチップにタイマを内蔵)。

ジョイスティックの読み取り

Programming to Receive Joystick Input in Dosによれば、ジョイスティックの読み取りは以下の手順で行われる。

  1. CPUへの割り込みを禁止する
  2. ゲームポートにアサインされたI/Oポート(典型的には0x201)に0を書き込む。これによってコンデンサが放電されて充電が始まる
  3. 上記I/Oポートを読み出す。この時上位4ビットはボタンの状態を示し、下位4ビットの各々が4系統のタイマの出力値となる
  4. 下位4ビットのそれぞれについて、0が出力されていればカウントアップ
  5. 3~4の処理を、I/Oポートの読み出し値の下位4ビットがすべて1になるまで周期的に繰り返す。この結果、下位4ビットのそれぞれについて0が出力され続けた時間が計測される
  6. CPUへの割り込み禁止を解除する
  7. I/Oポートの上位4ビットの値からボタンの状態を判断する
Category(s)
Other Topics
The URL to Trackback this entry is:
http://www.ktjdragon.com/ktj/ktjs-blog/30fc30e030fc30c8306e3057304f307f/tbping

Sharp thinking! Than

Posted by kfz versicherungen at 2017-05-16 11:22
Sharp thinking! Thanks for the answer.

New threads of learn

Posted by car insurance union at 2017-05-18 09:21
New threads of learningI guess most of you know by now that I love words and writing. But that’s not the whole of my ‘thing’, my purpose, which is about coaching and inspiring others to realize the power of their words. And that

Pin my tail and call

Posted by mission insurance at 2017-05-18 14:41
Pin my tail and call me a donkey, that really helped.

Everyone loves what

Posted by car insurance in mississauga at 2017-05-18 18:50
Everyone loves what you guys are usually up too. Such clever work and coverage! Keep up the very good works guys I’ve incorporated you guys to our blogroll.

My problem was a wal

Posted by top 5 largest insurance companies in the world at 2017-05-18 23:42
My problem was a wall until I read this, then I smashed it.

Now that's subtle! G

Posted by michigan assembled vehicle insurance at 2017-05-19 04:06
Now that's subtle! Great to hear from you.

Killarna kommer nog

Posted by kredit günstig at 2017-05-19 06:25
Killarna kommer nog inte flina så mycket när fotograferna är borta och dom skakar galler i åratal i en cell på 4 kvm./Nizze

If not for your writ

Posted by insurance group for a vw golf at 2017-05-19 07:21
If not for your writing this topic could be very convoluted and oblique.

These topics are so

Posted by american car collectors at 2017-05-19 07:41
These topics are so confusing but this helped me get the job done.

You've got to be kid

Posted by can car insurance be deducted from tax at 2017-05-19 08:10
You've got to be kidding me-it's so transparently clear now!

Woah! I’m real

Posted by car insurance oxford at 2017-05-19 16:07
Woah! I’m really digging the template/theme of this site. It’s simple, yet effective.A lot of times it’s very difficult to get that “perfect balance” between usability and visual appearance. I must say you’ve donea superb job with this. Additionally, the blog loads extremely quick for me on Opera.Excellent Blog!

Caro amigo VascoEnvi

Posted by car insurance quotes daily at 2017-05-19 18:03
Caro amigo VascoEnvio-te um grande abraço de parabéns.Desejo que passes um bom dia na companhia de quem mais desejares.Que repitas por muitos anos, com tudo de bom.José Vermelho

Now we know who the

Posted by brook insurance at 2017-05-19 21:19
Now we know who the sensible one is here. Great post!

That's really thinki

Posted by benefits of umbrella insurance at 2017-05-19 21:59
That's really thinking at a high level

Thanks! I try hard.

Posted by insurance for car in california at 2017-05-19 22:22
Thanks! I try hard....I greatly admire you, the Baron, Hesperado, and Zenster.I am trying to get everyone to see that we are all in the middle of a complicated geo-political chess game with sophisticated players who are quite good at obscuring their strategy from the common observer. Many moves are planned ahead with the object to win the game. We are lowly pawns in the larger chess game, and our kings are fully willing to sacrifice us in the quest to win the game.

That kind of thinkin

Posted by car insurance rates by engine size at 2017-05-21 03:43
That kind of thinking shows you're on top of your game

What a pleasure to f

Posted by lowest car insurance nyc at 2017-05-21 11:39
What a pleasure to find someone who thinks through the issues

Brilliant. More rese

Posted by quotes for multi car insurance at 2017-05-21 13:41
Brilliant. More research needs to be done into gender-neutral avatars, or more multiple characters for the one story. Even Fable resorts to gender-stereotypes on occasion.Brilliant writing

Your packing looks a

Posted by is car insurance required in all states at 2017-05-21 14:01
Your packing looks amazingly organised, I must say. And I love that hat, as always.I thought it was hilarious, on Christina's blog you mentioned that after you got off the phone you were blethering on to Jon about her. The same was happening in this house, only I was blethering on about you to Mr D! I had to explain who had sent me the crazy apron, and was showing him pictures and telling him about your Goa trip and your amazing house... aren't we a funny bunch x

That's way the beste

Posted by flo progressive mad men at 2017-05-21 17:36
That's way the bestest answer so far!

People normally pay

Posted by 800 number for progressive car insurance at 2017-05-21 21:20
People normally pay me for this and you are giving it away!

You're on top of the

Posted by tiger.com car insurance at 2017-05-21 21:49
You're on top of the game. Thanks for sharing.

ei mentira pato usar

Posted by vehicle insurance nova scotia at 2017-05-21 22:43
ei mentira pato usar mascara de cachorro ei tah mentira da porra mano eu tinha fala do jogos de humor e me aparece issor vai toma no cu mano o oque me aparece vai ser dana ne nao manos

I'd venture that thi

Posted by car business insurance quote at 2017-05-21 23:42
I'd venture that this article has saved me more time than any other.

That's way the beste

Posted by car insurance providers for young drivers at 2017-05-22 01:57
That's way the bestest answer so far!

Superb information h

Posted by names of all car insurance companies at 2017-05-22 06:23
Superb information here, ol'e chap; keep burning the midnight oil.

"The fundamenta

Posted by loyds car insurance at 2017-05-22 09:24
"The fundamental grievance is that they are not in power... everywhere." I always have fun trying to find your thesis sentence, and for today this has got to be it. You really hit the nail on the head again, as usual.

I like this web sit

Posted by upcic.com at 2017-05-22 10:15
I like this web site very much, Its a very nice position to read and incur information. “From now on, ending a sentence with a preposition is something up with which I will not put.” by Sir Winston Churchill.

Great insight. Relie

Posted by insurance value of car uk at 2017-05-22 11:39
Great insight. Relieved I'm on the same side as you.

Your article perfect

Posted by insurance companies winston salem nc at 2017-05-22 12:05
Your article perfectly shows what I needed to know, thanks!

Short, sweet, to the

Posted by small business insurance quote online at 2017-05-22 20:10
Short, sweet, to the point, FREE-exactly as information should be!

I actually found thi

Posted by http://www.netglobal.tv/ at 2017-05-24 20:57
I actually found this more entertaining than James Joyce.

An answer from an ex

Posted by naragansett insurance at 2017-05-24 23:44
An answer from an expert! Thanks for contributing.
Add comment

You can add a comment by filling out the form below. Plain text formatting.

(Required)
(Required)
(Required)
(Required)
(Required)


Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: