小ネタ 2008-005

Xbox360 Input Machineを試してみる

XIM(Xbox360 Input Machine)という電子工作を作ってみた。


1. XIMとは

 XIM(Xbox360 Input Machine)とは、Xbox360用の周辺機器"XFPS360"のコントローラー接続コネクタ部に接続し、もう片方のXIMのUSBコネクタ部をPCに接続することで、PCのキーボードやマウス等でXbox360を操作するためのものである。
 
 自作したXIMと、XFPSを接続したところ

 XFPS360はマウスとキーボードを接続することでFPSを遊びやすくできるはずなのだが、いまいち使い勝手がよくない。XIMはそれを改善するために作られたのだそうだ。



2. 作り方

 作り方は、http://anti.dmz-plus.com/というサイトの「Xbox360 Input Machine(XIM)を作ろう」を参考にした。

 XIMは、C8051というマイコンのUSB接続の開発キットを応用して作成する。
 PCにマイコンの開発用ソフトをインストールして、既にコンパイル済みのバイナリファイル(のhexファイル)をマイコンに書き込む。
 マイコン基板の端子にPlayStationコントローラーのケーブルを半田付けすれば出来上がり。
 PlayStationコントローラーのケーブルの芯線に半田がのりにくかったり、切れやすかったりするので、途中で別の電線で中継した。



3. 使い方

 XFPS360にXIMを接続して、XIMをPCに接続する。
 PCでXIM用のソフトを起動する。
 XBox360を起動する。
 コントローラーが通信可能な状態になるまでXIM用ソフトがフリーズしたような状態になるので注意。
 一部のノートPCではXIMが動作しなかったので注意。VAIOとか。

 XFPS360には、今のところ3つのバージョンがあるようだ。XFPS360(黒)とXFPS360-Pro(白)とXFPS360-3.0-Sniper(緑)の3つ。
 最初は3.0-Sniperを使おうとしたのだが、うまく動かせなくてXFPS360も入手した。結局、両方問題なく使えることが分かった。(自分のところの3.0-Sniperだけかもしれないが、動くときと動かないときがあり、安定しない。何度か分解したり、コネクタを工夫したりしているが、直らない。)


 
 XFPS360と、XFPS360-3.0-Sniper

 XFPSはマイクロソフト公式の周辺機器でないため、普通にXBox360に接続しても認識されない。
 認識させるためには、XFPSのUSBポートにXBox360の有線のコントローラーを挿しておくことが必要である。これによりXFPSは純正品のふりをするようだ。
 無線コントローラは使えない。ちなみに、チャージ&プレイキットを使うと有線に見えるが、ケーブルは充電用の電源のみで、信号はつながっていない。
 有線のコントローラーなのだが、ロットによって使えないものがある。パッケージ裏側の表示に(c)2005という表示がある古いロットは問題ないそうだ。
 HORI製のホリパッドEXターボも試してみたところ使用できた。

 
 Xbox360有線コントローラーのパッケージの表示

 実際にXIMを使ってみたのだが、マウスを速く動かしたときの挙動が変である。残念ながらあまり使い勝手がよくなったように思えなかった。設定が良くないのかもしれない。調整が結構面倒だ。



 (後日加筆2008-4-15)
 XFPS3.0-Sniper"Plus"について
 
 XFPS3.0-Sniper"Plus"という新型を入手した。
 色はクリーム色。
 3.0-Sniper(緑色)の欠陥を直した物らしい。
 XFPSに接続した周辺機器の電源ON/OFFの挙動が変わっているようだ。
 XFPS単体でマウス&キーボードを使って動かした場合もそれなりに使える。
 XIMの動作も確認できた。
 以前のXFPSでは、Xbox360有線コントローラーのロットによって認識しないという問題があったのだが、今回の"Plus"で解決しているのかどうか不明。



4. XIMはXbox360以外で使えるか?

 XIMはPlayStationコントローラー互換っぽいので、PlayStation等につないでみた。

 ・初代PlayStation
  PS-Oneに接続して試してみたところ、動かなかった。なぜ?
  (2008-3-23 後日加筆 再度試したところ、正常に動作した。)

 ・PlayStation2
  PlayStation2に接続して試してみたところ、Dual Shock2が必須のゲームでは使用できなかった。PS1用のゲームをPS2で動かした場合には使用できた。

  XIMはDual Shock1相当ということだろう。
  しかし完全にDual Shock1互換というわけでもなく、他ゲーム用Padコンバーターで動かない等、Dual Shock1の代わりに使えない場合もあるようだ。

 ・PlayStation Portable
  PSP2tvを使ってPSPとXIMを接続してみた。一度だけ動いたのだが、以後全然動作せず、再現できていない。

 ・GameCube / Wii
  ツナイデントGというGameCubeにPlayStationコントローラーを接続するためのアダプタを試してみたが、XIMでは使えなかった。

 ・Windows PC
  ELECOMのJC-PS101UBKというゲームパッドアダプタに接続してみたが、XIMでは使えなかった。JC-PS101UBKはPlayStation3にも使えると書いてあるが、PS3でもこの組み合わせでは使えないと思われる。

 ・PLAYSTATION3
  PLAYSTATION用XFPS Rateup Adapterを使えばXIMをPS3に接続できるらしい。




5. XIMの応用

 XIM用のソフトは、DLL部分のAPIが公開されているので、自作ソフトに応用できる。
 自動でXbox360を操作するソフトが作成でき、複雑な操作を自動化することが可能である。

 何に応用できるかだが、
 ・ロールプレイングゲームでマクロコマンドをいろいろ組んだりできそう。
 ・Forzaで車に絵を描く機能があるのだが、PCでbmpファイルを読んでドット打ちを自動で行うツールが作れそう。
 ・WiiリモコンをPCに接続するソフトと組み合わせて、WiiリモコンでXbox360を操作できそう。既にどこかで見たような気がする。(これだった)
 ・実績解除のため長時間ゲームをプレイし続けるのが必要な場合に自動化できそう。



6. ソフトの自作

 試しにPCのキーボードで上下左右とA/BボタンとSTARTボタンを入力する簡単なサンプルプログラムを作ってみた。(2008-2-19)
 [ xim-test01 実行ファイルとソースコード (download) ]


 PCに接続したジョイスティック/ジョイパッドでXIMを操作する簡単なサンプルプログラムを作ってみた。アナログ入力対応。 (2008-4-5)
 [ xim-test02 実行ファイルとソースコード (download) ]



 これらのサンプルは、Xbox360に他のコントローラーを接続してみるための叩き台みたいなもので、これ自体はあまり実用的でない。

 Xbox360に接続してみようと思ったものはいくつかあり、Wiiリモコンだとかモーションセンサーなどを考えていた。Wiiリモコンは既に他で成功例があるのでパス。

 SpaceNavigatorを接続するのを試してみたいと思った。PLAYSTATION3はSpaceNavigatorに対応したそうだ。
 SpaceNavigatorにはボタンが少なくて、PLAYSTATION3の場合はゲームに使うのではなくブラウザ等で使えるだけらしい。
 SpaceNavigatorより古いタイプのSpaceBallというモデルだとボタンが沢山あるので、ゲームコントローラーに使うのにはSpaceBallのほうが良さそう。
 SpaceBall用のサンプルコードとか公開されていないのかなあ?
 
 写真左下がSpaceNavigatorで、写真右下がSpaceBall



 余談。
 嘘か本当か、Xbox360にWiiリモコンのようなコントローラーが出るかもしれない??
 http://gizmodo.com/377855/more-xbox-360-wiimote-details-code-name-newton