まずはGT ForceのベンダーIDとプロダクトIDを調べる。デバイスマネージャから。。。。
0x046D:0C93
これをキーに、Snoopy ProでUSBパケットキャプチャー。
たなみにGT Forceは2軸6ボタンのジョイスティックとしてドライバレスでも使えるが、ドライバ入れると3軸6ボタンに変化して、フォースフィードバックが使えるようになる。
解析結果まとめ
【入力】
X軸:ステアリング、10bit
Y軸:アクセル+ブレーキ、8bit
ボタン:6個
ポインター1:ドライバ入れるとアクセルに化ける、8bit
ポインター2:ドライバ入れるとブレーキに化ける、8bit
【出力】
マウス:名前とはちがって、フォースフィードバック用と思われる。
-----
ということで、デスクリプター書いてみた。
PC用ロジクールのドライバが使えるので、おそらく問題ないだろう。
しかしPS2で使用できるかは未知数。(じつはPS2持ってない)
------
0x046D:0C93
これをキーに、Snoopy ProでUSBパケットキャプチャー。
たなみにGT Forceは2軸6ボタンのジョイスティックとしてドライバレスでも使えるが、ドライバ入れると3軸6ボタンに変化して、フォースフィードバックが使えるようになる。
解析結果まとめ
【入力】
X軸:ステアリング、10bit
Y軸:アクセル+ブレーキ、8bit
ボタン:6個
ポインター1:ドライバ入れるとアクセルに化ける、8bit
ポインター2:ドライバ入れるとブレーキに化ける、8bit
【出力】
マウス:名前とはちがって、フォースフィードバック用と思われる。
-----
ということで、デスクリプター書いてみた。
PC用ロジクールのドライバが使えるので、おそらく問題ないだろう。
しかしPS2で使用できるかは未知数。(じつはPS2持ってない)
------
PR
昨日までの内容で、標準のプレステコントローラをUSBジョイパッドに変換できるようになった。まあ、ここまでは簡単なので、だれがやっても同じような感じになるだろう。
で、次に簡単そうなもの、ということで、
ネジコン -> GT FORCE をやってみよう。
ネジコンのプロトコルは、もうネットのあちこちに書いてあるので、説明不要。
問題は、GT FORCEである。GT FORCEのように見せるためには、GT FORCEの構造を知る必要がある。
ということで、ネットでGT FORCEの解析情報を集めてみたのだが、、、、ない!ぜんぜんない!
ということで、ヤフオクでGT FORCE買いました。10年前のものにもかかわらず、800円ちょっとしました。送料込みだと、1500円くらい?
さて、GT FORCEのようなUSBコントローラを解析するためには、
1.秋月で買えるZEROPLUSロジックアナライザ+USBブリッジを買ってキャプチャする
2.SnoopyPro.exeでキャプチャする
3.VMWareでusb.analyzer.enable = "TRUE"にしてvmware.logを読み解く
ほんとうは1.がいいのだが、お金がないので、仕方なく2.で。
2.がうまくいかなかったら、3.かな?
とりあえず、2.で初めてみる。
で、次に簡単そうなもの、ということで、
ネジコン -> GT FORCE をやってみよう。
ネジコンのプロトコルは、もうネットのあちこちに書いてあるので、説明不要。
問題は、GT FORCEである。GT FORCEのように見せるためには、GT FORCEの構造を知る必要がある。
ということで、ネットでGT FORCEの解析情報を集めてみたのだが、、、、ない!ぜんぜんない!
ということで、ヤフオクでGT FORCE買いました。10年前のものにもかかわらず、800円ちょっとしました。送料込みだと、1500円くらい?
さて、GT FORCEのようなUSBコントローラを解析するためには、
1.秋月で買えるZEROPLUSロジックアナライザ+USBブリッジを買ってキャプチャする
2.SnoopyPro.exeでキャプチャする
3.VMWareでusb.analyzer.enable = "TRUE"にしてvmware.logを読み解く
ほんとうは1.がいいのだが、お金がないので、仕方なく2.で。
2.がうまくいかなかったら、3.かな?
とりあえず、2.で初めてみる。
信号のプロトコルについては、
store.curiousinventor.com/guides/PS2#hardware
に詳しくかいてある。PICとの接続方法も、ここを見ればわかる。
SPIというチップ間通信ではメジャーなプロトコルで、PICはこのSPI読み書きをハードウェアで処理できる。ハードウェアで処理できるメリットは、通信している間に別の処理ができることと、プログラムが簡単になること。
しかし、18F4550や18F2550のSPIにはバグがある(と俺は思っている)ので、SPIはソフトウェアで実装することにした。
いや、けっこうがんばったんだけど、20MHzのクロックでは、どうやってもだめだった。プレステのコントローラにあわせてクロックを調整すればどうにかなりそうだが、そうなるとUSB側が困る。
無理してハードウェアでやらなくても、プレステコントローラの通信速度は非常に遅いので問題なし。
ちなみにバグるのはMODE_11,SPI_FOSC_TMR2の組み合わせのみ。でもAE-18F2550ならこれしかとりえない。
store.curiousinventor.com/guides/PS2#hardware
に詳しくかいてある。PICとの接続方法も、ここを見ればわかる。
SPIというチップ間通信ではメジャーなプロトコルで、PICはこのSPI読み書きをハードウェアで処理できる。ハードウェアで処理できるメリットは、通信している間に別の処理ができることと、プログラムが簡単になること。
しかし、18F4550や18F2550のSPIにはバグがある(と俺は思っている)ので、SPIはソフトウェアで実装することにした。
いや、けっこうがんばったんだけど、20MHzのクロックでは、どうやってもだめだった。プレステのコントローラにあわせてクロックを調整すればどうにかなりそうだが、そうなるとUSB側が困る。
無理してハードウェアでやらなくても、プレステコントローラの通信速度は非常に遅いので問題なし。
ちなみにバグるのはMODE_11,SPI_FOSC_TMR2の組み合わせのみ。でもAE-18F2550ならこれしかとりえない。