2010年10月22日金曜日

Wii マリコレからROMイメージを吸い出す

昨日の記事のコメントで匿名さんから情報を教えていただいたので同じように吸い出してみたいと思います。

まず、昨日私が使ったWiiRdの方法は今回は使用しません(笑

純粋にGDR-8161(など)で吸い出した生のイメージを、WIIScrubberで操作してデータを抜き取ります。

の前に、一応ウチにあるスーファミ版のスーパーマリオコレクションを吸い出してバージョンチェック(マリコレは1.0と1.1が存在する)をしないとね。

PICT5503svmj8

svmj9

CRCを調べると1.1と判明。

Wii版マリコレは1.1ベースみたいなのでコレでOK。

わかったところでWii版マリコレのイメージをWIIScrubberで見てみる。

svmj10

content5の中にLZH8SVMJ.pcmLZH8SVMJ.romが存在しているのでコレを抽出する。

(今回は上のPCMファイルは使いません)

関係ないけど、何気にファイル数25ってのがいいね(笑

このデータはLZH8形式で圧縮(暗号化?)されてるので、コチラに置いてあるLZH8のツール(探してねw)を使って元に戻してやります。

svmj11

出来上がったsvmj.romが「一応」スーファミエミュやSuperEVERDRIVEで動かすことの出来るROMイメージです。

svmj16 ←badで音無しだけど一応動く

んが、このままのROMイメージだとPCMのデータが内蔵されていないため、音が殆ど鳴りません(笑

svmj12

大きく分けて2箇所、通常PCMデータが入ってる箇所がPCMFやらで埋まってます。

おそらくLZH8SVMJ.pcmがそれに当たると思うのですが・・・pcmデータはまだ調べてないので一先ずおいときます(^-^;

ってか、データがかなり違うのでそのまま戻せなかったりするんですねぇw

なので、スーファミ版マリコレ(v1.1)からPCMデータ部分を抜き取って置き換えます。

置き換える位置は$58078~31770Byte$1DA289~21975Byteです。

バイナリエディタでコピペしてもいいし、拙作ツールの場合だと、

datacut supermariocollection.smc pcm.dat 360568 31770
datapast svmj.rom pcm.dat 360568
datacut supermariocollection.smc pcm.dat 1942153 21975
datapast svmj.rom pcm.dat 1942153

↑こんな感じでCMDで上から実行していけばOK。

svmj14

変更すると上のようなCRCなどのデータになります。

svmj13

まだ若干違う箇所があるんだけれども、

svmj15 ←チェックサムはOKとなるw

ってことで、PCM部分以外は正常に取り出すことが出来たので満足です(^-^)

匿名さん、ありがとうございましたm(_ _)m

あとはPCMを見たり、他にも何かデータがありそうな感じで、Wii版マリコレは結構楽しめるかもしれないぞ~!

・・・楽しみ方間違ってますか?(笑

【追記】

WiiRdを使って、ユーザーが覗けるメモリ空間を見てみる。

svmj17

アドレスごとに全てdumpして内容を見てみると、svmj80.dmpとsvmjc0.dmpは大体同じ内容で、いろんなゲームタイトルが書かれている。

c8、cc、cdは容量も少ないし、特に気になるデータは無い。

svmj90.dmpとsvmjd0.dmpの中には、昨日のコメで匿名さんが書かれたように、マリコレの複合化されたデータを見つけることができる。

svmj18

マリコレの置かれているデータアドレスは、どちらのdmp共に$34b900~2097152Byteですが、やはりコチラもPCMデータが入っていない。

けど、教えていただいたとおり生ROMイメージから吸い出したデータと若干相違があるので、エミュで動かすとPCMを置き換えてもチェックサムはbadになる。

・・・一応動くんだけどもね。

ので、現状は生ROMイメージから吸い出してPCM置き換えたほうがデータ的にはいいのかもしれない(笑

2 件のコメント:

ツボック さんのコメント...

メ-ル送りました。
少し早いですが、もう寝ますね。

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

今送りました~
何が出来るか楽しみにしてます(^-^)