2010年11月10日水曜日

赤Wiiの25thSMBをバイナリで比較してみる

昨日、無事赤WiiをHackできたので、私の一番知りたかった25周年記念バージョンスーパーマリオブラザーズを吸い出し、オリジナルのスーパーマリオブラザーズとの違いを比較してみる。

1109232520_2

まず昨日の記事アップした段階で、FileSystemDumperを使ってNANDのデータをバックアップするところまでは終わっていた。

で、ちょっと前置きしますと、初期のヴァーチャルコンソール用データはSNESなどは圧縮されていたりしましたが、NESの場合はベタで収められていたのでデータ切り出すだけでできたんですね。

25th125th2

↑初期の頃にVCで配信されたSMBは00000008.APPにそのまま入っている。

グラディウス、グラディウス2、アイスクライマーでも確認したけどそのまま入ってる。

なので、てっきり今回の25thSMBも同じだろう、と数日前からプランを立てて昨日終わらせるつもりだったんですが、昨日の追記で書いた通り躓きましたw

25th3

「NES」で検索して見つかったのが上のデータ。

でもバイナリ見ると、

25th4

ヘッダの部分だけ見ても後半部分が違う・・・

とりあえずマッパー0のサイズで切り出してみるものの、明らかにデータが違いすぎる(^-^;

部分的に8Byteづつデータが続いて・・・とかしてたので何とかならないかなぁと考えながら寝たんですが、考えながら寝てたので半分起きてたようで、これ書いてる現在超眠かったり・・・

で、今朝会社でコメント見てみると、ありがたいことにS.Oさんから複合化の方法を教えていただきました!

先回のマリコレに続き、今回も助けていただきました(汗

情報によりますと、2008年8月19日頃からNESのデータも圧縮化され始めたとのことで、私が如何にWii(VC)使ってないかということがよくわかりますね(笑

そこで複合化するツールの出番になりますが、こちらのDSDecmpというツールを使うと複合化できる、ということで。

25th5

該当するファイルと出力するフォルダを選択して実行する。

25th6

すると、フォルダの中に複合化されたデータが出来上がる。

25th7 ←お、見たことあるデータだw

データの中身をバイナリで見ると、初期VC版SMBと同じようなデータになっており、ベタのデータが入ってると確信した(笑

25th8

そうなれば後は簡単、適当なツールを使って該当するデータを切り出すだけでNESファイルの出来上がり~(^-^)

ではでは、気になるデータはどうなっているのか、オリジナルのSMBのデータと比べてみる。

25th9

んぁ?・・・・・・・ブロックだけかよ~!orz

って、あれ?コピーライトの2010が無い・・・

25th10

私が配布したパッチを当てたデータと比較すると、当然だが表示位置と2010を追加した部分だけが違う。

・・・なんでだ?

Wii上ではちゃんと2010と付いてるのに。

ブロックだけ書き換えてコピーライトだけWii内部でパッチ当てて起動するってのも矛盾してるよなぁ・・・

コレについてはもうチット考えてみます。

WiiRdで覗けば何かわかるかな?

ん~・・・とりあえず、ブロック部分だけは配布したパッチと全く同じなので、テストなら私は100点だな(大違

ということで、無事25thスーパーマリオのデータを吸い出しできたし、比較も出来たし、25thマリオには睡眠不足を除けば楽しい時間をすごさせていただきました(笑

S.Oさん、情報ありがとうでした~(^-^)

あ~、もう一個、25thマリオwad化するのにいいツール無いかなぁ・・・と探していたらweさんのページに詳しく載ってました(^-^)

25th12

詳しくはweさんとこで確認してください(手抜き

正直このツールは便利だ。

初めからこのツール知っておけば、この記事の一番上で書いたFileSystemDumper要らないんじゃないか(^-^;

う~ん、知らないことだらけ~

.

あ、序だからおまけ

赤Wiiは要らないけど25thマリオをWiiでプレイしたい!って人は以下のように。

必要環境としては、

・WiiHackできてること

・初期VCのNESのwadがあること

・オリジナルのSMBから吸い出したデータがあること(要25thパッチ)

最低限上のモノが必要で、あとはツールをネットから用意する。

25th11

Auto Injectuwad Injector v3を使ってNESファイルを差し替えるだけです。

v3は全自動で作ってくれるので楽に差し替えられます。

common-key.binで抵抗があるなら、上で使ったShowMiiWadsで適当なWAD開いて自分でkey.bin抽出すれば問題ありません。(←コレについても簡単だよね)

あとはWAD InstallerでインストすればOK。

Wiiメニューの25thロゴや音楽は無いけれども、ゲームプレイ自体は完全に同じ動作でプレイできますw

.

【追記】

ちょっと仮眠したのでGecko+WiiRdで吸い出してみる。

25th13

複合化されたデータは0x804857000xC0485700に見つけることができる。

25th14 ←1985のままだ・・・

データ的にはメモリ上もブロックのみの違いだけ・・・

う~む・・・マリコレの音楽部分と同じように、違うところから書き換えてるんだろうか?

一応、単純に2010でサーチしても他のメモリ領域含めて見つからなかった(笑

なんでこんな仕様になってるのかサッパリわからん。

まさかニンテンの技術者が2010の書き換えできんとは思えんし・・・

ん~・・・意図を聞きたいですねぇ。

.

【追記2】

やっぱりコピーライトはメモリ上でパッチ当てされてた

上で書いた2010サーチは10進数でやってた(汗

寝起きだったので、ということで(ぉ

1110215238_2 ←通常は2010

一応、Wiiだとわかるようにメニュー付きで(笑

25th15

元のROMデータに0x801154E8から書かれているコピーライトがパッチされてるようだ。

25th16

試しに9999に変更してみる。

1110215238_0

変わる・・・

いや、まぁ、どうでもいいことなんだけれども(^-^;

コピーライトだけパッチ処理ってのがどうも気になって。

う~む・・・謎だ。

【全然関係ない追記】

「gecko buy」でググッたらこんなの出てきた・・・キモ~

19 件のコメント:

we さんのコメント...

ぽんRevさん、お邪魔します。

なんかいつもリンク貼ってもらっていて申し訳ない
気持ちです。赤Wii記事でお返しさせて頂きます。

この記事を読んでみると、ぽんRevさんの
趣味趣向がホンの少し理解出来た感じです。
何か難しくてマニアックな事をされてるなと
感じていましたが、共通する部分が出てくる
と一気に理解度が高まりますね。
色々と勉強になり脳が活性化して嬉しいです。

確かに、FileSystemDumperを使うなら
nand.binをShowMiiWadsかNAND Extractorで
展開するのが楽ですね。

Wadの吸い出し⇒再インストールも自分の方法とは
違って面白いです。これからも勉強させて頂きます。

追伸)
自分の赤Wiiはもう入荷しているけど今日の販売
は断られました。。。
どのみち記事が未完ですので大丈夫です(^^)

ぽんRev さんのコメント...

weさん

リンク貼るのは迷惑がる人もいらっしゃいますので私としてもちょっとドキドキなので、怒られなくてホッとしました。

私の記事は・・・微々たる事でも参考になれば幸いですm(_ _)m

>難しくてマニアックな事を
難しいかは別として、マニアックなのは認めます(笑
実際普通にゲームするなんて滅多にないですからね。

FileSystemDumper使うとか、WiiHack初期の頃のやり方ですよね(^-^;
ぶっちゃけ新しいツール探したりするのがメンドくて(爆
weさんのトコ読んでいてWiiのいろんな使い方がわかってきて、今回はいろんな面でとても参考になりました(^-^)
まだ見てないとこあるんで、いろいろ読まさせていただきますね~

Ioannes Carolus さんのコメント...

Hello my japannese friend. Im typing from Mexico, and this special pack to conmemorate the 25th Anniversary of Super Mario Bros (With the special rom of Super Mario Bros), never go out from Japan, and that is too bad for the Mario's fans around the world. Yes, is too easy modificate the original rom of super mario bros (Thanks to you), but the banner, and the sound of this special game in the Wii Menú are incredible.

Please,¿Can you share this special "wad" to me? My email is el_correo_de_carlos@hotmail.com. I promise you, don't share with anybody but please....give me the oportunity to have this special content.

Thanks in advance.

ぽんRev さんのコメント...

To: Ioannes Carolus

welcome, and sorry.
When i presents you this wad file, I'm put in the prison...
Please obtain Red Wii of Japan somewhere. =)

Ed さんのコメント...

LOL you won't go to prison for posting an old NES wad! All personal info is removed from the .tik once you trucha sign it.

Just upload it to a torrent!

Ed さんのコメント...

Just upload the WAD to a torrent! All personal info is removed from the .tik once you trutcha sign it.

ぽんRev さんのコメント...

not upload.
buy Red Wii of Japan.

trickart さんのコメント...

今さら質問なのですがいいですか?
記事にもあったように最近VCの仕組みを変えたんだかわかりませんがROMが取り出せなくなってますよね?
そこで記事ではメモリ上で復号化されたファイルを吸いだしていますが、これはNESファイルだけでなくSNESやN64もできるのでしょうか?
(できるのであればできると思って買ったスーパーデラックスとスマブラが無駄にならずに住むのですが・・・)

ぽんRev さんのコメント...

trickartさん

>NESファイルだけでなくSNESやN64も
できますよ~・・・っていうかできるはずですw
原理は同じですから。
wad化してからならDSDecmpで、GeckoがあるならWiiRdで直接覗けるから楽かな。

SNES、N64ともヘッダ検索すれば直ぐ見つかると思います(^-^)

trickart さんのコメント...

すんません。DSDecmpの使い方は、
appファイルのあるところにDSDecmp.exeを移動して、その中にフォルダを作る
コマンドプロンプトから
C:なんちゃら~>DSDecmp appファイル 作ったフォルダの名前
でいいんでしょうか?
これで実行すると
Could not decompress 00000001.app; no matching compression methot found.
とでます。
appファイルにマッチするメゾットが見つからないってことなのかな?
とにかく00000001.appと00000005.appでやってみたのですが同じような結果に・・・
USB Gecko、買うかな?

ぽんRev さんのコメント...

trickartさん

えっと、ごめんなさい半分ウソ(?)付いちゃったかも(^-^;
ちょっと気になったので、試しに今カービィを購入してNANDバックアップしてExtractしてappを覗いてみたのですが・・
dsdecmpは今回の場合意味が無いのでした(ぉ
実際には、
tp://neosource.1emu.net/forums/index.php?topic=919.msg7581#msg7581
にあるextract.exeというツールを使って00000005.appを分解する。
次に出来た.romファイルを、
tp://hcs64.com/vgm_ripping.html
にあるlzh8_dec.exeで解凍すると、正規のROMファイルが出来上がる、となりますw
んが、残念ながらSFC&N64(他もあるかも)は音楽関係が別途Wiiで扱えるPCMというファイルで保存されており、エミュなどでROM起動しても音楽が正常に鳴りません。
これはWiiRdを使った場合も同じで、メモリ上ではROM展開されてるけど、音楽ファイルは別にあるので正常なデータとしては使えません。
音楽ファイルを元に戻す方法は現状無い(?)と思います。

それでもいいから詳しく~、というのであれば近いうちにやり方アップしますw

trickart さんのコメント...

ぽんさん

SNESの方は音声なしだけどうまくいきました!ありがとうございます。
N64の方はextract.exeまでは同じなんですけど、.romファイルはなくromcファイルが出てきました。
そこで調べたところ、
http://forum.xentax.com/viewtopic.php?f=21&t=5364
の中のromchu03.zipのromchu.exeで展開することができました。
しかもBGM付き!(抜けてるところがあるかもしれないけど実機の挙動は覚えてないので完全ではないかもしれません。)
あとで記事にまとめたいと思います。

ぽんRev さんのコメント...

trickartさん

あら?N64は音鳴るんですね(^-^;
romchu06.zipまであるみたいですが・・06でもいけますよね、きっと。

MDとかPCEとかはどうなんだろう?
機種に依存するのか、ゲームに依存してるのか・・・いろいろと試さないとわかんないですね。

記事楽しみにしてます(^-^)

trickart412 さんのコメント...

ようやく記事ができました。
http://gametricks.blog40.fc2.com/blog-entry-14.html
こんな感じで多分他のもうまくいく‥・ハズ。
N64が音が出るのは想定外の喜びですね!

ぽんRev さんのコメント...

Trickartさん

解説お疲れでした(^-^)
私は他の事やってて試してませんが、N64の他のゲーム+その他ハードの展開も試してみたいですね。

trickart さんのコメント...

ぽんさん

いえいえ情報ありがとうございます。
他のソフトは…お金があったらやりたいですね。
やるとしたら持ってない中でほしいやつでやりたいです。
そうすると…MGとMG2かな?
MSXはどうなっているやら。
他にも温めてるネタがあるので、お金と時間があれば…やりたいと思ってます。

tai さんのコメント...

今さらですがvcのsfcromの音楽ファイルをもとに戻す方法を出来なくていいので教えてください。

ぽんRev さんのコメント...

taiさん

レス遅くなりました。

上で書かれてるtrickartさんのトコを参考にしていただければ・・・ではだめかな。

確かまだ5000ポイントが家のどっかに隠れてるハズなので、見つかったら全機種用の展開方法の記事でも書きたいとは思っとりますです。
・・・が、予定なので未定です(^-^;

tai さんのコメント...

分かりました気長に待ちます