小ネタ 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