WiiYourself!でWiiリモコンプラスを使う際の注意点

WiiYourselfでWiiリモコンプラス(Wiiリモコンに最初からモーションプラスが入っているもの)を使うと、正常に動きません。その解決方法を紹介します。

2010年11月にモーションプラスが最初から搭載されているWiiリモコンプラスがでました。

一応WiiYourself!でも使えるのですが、そのまま使うとジャイロを認識してくれません。(v1.15現在)

Visual Studioで実行するとわかるのですが、デバッグの出力画面に

WiiYourself! : unknown extension controller found (0x50420a40001)

とかいうのが大量に出てくると思います。 要約すると「なんだかわからない拡張機器 (0x50420a40001)が見つかりました」と言っています。

Wiiリモコンでは拡張機器の識別値がWiiリモコンから送られてきます。 その識別値がWiiYourself!ではtypeというもので管理されているみたいなのですが、Wiiリモコンから送られてくる識別値がモーションプラスとWiiリモコンプラスでは違うみたいで、Wiiリモコンプラスを使うとジャイロが認識されません。

識別値をいじる

そこで、wiimote.cppの中に書かれているモーションプラスの識別値をいじくります。

1759行目にある

wiimote.cpp
static const QWORD MOTION_PLUS         = 0x050420A40000ULL;
static const QWORD MOTION_PLUS_DETECT  = 0x050020a60000ULL;
static const QWORD MOTION_PLUS_DETECT2 = 0x050420a60000ULL;

というところを、↓のように書き換えます。

wiimote.cpp
static const QWORD MOTION_PLUS         = 0x50420A40001;
static const QWORD MOTION_PLUS_DETECT  = 0x50020a60001;
static const QWORD MOTION_PLUS_DETECT2 = 0x50420a60001; 

これで一応は使えるようになります。 ただし、「Wiiリモコン+モーションプラス」「Wiiリモコンプラス」どちらにも対応したわけではないので、さらにプログラム修正の余地はあります。(どなたかできたら教えてください)

もしアップデートがあれば、この辺が改善されるのではないかと期待しています。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

PAGE TOP

Twitter