小ネタ 2009-008

Wiiリモコンに接続する周辺機器の中身の解析

以前に、Wiiリモコンの解析と、Wiiリモコンに接続する周辺機器であるヌンチャクとクラシックコントローラーの解析について書いた。
(また、Wiiリモコンのモーションセンサーの機能を拡張するためにジャイロセンサーを接続する自作の周辺機器を製作してみた。)

その後、色々と他にも周辺機器が出てきたので、もう少しだけ詳しく調べてみた。


1. クラシックコントローラー互換品の解析

 HORIという会社から、クラシックコントローラー互換のコントローラーやジョイスティックが発売されているので、入手して調べてみた。
 調べた結果、中身はFNURVLというICだった。

 ちなみに以前に調べたのは、
 ・純正ヌンチャク
 ・純正クラシックコントローラー
 ・クラブニンテンドーの景品のSFCコントローラー型のクラシックコントローラー
 で、これらもすべてFNURVLというマーキングのされたICが使われていた。
 ワンチップマイコンにヌンチャクとクラシックコントローラーのファームウェアの両方が書き込まれているものだと推測される。


 (1)HORI クラシックコントローラーの中身
 HORI クラシックコントローラーは純正クラシックコントローラーの互換品で、GCコントローラーに似た形状のコントローラーである。
  
 このコントローラーにはFNURVLが使われている。
 連射用の回路が後付けで実装されている。
 FNURVLの中のソフトを変更して対応すれば、部品を増やしてコストをかけなくてもいいように思える。
 振動用のモーターの格納箇所が用意されている。HORIクラコンは、振動モーターを内蔵する予定があったのかも。

 (2)HORI ファイティングスティックWiiの中身
 HORI ファイティングスティックWiiも上記のHORIクラシックコントローラーと同様に純正クラシックコントローラー互換品である。
  
 これもFNURVLが使われており、連射回路も後付けで実装されている。

 任天堂以外のメーカー製のクラシックコントローラー互換品用にもFNURVLがそのまま供給されているようだ。
 連射機能をFNURVL内のソフトに追加するような改変は許されてないらしい。

 今年(2009年)の夏に、Wiiクラシックコントローラの新型「クラシックコントローラ PRO」というのが出るらしい。
 PROは振動対応でないと言われている。HORI版が対応してないくらいなのに、それを差し置いて振動対応を出したりはしないのかも。

 (後日加筆 2009-08-09 クラシックコントローラーPROが発売されたので入手して調べた。このページの後ろの方に加筆した。)




2. 楽器型コントローラーの解析

 ギターヒーロー3用のギター型コントローラーや太鼓の達人用の太鼓型コントローラー"タタコン"を入手して調べてみた。
 中身はFNURVLでなく、F0511というマーキングがされたICだった。

 (1)ギターヒーロー3用ギター型コントローラーの中身
 ギターヒーロー3というソフトにバンドルされているコントローラーである。ちょっと前に入手して調べていたのだが、最近やっと分解してみた。
  
 特殊ネジが使われているので分解しにくい。
 ギターコントローラーにさらに何かを接続するための謎のポートがある。右側の写真のD2,D3の部分を通ってF0511のpin17に繋がっている。

 (2)太鼓の達人用の太鼓型コントローラー"タタコン"の中身
 太鼓の達人というソフトにバンドルされているコントローラーである。入手難で、最近やっと入手できた。
  

 これらのコントローラーには、F0511(またはF0511A)というマーキングのされた部品が使われている。
 このICは、ピンの使われ方を見るとFNURVLと同じワンチップマイコンのようだ。
 調べてみたところ、このワンチップマイコンはNEC製の78K0/KC2というマイコンで、型番がμPD78F0511(uPD78F0511A)というものだということが分かった。




3. 78K0/KC2マイコンのソフト開発環境

 ギターヒーロー3用のギター型コントローラー等に使われているのと同じ78K0/KC2マイコンとその開発環境を入手してみた。(2009-03-03)

 
 uPD78F0511の型番の78K0/KC2マイコンチップを入手した。マーキングはF0511となっている。
 NECエレクトロニクスのWebサイトから、このマイコンのデータシートを入手することができた。

 
 開発用のデバッガ兼、書き込み器のMINICUBE2を入手した。
 (ちなみに、MINICUBE2単体を買っても何もソフトが付いてこないので困った。NECのサイトでユーザ登録してダウンロードしないといけないのだが、これが分かりにくくて困った。コンパイラの入手も分かりにくいし、アマチュア用途でNECのマイコンを使うのは薦められない。)

 プログラムの読み書きだけなら、この専用書き込み器が無くてもシリアル簡易ライターで代用できるのかもしれない。

 
 写真中央のDAISENというメーカー製のDIP変換基板に、マイコンを実装してみた。
 下敷きに置いている基板は以前にWiiヌンチャクから取り外したFNURVLを変換基板に載せてクラシックコントローラー同等品を自作したもの。

 このマイコンのデータシートを読んでみたところ、メモリはフラッシュメモリを搭載しており、マスクROM品ではないことが分かった。
 また、フラッシュメモリは、書き込み禁止の設定をすることができ、後から書き換えたりできないように設定可能。
 フラッシュメモリの読み出し禁止の設定は無い!

 Wii周辺機器のマイコンのプログラムが書き込まれているフラッシュメモリを読み出すことが可能なのかもしれない。
 もしできたとしても、得られるのはバイナリだけなので、プログラムを逆アセンブルで解析するのは面倒そうだ。
 解析できれば、周辺機器用の暗号化の方式なども分かると思われる。

 暗号化の方式が分からなくても一応は新しい自作周辺機器を作ることは可能である。
 純正品の模倣品を作りたい場合には、ちょっと不正な手段だがバイナリをデッドコピーするか、暗号化の方式を解析しなくてはならない。

 無線版のヌンチャク互換品「ワイヤレスヌンチャク」を非ライセンスで作った会社は、既に暗号化の方式を解析済みなのだろう。




4. Wii周辺機器の暗号化の方式

 既に海外でWii周辺機器の暗号化の方式を解析してしまった人が出てきている。
 その人物は、Rock Band 2というソフトのドラムコントローラーを解析して、互換コントローラーを作成している。
 Youtubeに動画がアップロードされており、
 AVRマイコン用に実装されたソースコードもGoogleCodeに公開されており、
 暗号化の方式についても、解析結果の資料が公開されている。

 ここまで既に解析されているとは、凄すぎる。
 自分も78K0/KC2マイコンで、同じようなものを作ってみたい。(2009-03-03)




(後日加筆 2009-04-20)

 NECエレクトロニクスとルネサスが経営統合するらしい。
 ルネサスはRXマイコンが出て今までのH8とかM16Cをそちらに集約する方向らしいが、NECの品種の位置づけはどうするんだろうか?




(後日加筆 2009-06-29)

 GAMETECHという会社から「リモコンツナイデント」という製品が出ている。PLAYSTATIONコントローラーをWiiリモコンにつないでクラシックコントローラーとして使えるようにする製品だ。任天堂のライセンスを取っていない非ライセンス商品である。

 中身を調べてみたところ、FNURVLでない部品が使われていた。

  

 ICのマーキングはHC2P0812Aとなっている。I2C機能の付いたワンチップマイコンだと思うのだが、どこの会社のIC製品か分からなかった。 HCで始まる型番のマイコンではfreescale社のHC08マイコン等があるのだが、ちょっと見ただけでは一致する品物を見つけられなかった。

 周辺機器の通信の暗号化の方式が既に解析内容が公開されてしまっているので、こういった商品が出てきたのだと思われる。
 今後、色々と似たようなコントローラー変換アダプターが出てきそうだ。




(後日加筆 2009--07-11)

 DATEL(デイテル)という会社から「ミニコン」という製品が出ている。ヌンチャクの互換製品だ。任天堂のライセンスを取っていない非ライセンス商品である。
 ちなみにヌンチャク互換品には、ワイヤレスヌンチャクという先例がある。

 中身を調べてみたところ、FNURVLでない部品が使われていた。

 

 ATMEL社のマイコンが使われている。
 加速度センサーは、freescale社の「MMA7260」。

 このヌンチャク互換品は、Wii Sports Resortで動作しない。ヌンチャクかどうかのチェック方法が以前より厳しく変更されたようだ。
 Wii Sports Resortの場合、実際のチェックをしているのはWii Motion Plusの内蔵の78K0/KC2マイコン側だと思われる。




(後日加筆 2009-08-09)

 Wii版のモンスターハンター3というソフトと同時に「クラシックコントローラーPRO」が発売されたので、入手して中身を調べてみた。
 

 従来のクラシックコントローラーや純正の互換品では「FNURVL」というICが使われていたのだが、クラシックコントローラーPROは違うICが載っている。ICのマーキングは「WCP」となっている。Wii Classic-controller Proの略か?

 この「WCP」というICは、ピン配置などから推測すると、従来の「FNURVL」と同様にNECエレクトロニクス製の78K0/KC2マイコンだと思われる。
 クラシックコントローラーPROは、従来のクラシックコントローラーとの互換品として、従来品の代わりに使うことができるようだ。マイコンのファームウェアはFNURVLと同じか、あるいは互換を持たせたものになっていると考えられる。

 それ以外で従来のクラシックコントローラーに比べて変更されたのは、L/Rトリガーの押し込みの機械的な構造の部分だけで、他にはまったく変わらないように見える。

 2つばかり疑問点が生じた。
 ・なぜ「FNURVL」をそのまま使わなかったのか?
 ・L/Rトリガーを変更して、従来品との互換性は問題ないのか?
 という点についてである。


 まず、L/Rトリガーについて、考えてみる。
 これまでのWiiのソフトの中に、従来のクラシックコントローラーのL/Rトリガーのアナログ機能を使っているケースがあるのかが問題となる。
 バーチャルコンソール用だとL/Rトリガーがアナログ入力になっている旧機種は無いので、アナログ機能を使っていないはずである。L/R内部のバネを取り除く改造というのがあり、自分もバネを取り除いてクラシックコントローラーを使っている。
 GameCubeのゲームの場合GCコントローラーを使うのでクラシックコントローラーを使うことはできない。
 クラシックコントローラー対応のWii専用ソフトは、現時点で584タイトルの対応ソフトがあるようだ。この中にL/Rのアナログ機能を使った物があるかどうか調べたいと思うのだが、多すぎて分からない。自分の持っている中では該当は無さそうだ。
 推測だなのが、そういうソフトは無いのだと思う。(あるいは皆無で無視できる程度)
 従来のクラシックコントローラーにL/Rのアナログトリガー機能を付けたのは結局は失敗だったので、クラシックコントローラーPROを出すのをきっかけに、無かったことにするのではないだろうか。


 次に、「FNURVL」をそのまま使わなかった理由について、考えてみる。
 L/Rトリガーの押し込み具合をアナログで入力する必要がなくなったとしても、単純に従来のFNURVLの回路のトリガー用のアナログ入力を未接続とかにして機能を殺しておいて、FNURVLをそのままクラシックコントローラーPROに使うことも可能だったのではないかと思う。
 先だって発売されたHORI製のHORIクラコンの場合、連射機能を追加したにもかかわらずFNURVLをそのまま使っている。
 HORIクラコンをモンスターハンター3に使った場合、L/RトリガーとZL/ZRトリガーの上下配置がクラシックコントローラーPROと異なっている。
 今後、クラシックコントローラーPROのL/R/ZL/ZRの配置が標準になるのだとすると、HORIクラコンは標準と逆なので、HORIクラコンPROとかを出し直すことになるのだろう。そのときにはFNURVLでなく、「WCP」が供給されるのだろうか?


 L/Rトリガー以外で、従来のクラシックコントローラから変更されたソフト的な機能追加が隠されているのではないだろうか?
 クラシックコントローラーPROの中身の基板にヒントがありそうだ。
 
 クラシックコントローラーPROの中の基板を見ると、REDとMG1という未接続の半田付け用のランドが存在し、その周辺にC9,D2,Q1という未実装部品用のランドも存在する。この部分の回路は、マイコンからの信号でQ1のトランジスタをOn/OffしてMG1をHi(+3.3V)/Low(0V)と切り替えるための回路のようだ。振動用のモーターをREDとMG1(MG1はMotor Ground?)に接続するのではないかと推測される。D2のダイオードは、モーターから回路保護用か。トランジスタの制御信号は「WCP」のpin5に接続されている。ちなみに、MG1というのはあるのだがMG2というのがないので、振動モーターを2つ入れることは無さそう。
 従来のクラシックコントローラーではコネクタの未配線のピンが余っていたのと、クラコンの背面側に何か取り付けるための構造があることから、振動パックがでるのではないかと予想されていたが、結局はこれも無かったことになっている。
 その代わりにクラシックコントローラーPROでは、WCPの制御信号で振動モーターを制御する方式が検討されたと思われる。
 未実装の部品を実装するとクラシックコントローラーPROの振動機能を動作させることができるのだろうか?

 他にも、クラシックコントローラーPROの基板上には、TxD,RxD,RESET,FLMDなどのテスト用途っぽいパッドが存在する。
 
 FLMDは78K0マイコンのファームウェア書き込み関係のモード設定用のピンのようだ。多分この基板上でファームウェアの書き換えとかテストができるようになっているように思われる。
 書き換え機能を使って、ギリギリまでクラシックコントローラーPROの内蔵ファームウェアの振動機能を開発していたのではないだろうか。
 最終的には、振動機能はボツになったようなので、クラシックコントローラーPROに「WCP」を載せた意味は無くなってしまったのだが、ひょっとすると振動機能のファームウェアは残っているのだろうか、それとも今までと同様のFNURVLと同一のファームウェアが入っているのだろうか? もし「WCP」のファームウェアを吸出しができれば、FNURVLと比較して確認できるかもしれない。あるいはモンスターハンター3を動作中にクラシックコントローラーPROの信号を調べると確認できるかもしれない。
 クラシックコントローラーPROの振動機能がボツになった理由は、技術的な問題ではなく、振動機能の特許の問題だと思われる。今回ボツになったので、今後も任天堂からは振動対応のクラシックコントローラー類は出ないと予想される。当然、クラシックコントローラーの振動対応のソフトも出ないということになる。クラシックコントローラーPROの基板を見ると、ここまで作ってあったのに勿体ないと思う。

 参考
 ・Wii.com JP - 社長が訊く『モンスターハンター3 (トライ)』
 ・「使って試してみました ゲームグッズ研究所【第207回】- GAME Watch