みんなには、ナイショだよ。
前置き
前回記事からのつづきになります
未読の方は、お手数ですが前回から読まれることをオススメします。
タイトルはただのジョークです。
抽出したイメージを公衆配信すると著作権法に抵触します。
厳禁ですのでご注意を、全ては自己責任の上で行うようにして下さい。
まぁ、わざわざお金払ってアプリ購入して抽出するよりも
海賊行為した方が早いので、わるい子はいないと思いますが。
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ギースを倒した後に表示されるコマンドの
入力が成功するとギースの声でカモーンと聞こえます。(家庭用のみ)
ギースが公式に使えるのはこの方法かと
ま、抽出したからには遊ばないとね!
他のタイトルでもうまくできた場合、コメントしてくれると大喜びします。
ディスカッション
コメント一覧
どうも、しげるです
Twitterの方はもう全然つぶやいてないのですがフォローさせていただきました
そしてアケアカネオジオの変換の件ですが購入してなかった分購入しました
WSL環境でUbuntuを導入してます
自分もスクラップAさんのツールを使って
とりあえずネオジオローンチのNAM-1975からBAT作成始めてみました
ホントは最新作のニンジャコンバットで変換できるかどうか調べないといけないですね^^;
おそらく暗号化されていないやつは全部変換できると思いますけど
スクラップAさんのツールすごい便利ですよね
はむさんとスクラップAさんにはホントに頭が上がりません
感謝の言葉しか無いです
ゲームはプレイしてなんぼなんですけどね
自分も気になっている暗号化分のゲームに関しては明日見てみようと思ってます
素人感丸出しのNAM-1975のBATファイル参考程度に貼っておきます
二重に入ってるPROMはどっちから取るほうがいいのかとか悩んでました
アドレスが0からのほうがわかりやすいなとか思いながら
って今気づきましたがリアルバウトスペシャルの分参考に変更したのですが
S1が抜けてますね^^;
なので自分のもS1抜けてたので追加しておきます
bcut.exe 222748 001-m1.tmp 0 131072
copy /b 001-m1.tmp + 001-m1.tmp 001-m1.m1
del 001-m1.tmp
bcut.exe 222748 001-p1.p1 131072 524288
bcut.exe 36B70C 001-v11.v11 0 524288
bcut.exe 36B70C 001-v21.v21 524288 524288
bcut.exe 36B70C 001-v22.v22 1048576 524288
bcut.exe 36B70C 001-v23.v23 1572864 524288
copy /b 254A27 001-s1.s1
BSwap.exe d B 267C0C oddeven.txt 001-c1.c1 001-c2.c2
BSwap.exe d B 2B03CC oddeven.txt 001-c3.c3 001-c4.c4
BSwap.exe d B 30F318 oddeven.txt 001-c5.c5 001-c6.c6
mkdir rom
move 001-m1.m1 rom\
move 001-p1.p1 rom\
move 001-v11.v11 rom\
move 001-v21.v21 rom\
move 001-v22.v22 rom\
move 001-v23.v23 rom\
move 001-s1.s1 rom\
move 001-c1.c1 rom\
move 001-c2.c2 rom\
move 001-c3.c3 rom\
move 001-c4.c4 rom\
move 001-c5.c5 rom\
move 001-c6.c6 rom\
powershell compress-archive rom/* nam1975
間違いがあったらすいません~
こんばんはしげるです
アケアカネオジオアンドロイド版の件です
最新のニンジャコンバットですがやはり対策されてました(T_T)
単純でありながら割と効果のある対策です
ニンジャコンバットは524,288バイトのCROMが6個あり合計は3MBなんですが
CROMに当たるファイルが3つのファイルではなく
786,432 バイトのファイルに4分割されていました
合計は3MBで合いますがEven/oddに分割する前のファイルなので
そのままでEven/oddで抽出すると393,216 バイトになってしまいます
容量が足りないCROMになっちゃいます
多分どれか一つのファイルを三分割して786,432バイトのファイルに
合体させて1MBの3つのファイル構成にすればいいのだと思いますが
そのファイルが既にEven/oddされてるものなのかとか分からないので
単純でありながら効果的な対策と思いました
これから出るやつも同じ対策されると思います
まだ全部見てないのですが他のやつも対策されてるかもしれないです
バージョンアップとかなかったのならば少なくとも
リアルバウト餓狼伝説スペシャル以前のは大丈夫なのかと思います
残念
こんにちはしげるさん!
NAM-1975の変換Batch投稿ありがとうございました!
おそらく問題なく動くと思います~
うわぁ・・・かなりえげつない対策ですね;
ご自身で解析されたとブログに記載がありましたが
本当にお疲れ様でした、コレをゼロベースでやれと言われてもやりたくないです(真顔
他のコメントなどからもRBSPは本当に素直な子だったんだなぁとしみじみ実感しています;
あ、不備のご指摘ありがとうございました。これから修正させていただきます!
解決済みかもしれないですが、ちょうどニンジャコンバット試したので情報投下しておきます。
途中linuxコマンドが混じってますが、CROMは全部のファイルを単純に結合して3つに分割するだけでした。
mv 256F2B 009-s1.s1
bcut.exe 3A2CF0 009-v11.v11 0 524288
bcut.exe 3A2CF0 009-v12.v12 524288 524288
bcut.exe 3A2CF0 009-v13.v13 1048576 524288
bcut.exe 3A2CF0 009-v21.v21 1572864 524288
bcut.exe 21EFA0 009-m1.m1 0 131072
bcut.exe 225134 009-p1.p1 0 524288
cat 26DAD0 2C0A54 312A6C 359DC4 > out
dd if=out of=c12 bs=1M count=1
dd if=out of=c34 bs=1M skip=1 count=1
dd if=out of=c56 bs=1M skip=2 count=1
BSwap.exe d B c12 oddeven.txt 009-c1.c1 009-c2.c2
BSwap.exe d B c34 oddeven.txt 009-c3.c3 009-c4.c4
BSwap.exe d B c56 oddeven.txt 009-c5.c5 009-c6.c6
バッチの投下ありがとうございます!
DDあたりのコマンドがらみは
Copy /b 26DAD0+2C0A54+312A6C+359DC4 CROM
bcut CROM C12 0 1048576
bcut CROM C34 1048576 1048576
bcut CROM C34 2097152 1048576
こんな感じでいけそうかな?(超適当