Illegal function call

アクセスカウンタ

zoom RSS Wiiコントローラの仕様

<<   作成日時 : 2009/06/05 00:29   >>

ブログ気持玉 0 / トラックバック 1 / コメント 0

■仕様メモ

拡張コントローラの端子はI2C 400KHz仕様。
コントローラは、I2Cスレーブデバイスでアドレスは 52hに設定されている。
I2C仕様EPPROMと同じ デバイスで1バイト内部アドレスを送信し、その後続けてデータを送受信。
内部アドレスのデータにアクセスでき、アドレスは自動的にインクリメンタルされる。

ただし、内部アドレス 40h に一度何か書き込まないとコントローラが動作開始しない。
通信されているデータは暗号化されていて、定期的に暗号化キーを変化させながらアクセスを行っている。

この暗号化は、以下に仕様が載っている。
http://www.derkeiler.com/pdf/Newsgroups/sci.crypt/2008-11/msg00110.pdf

暗号化に必要なデータは以下のアドレス。
rand[] 40h-49h
wm_key[] 4Ah-4Fh


Wiiコントローラに接続されるとはじめに、F0h 40h 46h 4Ch 20h 30hの順のアドレスに
アクセスされる。このシーケンスは、Wiiメニューやゲーム起動時に発生する。

上記アドレスは、次へのアクセスぽいです。

F0h >デバイスリセット
40h >暗号化Key1
46h >暗号化Key2
4Ch >暗号化Key3
20h >キャリブレーションデータ
30h >キャリブレーションデータ

このアクセスが終わると、数msごとに00h-05h、40h-4FhへのR/Wが行われる。
これが肝心なコントローラデータへのアクセスで、00h-05hが実際のデータ。
アクセスごとに暗号化キーを変えることで解析を困難にしているぽい。

00h-05hのデータフォーマットは以下のURLが一番詳しい。
http://www.wiili.org/index.php/Wiimote/Extension_Controllers


■Wiiコントローラ メモリマップ
00h-05h コントローラデータ
20h-2Fh キャリブレーションデータ
30h-3Fh キャリブレーションデータ(Copy)
40h-4Fh 暗号キー(rand,wm_key)
F0h デバイス初期化&暗号化ON/OFF
FCh-FFh コントローラID


そんな感じで大体仕様はFixしたので実際にソフトを書いてみる。
AVRの場合GCCを使用してtwi.hの辺りでI2Cが簡単に扱えるので大分楽です。

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(1件)

タイトル (本文) ブログ名/日時
エアマックス 95
Wiiコントローラの仕様 Illegal function call/ウェブリブログ ...続きを見る
エアマックス 95
2013/07/10 05:14

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
Wiiコントローラの仕様 Illegal function call/BIGLOBEウェブリブログ
文字サイズ:       閉じる