小ネタ 2006-003

NintendoDSのマジコンをいじってみる

NintendoDS用のマジコンをいろいろといじってみた記録。


SuperCard(CF)とアドムービー

 GBA用に出ていたマジコンにSuperCardというのがあった。普通のマジコンがフラッシュメモリを使っているのに対して、SuperCardはCFカードを使って安価に大容量を実現しているのが特長だったのだが、GBAソフトにパッチを当てないと動作しなかったり、パッチを当てても動作が遅かったり、動かないものも多かったりという欠点も多く、いまいちなマジコンだった。自作ソフトの開発用には割と便利そうに思えたので使っていた。その後に発売されたDSではスロットに入らないのでカートリッジを削ったりした。

 SuperCardのファームウェアをアップデートするとDSの自作ソフトなど動かせるようになったと聞いて、試してみようとしたが、うかつにもファームウェアのアップデート中に電池切れを起こしてアップデートに失敗してしまった。復旧方法を模索していたが、結局最近まで復旧できなかった。

 その後、とりあえず、もう1台SuperCardを購入して、慎重にアップデートして、DSの自作ソフトを動かせるようになった。それに加えて最近は市販ソフトを吸い出したものにパッチを当てて動かすことまでができるようになった。GBAのパッチはあまり良いものではなかったが、DS用のパッチはかなり完成度が上がっていて多くのソフトを動作させることができる。
 
 ただし、SuperCard単体では市販ソフトの吸い出しができない。吸い出しのためのソフトはSMTによるNDS ROM Dumperというソフトを使うのだが、このソフトは旧来のGBAマジコンとGBAMPを組み合わせて使う必要がある。日本だとGBAMPと中身が互換のアドムービーというGBA用のムービープレイヤーがアマゾンで安く売っているので、これを使用してROM Dumperを動作させることができた。


死んだSuperCardの復旧と、アドムービーのGBAMP化

 このサイトの日記ページに死んだSuperCardことを書いていたら、SaTa.さんがDarkFader氏のflashmp.rarを使うと復旧できると教えてくれた。
 これはDS.brickerというトロイの木馬ソフトによりGBAMPやSuperCardのファームウェアが消去された場合の復旧ソフトである。
 rarファイルの中身を取り出すのに、いくつかのソフトはうまく取り出せなかった。rarファイルは互換性とかわからんので、嫌いだ。
 中から取り出した復旧ソフトのndsファイルを他のマジコンで起動して、そのあとで電源を入れたままで壊れたSuperCardに入れ替える必要がある。
 ところが、SuperCardは電子回路の中に入っている電源用コンデンサーが大きいのか、入れ替え時にDSの電源が落ちてしまう。
 電源を入れたままでSuperCardを入れ替える方法として、いろいろ調べてみた結果、GBAMPを使うとできることが分かった。

 ここで、まずアドムービーをGBAMP化することにした。これもやり方は割と難しかった。
 最初、壊れていないSuperCardを使ってアップデートソフトを起動して、アドムービーを書き換えようとしたが、何度やってもアドムービーのFlashメモリを認識しなかった。
 従来のFlash2Advanceというマジコンを使ってアップデートソフトを起動したら、うまくアップデートでき、Hack版ファームウェアも書き込みできた。
 このときの操作がL+R+SelectとL+R+Startとで紛らわしいのと、CFカードに入れるファイルを間違えないように注意が必要だった。

 GBAMP化したアドムービーを使って、DarkFader氏の復旧ソフトを起動し、アドムービーの横の切り替えスイッチであらかじめ挿しておいた死んだSuperCardに切り替えたところ、書き込みを開始することができて、うまくSuperCardのファームウェアの復旧ができた。

 ちなみに、アドムービー(GBAMP)は、GBAカートリッジ側に常時通電するように配線されており、切り替えスイッチでROMのチップセレクト信号を制御してROMが見えないようにしているだけである。これで普通は問題なく切り替えできるはずだが、NDS ROM Dumperの動作時にはどうも信号が干渉して誤動作してフリーズすることがある。簡単な対処方法は、GBAカートリッジを抜き差しすることだが、切り替えスイッチを改造して、ROMのCS信号でなくGBAカートリッジ側の電源を切るように改造すると吸い出し器として使いやすくなったりする。この改造を施してあったのだが、SuperCardの復旧のため、改造を元にもどす羽目になってしまった。

(後日加筆)
カートリッジの半挿し状態を使ってSCでも強引にGBAMP化できるらしい


GBAMPを使ってマリオカートDSのコース制限を解除する

 せっかくGBAMP化をしたので、GBAMPを使ってマリオカートDSのWi-Fi対戦のコース制限を解除するのをやってみた。

 英語版のマリオカートDSのWi-Fi対戦のコース制限を解除する方法が2通り公開されている。
 そのうちの1つ"Natrium's loader"は十倍さんが日本語版に対応させたものを作成している。
 もう1つのChishm氏の方法についてもPanyawoさんが日本語版に対応させたものを作成している。
 こちらの方法については、Panyawoさんは吸い出し済みのイメージに対するIPSパッチの方のみの日本語版を作成をしている。
 ただし、Chishm氏が配布したのは吸い出し済みのイメージのパッチと、吸い出しソフトの2つがある。で、その吸い出しソフトの方について、これを日本版に対応させると他にも動かせるマジコンが色々とありそうなので、やってみたところ GBAMPやSuperCardで動作させることができた。

 
 [ 制限解除のパッチ用ソフトMKDS_patcher^2 (download) ]


SuperCard-CFとSuperCard-SD

 SuperCardを使っていると困るのはCFカードがDS本体からかなりハミ出すことである。DSをポーチに入れてファスナーを閉めるときにCFカードに引っかかる。
 小型なSDカード版のSuperCardも出ており、最近ではモデルチェンジして旧型が安くなっていたので入手した。
 
 使ってみて気が付いたのだが、SD版はCF版に比べて動作が遅い。実用に向かないと思った。開発用に使うのがよいかも知れない。
 開発用に使うには、SDカードの抜き差しを頻繁に行う必要がある。ところが、SD版SuperCardは、DSから抜かないとSDカードの出し入れができないのである。
 
 ちょっと思ったのだが、SDカードでUSBコネクタ付きのものをうまく使えば、PCとUSBで接続して開発中のソフトをSDカードに転送し、スイッチを切り替えてSDカードからそのソフトを起動するという環境が作れるかもしれない。


SuperCard-SDでminiSDカードを使う

 SuperCard-SDでminiSDカードを使ってみた。
 
 miniSDカードはSDカードよりも消費電力が少ないので、電池の持ちがよくなるらしい。(ADATA製は...)
 
 SuperCardを抜かなくてもminiSDカードの取り出しをすることができる。通電中に抜くのには対応していないようだ。

 取り外した元のSDカードソケット部品は再利用した


プレイやん

 マジコンとは違うが、プレイやんでminiSDを使えないかなー。
 

(後日加筆 2006.2.14) miniSD化して、うまく動いた。
 


SuperCard-CFをDSに内蔵する

 ファーム復旧で復活した古いSuperCard-CFは、GBA時代から使っていて外装がだいぶ傷んでいる。特にDSに入らなかったために削った部分の状態がよくないため、遠からず崩壊しそうである。
 それとDS本体からCFカードがハミ出すのが気に入らなかったので、思い切ってDS本体にSuperCardを内蔵するというのをやってみた。
 
 前にPassMeを内蔵したDSを使って、SuperCardも内蔵した。

 
 左下が普通のSuperCard-CF、左上がSuperCardを内蔵したもの、右側がSuperCard-SDである。
 とりあえず、ガマンできる程度にはハミ出さなくすることができた。
 内蔵しているPassMeが邪魔なので、その部分からレイアウトを変更すれば、完全に外にハミ出さないSuperCard-CF内蔵のDSを作ることができるだろう。

 ちなみに、CompactFlashカード自体を小さくして、Reduced-size-CFというようなものも作れないかどうかも検討してみたが、これは無理のようだ。
 

(2006.2.26)
 GBAスロットを延長して裏側に取り付けるという方法もある。
 


MagicKey2を使ってみた

 MagicKey2/3を使ってDSのソフトの吸い出しができるようになったと知って、手に入れて試してみた。
 SDカードをDSカードスロット側に付けるという思い切った仕様になっている。DSのカードスロットのSPIバスを使っているようだ。DSのSPIバスクロックが最大4MHzであり、1クロック当たり1bitの転送しかできないので、高速なSDカードを使ったとしても動作が遅くなってしまう。

 実際MagicKey2を使ってみて、とにかく動作が遅くて使い物にならないと思った。
 動作が遅い原因がDSのSPIバスの仕様によるものなので、改良されることはないと思われる。

 他に使い道としては、PassMeの代わりに使うということができるかもしれないと思い、試してみたが、SPIバスをMagicKey内部で独自の制御で切り替え式にしているせいか、DSゲームカートリッジのセーブ用ICが見えなくなってしまったりする。
 このため、PassMeを使ったマリオカートDSのWi-Fiコース制限解除で正常に起動することができず、セーブデータに書き込みできないという表示を出して止まってしまう。使えないなあ。

 あるいは開発用に使うのも考えなくはないが、ブラックボックスのMagicKey2を使うぐらいだったら自作したもののほうがマシな気がする。
 


PassMeの大きさ比較

 なんか最近、手元にPassMe類が増えたので大きさの比較をしてみる。
 

 左側、中国製の小型PASSME -Z (でもDSからハミ出す)
 真ん中の上側、M3製のPassKeyとPassKey2
 真ん中の下側、自作の小型PassMeと小型PassMe2
 右側、オプティマイズ製のPassMeキットを改造してPassMe2化+SPIバスI/Fの改造したもの

 自作した小型版が一番のお気に入りである。


PASSME-ZをPASSME-2-Zに改造できるか?

 PASSME-Zを改造してPassMe2相当品にできるかどうか試してみた。
 
 使用しているROMを取り外して、PassMe2に対応している教授のROMを取り付けた。

 
 CPLDをPassMe2に書き直してみた。動作確認してみたが、うまく動かなかった。
 あまり詳しく調べてなかったのだが、ROMへの信号配線が普通のPassMeと異なっているのかもしれない。
 PassMe2のソースを修正するか、配線を修正する必要があるようだ。

(後日加筆 2006.3.16)
 配線を調べたが、普通のPassMeと全く同じだった。再度CPLDの書き直しをしたところ、ちゃんとPassMe2として動作して使うことができた。

 結果として、PassMe-ZをPassMe-2-Zにすることができた。教授カートリッジのROMも浮かばれる。

 ちなみにPassMe-ZとPassMe2-Zは、PASSME NDS 1.0とPASSME NDS 2.0と表記されることもあるようだ。


PassKeyをPassKey2に改造できるか?

 PassKeyとPassKey2の違いを調べるために、まずは分解してみる。
 
 基板に搭載されているCPLDが異なる。PassKeyをPassKey2にすることはできないことが分かった。終了。

 ただし、PassKeyをPassMe2に改造するのならば可能のようだ。






See Also

DS-FW-PCBの製作
DSカメラを作ってみる
DS温度計を作ってみる
NintendoDS Liteの解析
NintendoDSで非純正ソフトを動作させるのを試みた その2 (開発用機器の製作)
おいでよどうぶつの森の「リセットさん」をリセットする
NintendoDSのカートリッジのセーブデータの解析 その3
ニンテンドーDSに使われている3Dメモリーとは何か
NintendoDSの上画面液晶が破損したジャンクを修理してGB化する改造
NintendoDS + PassMe + Xport2.0 + A/D converter の demo
NintendoDSで非純正ソフトを動作させるのを試みた (PassMe,WiFiMe,etc)
NintendoDSのカートリッジのセーブデータの解析 その2
ニンテンドーDSのクロックアップと無線通信(と、ファームウェア解析)
大合奏バンドブラザーズで簡単にプロになる裏技
NintendoDSのカートリッジのセーブデータの解析
NintendoDSの初期不良が修理できなかった (後日、二個壱で修理できた)