雑記扱い PS2 グラディウスIIIの抽出未満の話

日常

PS2 グラディウスIIIの抽出実験

さざなみ壊変さんのミカドイベントPDFを見まして(最上段です)
PS2版はアーケードのエミュ移植かつ、独自にバグ修正したものなんだなと
イベントだとアーケードとPS2のハイブリッドに
さらなる独自のバグ取り(!?)をして動かした基板のようです。
お手製海賊版ってコナミが法的にぶちぎれません?

ディスクのファイル構造を眺めてたのですが
怪しいBINファイルがあるものの
どうにもならなさそうなので不得手なメモリダンプをしてみました。
ただ、解析時点で音声ファイルが別になっているので
グラIIIもグラ4も完全抽出はムリそうかな?とは。

PCSX2でゲーム起動→グラディウスIIIを選んで起動
ステートセーブ→ファイルに保存で”foobar.p2s”が出来上がります
.p2sはZIP書庫なのでアーカイバで開いて、eeMemory.binを解析していきます。

ODD/EVEN
BSwap.exe d B eeMemory.bin oddeven.txt eeMemory.odd eeMemory.even

ODD
bcut eeMemory.odd 945_r13.f15 0x880000 0x20000
bcut eeMemory.odd 945_m09.r17 0x900000 0x20000
bcut eeMemory.odd 945_l06b.r11 0x920000 0x20000 // crc no match
bcut eeMemory.odd 945_l07c.r15 0x940000 0x20000 // crc no match
bcut eeMemory.odd 945_l07d.r13 0x960000 0x20000

EVEN
bcut eeMemory.even 945_r12.e15 0x880000 0x20000
bcut eeMemory.even 945_m08.n17 0x900000 0x20000
bcut eeMemory.even 945_l06a.n11 0x920000 0x20000 // crc no match
bcut eeMemory.even 945_l07a.n15 0x940000 0x20000 // crc no match
bcut eeMemory.even 945_l07b.n13 0x960000 0x20000

ROM_LOAD32_WORD
BSwap.exe d B eeMemory.bin ROM_LOAD32_WORD.txt LOAD32_WORD00.tmp LOAD32_WORD02.tmp

rem crc no match
bcut LOAD32_WORD00.tmp 945_a01.h3 0xA00000 0x80000 // crc no match
bcut LOAD32_WORD02.tmp 945_a02.l3 0xA00000 0x80000 // crc no match

ROM_LOAD32_BYTE
BSwap.exe d B eeMemory.bin ROM_LOAD32_BYTE.txt 0.tmp 1.tmp 2.tmp 3.tmp
bcut 0.tmp 945_l03a.e6 0x540000 0x20000
bcut 0.tmp 945_l03b.e8 0x560000 0x20000
bcut 1.tmp 945_l03c.h6 0x540000 0x20000
bcut 1.tmp 945_l03d.h8 0x560000 0x20000
bcut 2.tmp 945_l04a.k6 0x540000 0x20000
bcut 2.tmp 945_l04b.k8 0x560000 0x20000
bcut 3.tmp 945_l04c.m6 0x540000 0x20000
bcut 3.tmp 945_l04d.m8 0x560000 0x20000

ROM_LOAD32_BYTE で悩む

関連ポスト

#define ROM_LOAD32_BYTE(name,offset,length,hash)    ROMX_LOAD(name, offset, length, hash, ROM_SKIP(3))

つまりRomskip(3)なので01230123って事かな!
ROM_LOAD32_BYTE.txt の中身はこんな感じになるかなと

8
0	0
1	1
2	2
3	3
4	0
5	1
6	2
7	3

これで大丈夫でした。

4
0	0
1	1
2	2
3	3

たぶん上記でも同じことになると思います。

見つからない物

missing
ROM_LOAD( "945_a10.b15",  0x00000, 0x40000, CRC(1d083e10) SHA1(b116f133a7647ef7a6c373aff00e9622d9954b61) )
ROM_LOAD( "945_l11a.c18", 0x40000, 0x20000, CRC(6043f4eb) SHA1(1c2e9ace1cfdde504b7b6158e3c3f54dc5ae33d4) )
ROM_LOAD( "945_l11b.c20", 0x60000, 0x20000, CRC(89ea3baf) SHA1(8edcbaa7969185cfac48c02559826d1b8b081f3f) )
ROM_LOAD( "945_r05.d9", 0x00000, 0x10000, CRC(c8c45365) SHA1(b9a7b736b52bca42c7b8c8ed64c8df73e0116158) )/* Same as 945 M05, but different label */
ROM_LOAD( "945l14.j28", 0x0000, 0x0100, CRC(c778c189) SHA1(847eaf379ba075c25911c6f83dd63ff390534f60) )  /* priority encoder (not used) */

945l14.j28は未使用でFBNeoではoptional扱いでした。
その他見つからないのは、サウンド系のROMで
k007232のサンプルファイルとAudioCPUが見つかりません
これらはDisc内に別ファイルが散見されるので、ダメな感じです。

さらにむりくり起動しても
n11とr11でROMチェックのBADが出ます。



チートでROMチェックをスキップさせないと遊べませんし
そもそもそれ以前にいろいろ問題があってダメダメでした!

結論



むり!
それこそ基板を所有していて
キメラな海賊版を作るなら話は別ですが
単体で遊ぶのは問題ありすぎます;

やはりPS2時代あるあるな音源差し替えが壁になりました
元々グラディウス系は音源差し替えだらけで困ってますが;
分かっていたことですが、まぁそれもまた経験値稼ぎということで。

という感じで、後は語れませんが
単体移植との組み合わせキメラで動く可能性があるといいね?かなと
やはりPS2時代はエミュレーター動作でも完全抽出は難しい感じですね。

日常

Posted by Richard Roe