オレたちゲーセン族「熱血硬派くにおくん」解析

Amazon : オレたちゲーセン族 熱血硬派くにおくん
https://www.amazon.co.jp/dp/B000BYZNPC

 ハムスターのPS2「オレたちゲーセン族」シリーズはアーケード基板エミュレータベースのプログラムで、熱血高校ドッジボール部で過去にROMダンプも成功していたので試しにその元祖にもチャレンジしてみました。
 解析ツールは自作プログラムROM Masquerade使用です。

ROMダンプのためのCRC情報参考元(MAMEDB)
https://www.mamedb.com/game/kuniokunb.html

 前例通りROMイメージはPS2DVDのプログラムファイル SLPM_627.06 にあるのでROM Masqueradeでオープン。
 一番最初にプログラムROMがレイアウトされると予想して
Go Analyze!
Brute Force(DetectCRC)
Size 8000
TargetCRC a90cf44a
Step(HEX) 10
 この条件でブルートフォースCRC解析を仕掛けると……
DetectCRC:A90CF44A ADR:001F16A0 SIZE:00008000
 はい楽勝~!
 ……と、解析を開始したときの私はそんなコトを考えていました。

《ROM MasqueradeのブルートフォースCRC解析の結果》

ta18-10.bin DetectCRC:A90CF44A ADR:001F16A0 SIZE:00008000
ta18-11.bin 発見できず!!!
n0-5.bin DetectCRC:3587DE3B ADR:002056A0 SIZE:00008000
ta18-25.bin DetectCRC:9BD2BEA3 ADR:0021D6A0 SIZE:00008000
ta18-01.bin DetectCRC:DAF15024 ADR:002256A0 SIZE:00008000
ta18-06.bin DetectCRC:1F59A248 ADR:0022D6A0 SIZE:00008000
n7-5.bin DetectCRC:7CA5A532 ADR:002356A0 SIZE:00008000
ta18-02.bin DetectCRC:994C0021 ADR:0023D6A0 SIZE:00008000
ta18-04.bin DetectCRC:55B9E8AA ADR:002456A0 SIZE:00008000
ta18-03.bin DetectCRC:0475C99A ADR:0024D6A0 SIZE:00008000
ta18-20.bin DetectCRC:C7D54139 ADR:002556A0 SIZE:00008000
ta18-24.bin DetectCRC:84677D45 ADR:0025D6A0 SIZE:00008000
ta18-18.bin DetectCRC:1C770853 ADR:002656A0 SIZE:00008000
ta18-14.bin DetectCRC:AF656017 ADR:0026D6A0 SIZE:00008000
ta18-23.bin DetectCRC:3FD19CF7 ADR:002756A0 SIZE:00008000
ta18-17.bin DetectCRC:74C64C6E ADR:0027D6A0 SIZE:00008000
ta18-19.bin DetectCRC:C8795FD7 ADR:002856A0 SIZE:00008000
ta18-22.bin DetectCRC:DF3A2FF5 ADR:0028D6A0 SIZE:00008000
ta18-16.bin DetectCRC:7244BAD0 ADR:002956A0 SIZE:00008000
ta18-13.bin DetectCRC:B6B14D46 ADR:0029D6A0 SIZE:00008000
ta18-21.bin DetectCRC:C95E009B ADR:002A56A0 SIZE:00008000
ta18-15.bin DetectCRC:A5D61D01 ADR:002AD6A0 SIZE:00008000
ta18-07.bin DetectCRC:02E3F3ED ADR:002B56A0 SIZE:00008000
ta18-08.bin DetectCRC:C9312613 ADR:002C56A0 SIZE:00008000
ta18-09.bin DetectCRC:07ED4705 ADR:002CD6A0 SIZE:00008000

 いきなり二行目に不穏な言葉がありますが、熱血高校ドッジボール部も一部ROMイメージが前半後半を上下構造スワップしなければダメだったので、それと同じような感じでしょう!
 ……というヌルい考えで地獄へまっしぐらとなりました。

~以下、作業中のメモ(ほぼ原文ママ)~

 ta18-11.binはMAMEDBの「Region maincpu Offset 4000」で開始位置ズレのある同シリーズの「熱血高校ドッジボール部」と同じパターンと推測。名前がta18-10.bin、ta18-11.binと連続しているのでta18-10のヒットしたアドレス001F16A0 + 8000 = 1F96A0 から始まっている0x8000バイトを上下0x4000バイトずつ切り取って接続してCRC解析を行いf240f5cdになれば正解と推測。
Target Area (HEX)
001F96A0 to 002016A0
Go Analyze!
Swap 1stHalf&2ndHalt
 =ダメでした!
 というか冒頭からバイナリが00000000…なのでどう考えても違う。
 1000hずつ足しながら先に進めていっても見つからない。

 もしかして「ta18-11.binはta18-10.binより前にあるのでは???」と仮説。
アドレス 001F16A0 – 8000 = 001E96A0
Target Area (HEX)
001E96A0 to 001F16A0
Go Analyze!
Swap 1stHalf&2ndHalt
 =やっぱりダメでした!
 というか今度は後半0x4000バイトが00000000…。

 バイナリエディタで周辺を調べているとおかしなコトを発見。
 ta18-10.binの格納されているアドレス001F16A0から遡っていくとアドレス001ED6A0バイトより上は0000…羅列。
 0000…までのサイズは0x4000バイト。
 ta18-10.binの終端(アドレス001F16A0+0x8000=アドレス001F96A0)から
 先に向かって羅列を見ていくと、アドレス001FD6A0から0000…。
 アドレス001FD6A0 – 001F96A0 = 0x4000バイト。

 この周囲は広範囲にわたって00000000…しかない。
 ta18-10.binをサンドイッチしている0x4000+0x4000がta18-11.binなのでは?

Target Area (HEX)
001ED6A0 to 001F16A0
Go Analyze!
Save DumpFile
test1.bin
Target Area (HEX)
001F96A0 to 001FD6A0
Save DumpFile
test2.bin

 コマンドプロンプトから下記コマンドを実行し先の2バイナリをoutput.binに結合。
copy /b test1.bin+test2.bin output.bin
 output.binをROM Masqueradeで開く。
 Go Analyze!
 CRC32 F240F5CD
 一致!!!!!!!!!!!!!!!!!(※解析所要時間4時間ちょい)。

 いや、ホントもうしんどかった。
 ところで kuniokunb ってMAMEのROMセット的には「海賊版」って書かれてるんですけど……なんでこのROMイメージを公式ソフトに使ったのかなぁ(‘ω`;

ROM Masqurade v1.70

Download : ROM Masquerade [ROMASQUE] v1.70

 久々にエミュレータ移植系ROM解析をしようと思い立って使ってたら、バックグラウンドでSHIFTとBSを押すと解析が中断されて超ウザかったのでプログラムをフォアグラウンドにしてCTRL+Cでキャンセルするように設定変更(最近の流行ならCTRL+ZだろうけどDOS風で)。