Tecmo Classic ArcadeのROM抽出Pt1

ROM抽出,エミュレーターFinalBurnNEO,MAME,エミュレーター

優先タイトルのみ抽出です

古いタイトルはICに比例して、抽出ファイル数がとても多く
凡ミスを減らすために一部タイトルを優先して抽出しています
残りのタイトルは時間をかけて行いますのでご了承ください。

動作確認はしていますが、ポカミスする人なので
問題が起きた場合にはコメントいただければ幸いです。

動作確認はFinalBurnNeoARCADE(MAME派生)で行っています。

必要なもの

XBOX版Tecmo Classic Arcadeの抽出イメージ(xbe形式)



必要ファイルはdefault.xbe(約7MB)となります。

スクラップAさんのブログから
メタルスラッグコンプリート用のファイル
(MSC_extract_v2.zip)をダウンロード・解凍します


その中に含まれるbcut.exeおよびbswap.exeoddeven.txt
default.xbe同じフォルダに配置してください

ボンジャック set1

rem ボンジャック抽出bat
bcut default.xbe 01_h03t.bin 0xE6F18 0x2000
bcut default.xbe 02_p04t.bin 0x1E5600 0x1000
bcut default.xbe 03_e08t.bin 0x1DC600 0x1000
bcut default.xbe 04_h08t.bin 0x1DD600 0x1000
bcut default.xbe 05_k08t.bin 0x1DE600 0x1000
bcut default.xbe 06_l08t.bin 0x1DF600 0x2000
bcut default.xbe 07_n08t.bin 0x1E1600 0x2000
bcut default.xbe 08_r08t.bin 0x1E3600 0x2000
bcut default.xbe 09_j01b.bin 0xEAF18 0x2000
bcut default.xbe 10_l01b.bin 0xECF18 0x2000
bcut default.xbe 11_m01b.bin 0xEEF18 0x2000
bcut default.xbe 12_n01b.bin 0xF0F18 0x2000
bcut default.xbe 13.1r 0xE8F18 0x2000
bcut default.xbe 14_j07b.bin 0x1EA600 0x2000
bcut default.xbe 15_l07b.bin 0x1E8600 0x2000
bcut default.xbe 16_m07b.bin 0x1E6600 0x2000

mkdir bombjack
move *.bin bombjack\
move 13.1r bombjack\
powershell compress-archive bombjack/* bombjack

上記BATファイルをメモ帳などにコピペして
必要ファイルと同じ場所に保存し実行します。

XBOXで遊んだ場合はFC版のアーケード風アレンジがBGMになりますが
抽出した場合は「リンゴの森の子猫たち」を聞くことができます
アケアカでも再現していないので忠実派向け。

スターフォース ファイル不足

PS2版と異なり07b.binと思われる部分が00で埋められていました。
FinalBurnNeoではoptional扱いなのでプレイ可能です
ダミーを作ることでMAMEでも所有・プレイ可能になります(開始時の警告あり)。

# 07b.bin.ps1(CRC調整ver)
# ダミーファイルの名前を指定
$fileName = "07b.bin"  
$nullBytes = [byte[]]@(0) * 28
$customBytes = 0x73, 0x0E, 0xAD, 0x96
$fileContent = $nullBytes + $customBytes

# ファイルをバイナリモードで書き込みます
[System.IO.File]::WriteAllBytes($fileName, $fileContent)
Write-Host "ダミーファイルが作成されました。ファイル名: $fileName"

上記powershellのスクリプトをテキストエディターにコピペして
07b.bin.ps1として保存してください。
CRC調整済で正規ROMではありませんが、MAMEでも所有扱いになります。

rem starforc 変換bat

bcut default.xbe 1.3hj 0x14D3A0 0x2000
bcut default.xbe 2.3mn 0x1533A0 0x4000
bcut default.xbe 3.3p 0x14F3A0 0x4000
bcut default.xbe 4.8lm 0x2DC670 0x4000
bcut default.xbe 5.9lm 0x2D8670 0x4000
bcut default.xbe 6.10lm 0x2D4670 0x4000
bcut default.xbe 7.2fh 0x2C2670 0x1000
bcut default.xbe 8.3fh 0x2C3670 0x1000
bcut default.xbe 9.3fh 0x2C4670 0x1000
bcut default.xbe 10.8de 0x2CC670 0x2000
bcut default.xbe 11.9de 0x2CA670 0x2000
bcut default.xbe 12.10de 0x2C8670 0x2000
bcut default.xbe 13.8jk 0x2D2670 0x2000
bcut default.xbe 14.9jk 0x2D0670 0x2000
bcut default.xbe 15.10jk 0x2CE670 0x2000
bcut default.xbe 16.8pq 0x2C7670 0x1000
bcut default.xbe 17.9pq 0x2C6670 0x1000
bcut default.xbe 18.10pq 0x2C5670 0x1000
powershell -NoProfile -ExecutionPolicy Unrestricted .\07b.bin.ps1
mkdir starforc
move *.*hj starforc\
move 3.3p starforc\
move *.*mn starforc\
move **.*fh starforc\
move **.**de starforc\
move **.**jk starforc\
move **.**pq starforc\
move **.**lm starforc\
move 07b.bin starforc\
powershell compress-archive starforc/* starforc

軽く遊んだ限りでは支障はありませんでした

ラリオスやり過ごしてボスに突入
放置して消失させるパターンを使うと
お店で(電源)ぶちぎれられること請け合い

何しろクレオパトラ100万点を10回繰り返して
1000万点超えないとボス以外の敵が出なくなるという。
(このバージョンで確認)

ソロモンの鍵 CRC不一致

rem solomonj変換Bat ※crc missmatch

bcut default.xbe slmn_01.bin 0x13C340 0x4000
bcut default.xbe slmn_02.bin 0x2B2670 0x4000
bcut default.xbe slmn_03.bin 0x2B6670 0x4000
bcut default.xbe slmn_04.bin 0x2BA670 0x4000
bcut default.xbe slmn_05.bin 0x2BE670 0x4000
bcut default.xbe slmn_06.bin 0x141340 0x4000
bcut default.xbe slmn_07_b.tmp 0x145340 0x4000
bcut default.xbe slmn_07_t.tmp 0x149340 0x4000
bcut default.xbe slmn_08.bin 0x140340 0x1000
bcut default.xbe slmn_09.bin 0x29a670 0x8000
bcut default.xbe slmn_10.bin 0x292670 0x8000
bcut default.xbe slmn_11.bin 0x2AA670 0x8000
bcut default.xbe slmn_12.bin 0x2A2670 0x8000
copy /b slmn_07_t.tmp+slmn_07_b.tmp slmn_07.bin
del *.tmp
mkdir solomonj
move slmn_**.bin solomonj\
powershell compress-archive solomonj/* solomonj

PS2版と全く同一でCRC不一致です。

CRCの書き換えは


上記記事を参考に、以下のコマンドで行うことが可能です。

forcecrc32.py slmn_09.bin 32764 AB7E6C42

お手数ですが、ご自身で修正するようお願いいたします
軽く遊んだ限りでは問題はなさそうですが、不測のバグが起きる可能性は否めません。

アルゴスの戦士 日本語版 set1

rem アルゴスの戦士抽出BAT
bcut default.xbe cpuj_5p.bin 0x115C20 0x8000
bcut default.xbe cpuj_5m.bin 0x11DC20 0x4000
bcut default.xbe cpuj_5j.bin 0x10DC20 0x8000
bcut default.xbe cpu_4h.bin 0xF7C20 0x2000
bcut default.xbe cpuj_8k.bin 0x24C600 0x8000
bcut default.xbe vid_6k.bin 0x22C600 0x8000
bcut default.xbe vid_6j.bin 0x234600 0x8000
bcut default.xbe vid_6h.bin 0x23C600 0x8000
bcut default.xbe vid_6g.bin 0x244600 0x8000
bcut default.xbe vid_6p.bin 0x20C600 0x8000
bcut default.xbe vid_6o.bin 0x214600 0x8000
bcut default.xbe vid_6n.bin 0x21C600 0x8000
bcut default.xbe vid_6l.bin 0x224600 0x8000
bcut default.xbe vid_6f.bin 0x1EC600 0x8000
bcut default.xbe vid_6e.bin 0x1F4600 0x8000
bcut default.xbe vid_6c.bin 0x1FC600 0x8000
bcut default.xbe vid_6b.bin 0x204600 0x8000
bcut default.xbe cpu_1f.bin 0xF3080 0x4000

mkdir rygarj
move *.bin rygarj\
powershell compress-archive rygarj/* rygarj

駄菓子屋兼業のゲームセンターで50円2回プレイだった思い出
途中からコンティニュー不可で泣いたタイトルでもあります。

英語版も収録されているのですが、うまく抽出できませんでした
時間が取れた時に追試することにします。

雷牙 MCU未ダンプ

a-6v.mcuが未ダンプとなっています
今後Decapされた場合には不動になるおそれがあります。
MAMEで実行可能にするためダミーファイルを生成します。

# ダミーファイルの名前を指定
$fileName = "a-6v.mcu"  
$fileSize = 2048
$fillByte = 0xFF

# 指定したバイトで埋めたバイト配列を作成します
$fileContent = [byte[]]@(0..($fileSize - 1) | ForEach-Object { $fillByte })

# ファイルをバイナリモードで書き込みます
[System.IO.File]::WriteAllBytes($fileName, $fileContent)

Write-Host "ダミーファイルが作成されました。ファイル名: $fileName"

a-6v.mcu.ps1として上記をコピペ、必要ファイルがある場所に保存します。

rem raiga変換Bat

bcut default.xbe a-4b.3 0x330330 0x10000
bcut default.xbe b-7a.5 0x3CCED4 0x10000
bcut default.xbe b-1b 0x3DCED4 0x80000
bcut default.xbe b-4b 0x45CED4 0x80000
bcut default.xbe a-4a.4 0x310330 0x20000
BSwap d B default.xbe oddeven.txt odd even
bcut odd a-4s.2 0x1C0198 0x20000
bcut odd b-2m 0x26E76A 0x80000
bcut even a-3s.1 0x1C0198 0x20000
bcut even b-1m 0x26E76A 0x80000
powershell -NoProfile -ExecutionPolicy Unrestricted .\a-6v.mcu.ps1

del odd
del even
mkdir raiga
move *.1 raiga\
move *.2 raiga\
move *.3 raiga\
move *.4 raiga\
move *.5 raiga\
move b-*b raiga\
move b-*m raiga\
move a-6v.mcu raiga\
powershell compress-archive raiga/* raiga
bcut odd 1.3s 0x1A0198 0x20000
bcut even 2.4s 0x1A0198 0x20000

海外版との差分は2ファイルだけでした。

rem stratof & raiga変換bat
bcut default.xbe a-4b.3 0x330330 0x10000
bcut default.xbe b-7a.5 0x3CCED4 0x10000
bcut default.xbe b-1b 0x3DCED4 0x80000
bcut default.xbe b-4b 0x45CED4 0x80000
bcut default.xbe a-4a.4 0x310330 0x20000

BSwap d B default.xbe oddeven.txt odd even
bcut odd a-4s.2 0x1C0198 0x20000
bcut odd b-2m 0x26E76A 0x80000
bcut odd 2.4s 0x1A0198 0x20000

bcut even a-3s.1 0x1C0198 0x20000
bcut even b-1m 0x26E76A 0x80000
bcut even 1.3s 0x1A0198 0x20000
powershell -NoProfile -ExecutionPolicy Unrestricted .\a-6v.mcu.ps1

del odd
del even
mkdir stratof
copy *.3 stratof\
copy *.4 stratof\
copy *.5 stratof\
copy b-*m stratof\
copy b-*b stratof\
copy a-6v.mcu stratof\
move 1.3s stratof\
move 2.4s stratof\
powershell compress-archive stratof/* stratof

mkdir raiga
move *.1 raiga\
move *.2 raiga\
move *.3 raiga\
move *.4 raiga\
move *.5 raiga\
move b-*b raiga\
move b-*m raiga\
move a-6v.mcu raiga\
powershell compress-archive raiga/* raiga

こちらのバッチを使えば日本語版の雷牙(raiga.zip)と
英語版のSTRATO FIGHTER(stratof.zip)の両方を一気に抽出できます
non-merge setなのでmergeにしたい人は手動でお願いします。

海外版(STRATO FIGHTER)はそもそも探してもいません、まぁ追試時にでも;
方向転換できる珍しいSTGで序盤は難易度も低く、連付きなら遊びやすいタイトルです
ただし死亡時にその場復活&アイテム放出がないので詰むこともしばしば。

メタルユーキさんが関わっており
サンダークロスIIとSEなどが被ってたりするとか?

しめ

そんな感じで取り急ぎのROM抽出でした。
海外版を考慮すると追試を先にこなす必要があるかもですね。

続きはまとまった時間が取れたら行う予定なので
気長に待っていただけると幸いです。