非純正ソフトを動作させるのを試みたNintendoDSをhackして非純正ソフトを動作させる試みが活発化してきている。DarkFaderという人物が最初に外付け回路を付加して成功して以来、NDS-PassThroughの手法が現在(2005年4月中旬)までの定番となっている。最近ではNatrium42という人物が小型化した「PassMe」というタイプの回路が公開されたばかりである。DSのBIOSが吸い出しされていたり、タッチパネルやポリゴンを使ったデモソフトが試作されているするのを見て、やってみたくなった。今回、オプティマイズというサイトで販売されている「カメレオンUSB」というXilinxのCPLDを使った電子工作キットを応用してNDS-PassThroughを製作してみた。組み立て終わったのでテストしてみたが、うまく動作しなったので間違いがなかったかチェック中である。→(カメレオンUSBのXilinx社XC95144XL)→(DS用スロット部品)→(DS用カートリッジMetroidPrimeHunter体験版)、という接続になっている。うまく動作しない原因は、配線ミスの可能性が大である。VHDLというハードウェア記述言語で書かれたソースからXC95144XL用のJEDファイルを作る手順でなにかミスをしているかもしれない。無線版PassMe「WiFiMe」の噂を聞いて、早速試してみた。Panyawoさんのブログを参考にした。Corega製の特定の無線LANカードが必要ということで、速攻で近所のパソコンショップに買いに行ったところ、1つ確保できた。hack版の無線ドライバのインストール時にはinfファイルをあらかじめ手動で修正しておくのが必要なので要注意である。事前にGBA用のフラッシュカートリッジにDS用ソフトを書き込んでおくこと。あとは、PCで無線Multibootのホスト用ソフトを起動し、DSでダミーのソフトをダウンロードして実行するだけである。結果、ちゃんとDS用のデモソフトを動作させることができた。無線版は、すごくあっけなく簡単に動いてしまった。先のCPLDのハード製作の苦労が空しく感じてしまう。CPLD版PassThroughについては、ちゃんと動作するまでモチベーションが維持できそうにないので、とりあえずこのページを作った。--今後について--「WiFiMe」があれば、あとはGBAのフラッシュカートリッジだけでマジコンできるので、すそ野が一気に広がると思われる。次の難関は、無線の暗号解読だろう。無線モジュール内のファームウェアが解析の獲物にされてしまうかも。個人的にはXport2.0とWiFiMeの組み合わせで色々と試してみたい気がする。2005.4.24)オプティマイズ製PassMeキットでも再挑戦オプティマイズというサイトで「PassMe」のキットの販売が開始されたので、入手して試してみた。結果、うまく動作させることができた。2005.4.26)Xport2.0でPassMeXport2.0でPassMeできるかどうかを試してみた。Xport2.0キットに付属の書き込みソフトはROMイメージ先頭のGBAヘッダを勝手に書き換えてしまうので、このソフトのソースを改造してROMイメージをそのまま書き込むように修正した。その結果、当然、ROMに書き込んだデモソフトをPassMeで動作させることができた。一部のソフトに限ってはFlashAdvanceでは動作するのだが、Xport2.0では正常に動作しなかった。demoソフトはXport2.0上で正常に動作しなかった。今後、Xport2.0のI/Oポートから制御信号をちゃんと出せるかどうかテストしてみたい。うまくいけばDSに周辺機器を接続して色々と入出力して遊ぶことができる。キーボードとかCCDカメラとかは簡単に接続できそうだ。2005.4.29)PassMeキットをDSに内蔵するPassMeキットをDSに取り付けると外にハミ出す部分が多いので、取り付けたまま持ち運ぶことができない。思い切ってDSの中にPassMeを内蔵してしまうというのを試してみた。そのままでは内蔵するためのスペースが無いので、DSカートリッジのソケット部分の部品を取り外して、PassMeの基板を小さくカットして、その部分に内蔵した。この改造をしたDSでは、通常のDSゲームカートリッジが挿さらないので開発&解析用に使うか、GBA用ソフトを動かすのに使う。GBAソフトを動作させる時にはPassMeの電源をスイッチで切る必要がある。2005.4.30)DSのファームウェアを書き換えて、PassMe不要になったPassMeの代わりの動作をするファームウェア「FlashMe」というのが配布されている。ファーム書き換えソフトを動作させるためPassMeを使って起動した。試してなかったが、WiFiMeでも出来るかもしれない。ファームウェアを書き換えた結果、ちゃんとデモソフト等がフラッシュカートリッジから起動するのを確認できた。DSゲームソフトやGBAゲームソフトも今まで通りに動作させることができるし、PassMeを挿さなくてもよいので便利である。苦労してDSにPassMeを内蔵したのが無駄になってしまった。ファーム書き換えソフトを動作するためPassMeを使った、成功したのでPassMeが不要になったファームウェアの改造については、現在(2005.4.30)のところ、「PassMeの機能を追加する」というのと「無線マルチブートの認証チェックコードをすっ飛ばして、非純正ソフトを無線マルチブートできるように改造する」というのが出ている。後者の無線マルチブートのhackは、認証チェックの暗号の鍵さえ見つかればすぐにでも未改造のDSで無線マルチブートできるようになるように期待を持たせてくれる。無線の鍵は、前にも書いたが無線モジュール上に実装されているシリアルフラッシュメモリLE25FW203の中のファームウェアに埋め込まれている可能性が高いと予想していた。無線モジュールのファームウェアの吸い出し自体は非常に簡単だったので、あとは解析が進めば鍵が見つかるのではないかと思われる。思っていたが、RSA公開鍵暗号(RSA-1024)らしいので、鍵は記録されていないのね。2005.6.2)無線モジュール上に実装されているシリアルフラッシュメモリLE25FW203の中身というのが、そもそもDS本体のファームウェアなのだそうだ。いままで別物だと誤解していた。ファームウェアの吸い出しはできていたが、解析が進んでいなかったので気が付かなかった。(ちなみに一部の初期DSは、実装されている部品が異なっており、M45PE20で搭載されている)もし、ファームウェアの書き換えを失敗した場合には、直接この部品に配線して書き込むということをすれば、復旧することは可能である。その際には大合奏バンドブラザーズのセーブメモリと同じ部品なのでBBMEのソフトをベースにDSファーム書き換えソフトを作ればよい。自分のところではファームウェア書き換えを失敗していないが、実験として試してみようか。2005.8.12)最近発売された新色のレッドのDSなどはPassMeとかWiFiMeが使えないように対策されたそうだ。自作ソフトを起動できなくなってしまったわけである。DS)も同様に対策済みと思われる。市販マジコンが出るかという動きがあったのが、未然に任天堂が防いだと言える。自作ソフトを動作させたり市販ソフトをバックアップして改造したりするマジコンには罪はないのだが、悪用が目に余るので対策を余儀なくされたようだ。著作権について法的対策が効かない実質無法地帯の国でゲーム資産がタダ喰いされ放題な状態なので、影響がネット経由で日本や欧米にも出て来そうだからなあ。レボ発売迄またはレボ発売後もまだまだ他にも(GBA,GBMとかも)対策が続けられると思う。GBAカートリッジ部分のアドレス空間でのソフト実行はできなくなったみたいなので、なんらかの方法でメインメモリ上にコードを持ってきて実行しなければならないが、難しそうだ。ブラ以外でもそういう連動モノが出てくると可能性があるかもしれない。セーブデータのチェックが甘そうなソフトはありそうに思える。DSのゲームカートリッジのマスクROMは暗号化機能付きのMacronix社のものが使われている。PassMeは暗号化されていない部分の信号に割り込んでジャンプ先を改変していた。この暗号は無線に使われているRSA1024(ほとんど鉄壁)よりは弱そうなので、コストを考えなければ自作の暗号化機能が作られてしまうかもしれない。すれば暗号化されている実際のソフト本体が改変できるので好きなコードが実行できるかもしれない。無線については、ソフトが認証込みの真正なものは無線ダウンロードして実行できるが、そうでないものはもともと実行できない。特別にWiFiMeのようにGBAカートリッジに飛ばすだけの改変が可能な穴があったが、今回塞がれてしまったらしい。認証に関する部分は任天堂がよほどのポカをしないかぎり流出はしないだろう。中身は普通のDS本体ハードをそのまま使っているみたいなので、認証を簡単に発行しちゃうようなチェックの甘い配信側ソフトがそのDSに入ってたりすると面白いのだが。