その5(NintendoDSのゲームカートリッジに保存されているセーブデータの読み出しと書き込み方法について解析した結果の記録。-2008年6月26日、大合奏バンドブラザーズDXが発売された。このカートリッジ基板について、調べてみた。(2008-06-26)写真の基板のまんなかのMXというロゴのチップがメインプログラム収納用のマスクROM。(3Dメモリではない)写真の基板右側のST製のM25P64というチップがセーブデータを記録するためのシリアルFLASHメモリである。実際にメモリのIDを読み出した結果も、M25P64のデータシートの値と一致した。ダイヤモンド&パールやえいご漬けで4Mbitのものが最大だったのだが、今回いきなり巨大になったので驚いた。大合奏バンドブラザーズDXでは、100曲のデータをダウンロードできるとあり、これを記録するためにこれだけの大容量が必要になったのだろう。コストはどのくらいなのか気になる。以前に、DSカートリッジのセーブデータの読み書きを試したりしている。従来のメモリと同様、前に作ったI/Fのハードウェアはそのままでソフトウェアだけ直せば、セーブデータのバックアップとか消去ができる。消去すると出荷状態に戻るので、また別の100曲をダウンロードすることができると思われる。詳しくは後述)BBMEのようなソフトを作れば楽曲の編集とか可能だろう。写真のM25P64のチップにSTというロゴがあるのだが、データシートがSTMicroelectronics社のWebのページに無かった。新しいNumonyxという会社で取り扱っている。この会社は、2008年4月1日にIntelとSTMicroelectronicsと他数社のジョイントベンチャーとして設立されたらしい。2008-06-30)64MbitのシリアルFLASHメモリの採用は、今回が初めてではないようだ。DS文学全集のセーブ用メモリが64Mbitだそうだ。DS文学全集を入手して調べてみた。DS文学全集のセーブ用メモリはM45PE80(8Mbit)だった。2008-07-01)Panyawoさんのブログでも分解調査されており、基板上のSL1について言及されている。WP"と印刷してあるのが見える。Protectの意味だと思われる。Protectで保護することが可能な保護領域となっている。カートリッジ組み立て後は、SL1が殻の中にあるためプロテクト解除できないので、FLASHメモリの保護領域は書き換えや消去が不可能。2008-07-02)カートリッジ個別にIDが書き込まれているか、詳しく調べようとしているのだが、既にPanyawoさんのブログでPanyawo氏が調べた結果が出ていた。Registerが001のときと一致する40バイトのIDっぽいものが書き込まれているそうだ。以前、3Dメモリで個別のIDを使うようになるかもしれないという予想があったが、3DメモリのメーカーのMatrixがSanDiskに買収されてからはそういう積極的な開発がされていないようだ。実際に3Dメモリに個別IDを書き込むには、そういう装置とか工程とかのコストが必要で、それが投資できなかったのだろうか?シリアルFLASHメモリに個別IDを書き込むのは難しいのかというと、全然難しいことでなくて既に昔からDS本体のファームウェアの書き込みで実現されている。DS本体のファームウェアも同様のシリアルFLASHメモリを使っており、これに1台1台固有のMACアドレスが書き込まれている。実現している技術なので、ゲームカートリッジ用に応用することも容易だったと思われる。Protectによる保護領域のサイズが固定だったのでID等のために領域を割くと書き込みできる領域が少なくなってしまうためだろう。今回使われたM25Pxxシリーズは保護領域のサイズを変更することが可能である。この機能を使って保護領域を必要最小限に小さく設定してあると思われる。チェックがないとしたら簡単に偽装されてしまうのでヤバそうだ。ちなみに、DS本体ファームウェアのMACアドレス部分はCRCでチェックされている。2008-07-03)色々検索していて見つけたのだが、DSのゲームカートリッジに使われているマスクROMのメーカーMacronix社もシリアルFLASHメモリを作っているようだ。今回のM25PE64と同じ容量の64Mbit製品で、MX25L6405という製品がある。DSのセーブ用メモリのバリエーションにMacronix社のシリアルFLASHメモリも加わるかもしれない。コストがNumonyxに対抗できれば。MacronixのマスクROMは、汎用のマスクROMに保護用の暗号機能を内蔵した特別な"任天堂仕様"のマスクROMを製造している。それと同様、セーブ用メモリについても、汎用のメモリ+何かコピープロテクト用の機能を追加した"任天堂仕様"のシリアルFLASHメモリを作るかもしれない。2008-07-17)ドラゴンクエスト5というゲームで何か新しいプロテクトが搭載されているらしい。入手して、中身を見てみた。大きい方のICは、Sandisk製の3Dメモリである。ゲームのメインプログラムの格納用。小さい方のICは、セーブデータ用のシリアルフラッシュメモリらしい。シリアルEEPROMのようだ。メーカーとか品番を調べ中。2008-07-23)セーブ用ICのメーカーや品番はわからずじまいである。誰か分かったら教えて欲しい。以前に作ったセーブデータ読み書き用ソフトで正しく読み書きができなかった。2008-08-08)以前に作ったセーブデータ読み書き用ソフトでは正しく書き込みが出来なかったのだが、1バイト書き込む毎に読み出し処理を入れたら正しく書き込むことができるようになった。そのかわり書き込みには凄く時間が掛かるようになってしまった。2008-08-12)ドラゴンクエスト5のマジコン対策プロテクトは、基板上の部品から判断するとハード的なものではないようだ。ソフト的に純正ROMカートリッジかマジコンかを判別するには、マジコン固有の挙動を判別すればよいので、方法は色々とある。各マジコンに固有のAPIでSDカードにアクセスしてみるとか、マジコンのファームウェアアップデートのAPIにアクセスしてみるとか。いうチェックルーチン各種が毎回ゲームソフト内に形を変えて仕込まれると、マジコン側は毎回個別にパッチをしないといけなくなる。すると、コピープロテクトを除去する装置の販売は日本では禁止されているために、マジコンを売るのが違法になってしまう。実際に、任天堂がゲームメーカー各社と一緒にマジコンを売っている会社に訴訟を起こしている。いわゆるModチップの場合には、最初は中に無害な合法ファームウェアを入れた状態で販売して、あとで客が違法なファームウェアを勝手に上書きするという形で販売されたりしていたが、日本ではそういう形でのModチップ販売まで駆逐されている。DSのマジコンの場合どうなるのだろうか。