Only my railgun / FripSide

ROM抽出,エミュレーター,日常FinalBurnNEO,MAME,Xain'd sleena,エミュレーター,ネタ

元ネタ

この曲、放送後もちょいちょい耳にする機会が多いんで
普遍的に好まれてるのかなとカラオケ人気もありそう。
禁書目録シリーズは長すぎて、もうわけがわからんのですが。

Xain’d sleenaのROM抽出

必要な物

自己責任という言葉の意味を理解できる事
すべては無保証および免責にて提供されます。
今回ファイルが大量なのでミスがあるかもしれません
コメントを頂ければ確認して修正しますので遠慮なくどうぞ。

スクラップAさんのライブラリからダウンロードが必要です。


上記からbcutをダウンロードしてください。


CRC書き換えが必要な人はこちらをダウンロードして実行するか
オリジナル版の任意バージョンをご利用ください。

BINWALKの導入

WSL(ubuntu/debian)なら下記で2.7がインストール可能です

sudo apt install binwalk

3.0系は大幅な書き直しがされたので、RUSTのcargoから導入になります
rustをインストールした後に下記コマンドを実行します。

cargo install binwalk

他にMSYS2でもver2系を導入可能です。

pacman -S mingw-w64-x86_64-python-binwalk

抽出方法

binwalk -e GameXaindsleena_skn2024_windows_x64_Release.dll

binwalkで解凍後、解凍されたフォルダーに移動します。
bcutはそちらのフォルダーにコピーしてください。

MAME用のメモ

MAMEではpt-0.ic59が必要になりますが
ROMを実際には読み込んでいないので、ダミーファイルで問題ありません。

# dummy256_pt-0.ic59.ps1
## パラメータの設定
param (
    [string]$fileName = "pt-0.ic59", # ファイル名 
    [int]$fileSize = 256, # ファイルサイズ(バイト単位)
    [string]$fillValue = "ff" # 埋める値(FFまたは00)
)

# 埋める値をバイト配列に変換
$byteValue = [byte]::Parse($fillValue, [System.Globalization.NumberStyles]::HexNumber)

# 指定したサイズのバイト配列を作成
$bytes = New-Object byte[] $fileSize

# バイト配列を指定した値で埋める
for ($i = 0; $i -lt $fileSize; $i++) {
    $bytes[$i] = $byteValue
}

# バイト配列をファイルに書き込む
[System.IO.File]::WriteAllBytes($fileName, $bytes)
#ここまでをメモ帳にコピペ保存、ファイル名をdummy256_pt-0.ic59.ps1として保存
#batでうまく動かない場合は、ファイル右クリックからpowershellで実行すればOk

CRC書き換え(SHA1でエラーは出ます、必要に応じて)

#CRC修正をする場合 CRC FIX
forcecrc32 pt-0.ic59 252 fed32888

#またはバイナリファイル末尾4バイトを
#バイナリエディタで3E 77 28 BCに書き換えましょう。

m68705p5のススメ

#MAMEではbootstrap.binはm68705p5.zipとして認識されます。
#ROM内に同梱してもよいですが、同様のゲームのためにm68705p5.zipとして
# 単体ZIPでROMフォルダーに保存すると後が楽です。

ROM_START( m68705p5 )
	ROM_REGION(0x0073, "bootstrap", 0)
	ROM_LOAD("bootstrap.bin", 0x0000, 0x0073, CRC(f70a8620) SHA1(c154f78c23f10bb903a531cb19e99121d5f7c19c))

共通ファイル

bcut 34F40 bootstrap.bin 0x58785 0x73
bcut 34F40 p1-0.ic29 0x30000 0x8000
bcut 34F40 p0-0.ic15 0x38000 0x8000
bcut 34F40 p2-0.ic49 0x50000 0x8000
bcut 34F40 pz-0.113  0x58000 0x800
bcut 34F40 pb-0.ic24 0x58800 0x8000
bcut 34F40 pk-0.ic136 0x60800 0x8000
bcut 34F40 pl-0.ic135 0x68800 0x8000
bcut 34F40 pm-0.ic134 0x70800 0x8000
bcut 34F40 pn-0.ic133 0x78800 0x8000
bcut 34F40 pc-0.ic114 0x80800 0x8000
bcut 34F40 pd-0.ic113 0x88800 0x8000
bcut 34F40 pe-0.ic112 0x90800 0x8000
bcut 34F40 pf-0.ic111 0x98800 0x8000
bcut 34F40 p5-0.ic44 0xE0800 0x8000
bcut 34F40 p4-0.ic45 0xE8800 0x8000
bcut 34F40 p3-0.ic46 0xF0800 0x8000
bcut 34F40 p6-0.ic43 0x2E0800 0x8000
bcut 34F40 p7-0.ic42 0x2E8800 0x8000
bcut 34F40 p8-0.ic41 0x2F0800 0x8000
bcut 34F40 po-0.ic131 0x4E0800 0x8000
bcut 34F40 pp-0.ic130 0x4E8800 0x8000
bcut 34F40 pq-0.ic129 0x4F0800 0x8000
bcut 34F40 pr-0.ic128 0x4F8800 0x8000
bcut 34F40 pg-0.ic109 0x500800 0x8000
bcut 34F40 ph-0.ic108 0x508800 0x8000
bcut 34F40 pi-0.ic107 0x510800 0x8000
bcut 34F40 pj-0.ic106 0x518800 0x8000

日本版

bcut 34F40 p9-01.ic66 0x10000 0x8000
bcut 34F40 pa-0.ic65 0x18000 0x8000

世界版

bcut 34F40 p9-08.ic66 0 0x8000
bcut 34F40 pa-09.ic65 0x8000 0x8000

FBNeo
共通ファイル+日本版=xsleenaj.zip
共通ファイル+世界版=xsleena.zip
上記の組み合わせで保存すればOK

MAME
追加でダミーのpt-0.ic59も一緒に保存する事
bootstrap.binをm68705p5.zipとしても保存を推奨します。

動作確認

Arcadeでの検証


日本版はTechnosJapanのロゴ入りになります。

FBNeoでの確認


世界版はTaito流通になっていたようです。
TechnosJapanのロゴは消えています、差はこれくらい?

しめ

レールだけにレールガン(寒

今回、ファイルがかなり多くて動作確認はできていますが
記事化時に抜けやミスがある可能性があるので注意してください。
まぁ容量が少ない時代なんで仕方ないんですが。

海外分はTAITO扱いだったりするのが興味深いですね
開発会社がTechnosJapanなんで、親ROMは日本版だよね?って思うんですけどね。

ゴールデンウィークも終わりましたので
後はのんびりやろうと思います。