ジェネシス・メガドライブ ミニ2のnand抽出 pt2

ROM抽出,エミュレーター

更新情報

Windowsのみでnand.binから必要ファイルの抽出が可能です
以下はせっかく調べたのを、消すのも悔しいので残しておきます・・・

nandイメージマウント&抽出編

パート1はこちらから。

用意する物

WSL2またはVMWARE等で動く仮想LINUX環境
確認はVMWARE17&Ubuntu 20.04.4 LTSで行いました。
作業もそちらの流れで行います。

m2-unpacker

nandから抽出したファイルを解凍するために使います。

nand.binをマウントする

nand.binを共有した上でWSL2/VMAREからマウントします。
WSL2の場合はmnt/配下にWindowsドライブがずらずらあるので
nand.binの保存先を指定すればOKのはずです。(未検証)

VMWAREで環境構築しても
Windowsとのファイル共有が行えない人は下記を参照してください

マウントできない!

情報元ではguestmount使えって言われるんですが
何をどうやっても怒られてマウントできませんでした

sudo apt install libguestfs-tools
guestmount -a /path/to/nand.bin -m /dev/sda7 --ro /path/to/mount

たぶんext4指定すればいけるのかもしれないけど
めっちゃイライラして触るの辞めました。ドキュメントがわかりにくい!!(短気

仕方なくkpartxで

nand.binをパーティーションの自動認識してもらい
ループバックデバイスとしてマウントした所、成功しました

$ sudo apt-get install kpartx

kpartxをインストールします

$ sudo kpartx -av nand.bin
$ sudo kpartx -av /path/to/nand.bin 

kpartxを実行すると下記のようになりました

ubuntu:~$ sudo kpartx -av nand.bin

device-mapper: reload ioctl on loop12p1  failed: Invalid argument
create/reload failed on loop12p1
add map loop12p2 (253:0): 0 5120 linear 7:12 73728
add map loop12p3 (253:1): 0 2 linear 7:12 1
add map loop12p5 (253:2): 0 4096 linear 7:12 78848
add map loop12p6 (253:3): 0 16384 linear 7:12 82944
add map loop12p7 (253:4): 0 12582912 linear 7:12 99328
add map loop12p8 (253:5): 0 819200 linear 7:12 12682240
add map loop12p9 (253:6): 0 4096 linear 7:12 13501440
$ ls /dev/mapper/
control  loop12p2  loop12p3  loop12p5  loop12p6  loop12p7  loop12p8  loop12p9
ubuntu:~$ sudo mount -t ext4 /dev/mapper/loop12p7 /mnt/nand
ubuntu:~$ sudo mount -t ext4 /dev/mapper/loop12p7(環境により変動) /path/to/mount

デバイスマッパーを確認、一番容量の大きいloop12p7をマウントします。
環境によってloop(ほにゃらら)は変動しますから
数字の一番大きい(12582912)ものをマウントします。

これで、/mnt/nandにGenesisMini2のnandがマウントされました。

/mnt/nandは事前に作りました。マウント先なのですが、任意の名前でOkです。

sudo mkdir /mnt/nand

または

sudo mkdir /mnt/ほにゃらら(任意)

WSL2でも実行可能かと思いますが未検証です。

コピーと解凍

マウントされたフォルダーのusr/gameの中にある
alldata.binとalldata.psb.mとm2engageを
m2-unpackerを解凍したフォルダー(Windowsホスト)にコピーします

Windows側でalldata.binをm2-unpacker.exeにドラッグ・アンド・ドロップすると

Extracting 031/config/mode_logo.psb.m
Extracting 031/config/mode_staff.psb.m
Extracting 031/config/mode_staff_text.psb.m
Extracting 031/config/mode_title.psb.m
Extracting 031/config/title_menu_string.psb.m
Extracting 031/config/title_mode_top.psb.m
Extracting 031/config/title_prof.psb.m
Extracting 031/config/title_prof_specdepend.psb.m
Extracting 031/config/title_savedata_string.psb.m
Extracting 031/config/title_session.psb.m
Extracting 031/config/title_setting_game.psb.m
Extracting 031/image/shutdown.psb.m
Extracting 031/motion/bg01.psb.m

だばーっと文字が流れまくって解凍されていきます。

Decompressing X:\mini2dump\m2-unpacker\Unpacked alldata.bin\system\script\systemdata_window_info.nut.m
Decompressing X:\mini2dump\m2-unpacker\Unpacked alldata.bin\system\script\systemdata_work_medal.nut.m
Decompressing X:\mini2dump\m2-unpacker\Unpacked alldata.bin\system\script\systemdata_work_trial.nut.m
Decompressing X:\mini2dump\m2-unpacker\Unpacked alldata.bin\system\script\system_dialog.nut.m
Decompressing X:\mini2dump\m2-unpacker\Unpacked alldata.bin\system\script\utils.nut.m
Decompressing X:\mini2dump\m2-unpacker\Unpacked alldata.bin\system\script\wallpaper.nut.m
Decompressing X:\mini2dump\m2-unpacker\Unpacked alldata.bin\system\script\wallpaperBG.nut.m
Decompressing X:\mini2dump\m2-unpacker\Unpacked alldata.bin\system\script\wipe.nut.m

done!

done!が出るまで待てば終わりです。
m2-unpacker配下の\Unpacked alldata.bin\system\romsに保存されています。

抽出ファイルについて

binファイル 一般的なメガドライブエミュレーターが認識します。
smp/smdファイル m2が独自拡張したメガドライブ用ファイルで現在はプレイ不可能です。
mcdファイル メガCDのファイルですが独自圧縮されています。

三輪サンちゃん、スーパーロコモティブ等々は全て現状ではプレイできません
mcdファイルの解凍方法は未公開ですがTwitterで確認はされています

情報元 source

検証

今でもこのゲームのBGMは名曲だと思います。

良く収録できたよね・・・

わりと移植度高め。

ミニ初代のように楽ちんツールでサクサクとは行きませんが、抽出は可能ということで。