みんなには、ナイショだよ。

ROM抽出,エミュレーター

前置き

前回記事からのつづきになります

未読の方は、お手数ですが前回から読まれることをオススメします。
タイトルはただのジョークです。

抽出したイメージを公衆配信すると著作権法に抵触します
厳禁ですのでご注意を、全ては自己責任の上で行うようにして下さい

まぁ、わざわざお金払ってアプリ購入して抽出するよりも
海賊行為した方が早いので、わるい子はいないと思いますが。

ACA NEOGEO RB餓狼伝説SP (Android ver) ROMの抽出

Binwalkで抽出したファイルの確認

ランダムな数字の羅列でわけがわかりませんが
まあNEOGEOのROMを良くみてたり
抽出スクリプト弄ってるヒトならティン!とくると思います。

抽出まとめ

※4月中にダウンロードされた人は
Sが変換されないので手動か再ダウンロードして下さい
もうしわけありません。

サクッと変換だけしたい人は自動抽出バッチ をダウンロードし
Binwalkで解凍作業を終えたのちに
(推奨Ubuntu/debian WSL可とBinwalkのインストール&手動解凍)
フォルダーに必要なファイルを配置して
conv.batを実行すれば、Romフォルダーに保存されzipが生成されます。
完全な全自動ではありません。

P/M ROM
222200
romcutter 222200 223-m1.m1 0 20000
romcutter 222200 223-p1.p1 20000 100000
romcutter 222200 223-p2.sp2 120000 400000

P/S rom #二重
231b45
# romcutter 231b45 223-p1.p1 0 100000 #二重
# romcutter 231b45 223-p2.sp2 100000 400000 #二重
# romcutter 231b45 223-s1'.s1 500000 20000 #二重

V rom
F8927C
romcutter F8927C 223-v1.v1 0 400000
romcutter F8927C 223-v2.v2 400000 400000
romcutter F8927C 223-v3.v3 800000 400000

S rom
38AC8F
Rename 38AC8F => 223-s1.s1

C rom
3A46CC 71D290 9EE088 D36960
3A46CC 223-c1.c1(ODD)/223-c2.c2(EVEN)
71D290 223-c3.c3(ODD)/223-c4.c4(EVEN)
9EE088 223-c5.c5(ODD)/223-c6.c6(EVEN)
D36960 223-c7.c7(ODD)/223-c8.c8(EVEN)

BSwap.exe d B 3A46CC oddeven.txt 223-c1.c1 223-c2.c2
BSwap.exe d B 71D290 oddeven.txt 223-c3.c3 223-c4.c4
BSwap.exe d B 9EE088 oddeven.txt 223-c5.c5 223-c6.c6
BSwap.exe d B D36960 oddeven.txt 223-c7.c7 223-c8.c8

こんな感じでした。

補足事項

C の抽出とバッチ変換

普段利用しているNEOGEOのタイルスワップが使われていません
ODD/EVENの単純分離のみで、正常なCRCを持つファイルを取得可能です。

2023年4月19日追記

発明の友さんが公開されている
Bswap.exeとoddeven.txtで変換可能でした。

こちらの記事にあるMSC_extractスクリプトを解凍し
MSC_extractフォルダ内にある
Bswap.exeとoddeven.txtをデータのあるフォルダに配置してください。

BSwap.exe d B 3A46CC oddeven.txt 223-c1.c1 223-c2.c2
BSwap.exe d B 71D290 oddeven.txt 223-c3.c3 223-c4.c4
BSwap.exe d B 9EE088 oddeven.txt 223-c5.c5 223-c6.c6
BSwap.exe d B D36960 oddeven.txt 223-c7.c7 223-c8.c8

Cの変換がスマートになりました。

下記は発明の友のスクラップAさんによる
bcut.exeを使った変換バッチです。

bcut.exe 222200 223-m1.m1 0 131072
bcut.exe 222200 223-p1.p1 131072 1048576
bcut.exe 222200 223-p2.sp2  1179648 4194304
bcut.exe F8927C 223-v1.v1 0 4194304
bcut.exe F8927C 223-v2.v2 4194304 4194304
bcut.exe F8927C 223-v3.v3 8388608 4194304
BSwap.exe d B 3A46CC oddeven.txt 223-c1.c1 223-c2.c2
BSwap.exe d B 71D290 oddeven.txt 223-c3.c3 223-c4.c4
BSwap.exe d B 9EE088 oddeven.txt 223-c5.c5 223-c6.c6
BSwap.exe d B D36960 oddeven.txt 223-c7.c7 223-c8.c8

これで一気に変換可能になりました。

再配布・再利用・改変可能とのことなので
自動抽出バッチを用意しました。
Binwalkからバッチだけでromフォルダに抽出を保存しZIP圧縮まで行えます。

発明の友、サイトオーナーのスクラップAさんに感謝です。

手動切り出し

以下、旧来の泥臭い手法。
(解析したよって証左にはなるので)

RomMasqueradeでファイルを開く

Extract ODD & EVEN (Stripe Mode)から
Odd/Evenを選択したのちGo Analyze!を押します


それぞれをSave DumpFileする方法でした。(力業)

上記の画像ではOddを押してGO Analyze!を押すと
CRC32がEBAB05E2になっています、これは223-c1.c1と一致しますので
Save DumpFileをおして223-c1.c1として保存します。

つづいてEvenを押してCRC32が641868C3であることを確認したら
223-c2.c2として保存します。
これを4ファイル8回ほど繰り返せば完了です。

CRCとZIP

参考資料としてCRC32を記載します

223-p1.p1  CRC: f84a2d1d
223-p2.sp2 CRC: addd8f08
223-m1.m1  CRC: 3fee46bf
223-s1.s1  CRC: 7ecd6e8c
223-v1.v1  CRC: 76673869
223-v2.v2  CRC: 7a275acd
223-v3.v3  CRC: 5a797fd2
223-c1.c1  CRC: ebab05e2
223-c2.c2  CRC: 641868c3
223-c3.c3  CRC: ca00191f
223-c4.c4  CRC: 1f23d860
223-c5.c5  CRC: 321e362c
223-c6.c6  CRC: d8fcef90
223-c7.c7  CRC: bc80dd2d
223-c8.c8  CRC: 5ad62102

上記CRCとの一致を確認できたら抽出作業は完了です、お疲れ様でした。

最後に

とても便利なツールを作成いただいた
Irregular child 2ndはむさん
発明の友スクラップAさん

今回は、バイナリ切り出しからのCRC総当たり作業やCの分離と
提供されたツールなしには困難な抽出でした。ありがとうございます。

与太話

難攻不落とおもわれた製品でもいけるものなのだなぁ・・・と
ただSwitch版の突破後には続報がないので
対策されてる?のかなと、今後は何かあるかもしれません。

そも今回は、すなおに使えるRomsetでしたが
未検証の他タイトルでは復号化やキメラセットが予想されるので
全てのタイトルがこのように行くとは限りません(参考)
RBやってたらRBSPが遊びたくなったんで、がんばったと言う経緯です。

CPUギースを倒した後に表示されるコマンドの
入力が成功するとギースの声でカモーンと聞こえます。(家庭用のみ)


ギースが公式に使えるのはこの方法かと
ま、抽出したからには遊ばないとね!

他のタイトルでもうまくできた場合、コメントしてくれると大喜びします。