非対応ROMを追加するテスト

日常FinalBurnNEO,エミュレーター

FBNMODのドライバ追記

既存ROMとは別なので、未所持になってしまう物を追加してみました
Windowsバイナリで配布しますが、自分でドライバーファイルに差分をコピペすれば
libretro superでAndroidや中華機用のコアもビルドできます。

バイナリ

上記からダウンロードしてください
残念ながら頻繁にUIを弄られることが原因で
日本語翻訳がバグってしまうので、現在のUIは日本語化非対応です。

もしかすると、しげるさんが公開してるかもしれません。
なおROMリストは日本語化できますのでよしなに。

追記)動作確認をろくにしてませんが、libretroコア x64版 を試験的に追加しました
ROMのCRCをすべて無視する仕様になっているのでうっかりするとすぐクラッシュします。
ドライバーを丸ごと置き換えているので不具合が出る可能性もあります。
自己責任でお使いください。

(libretro版は追加ROMSETのnemesispや3aoはlibretro個別調整する場所があるようなのですが
どうやっても現状ダメなので既存ROM(nemesis/gradius3a)で読み込ませて遊んでください)

北米プロトタイプ版

d_nemesis.cppへ追記

// Nemesis (North America Prototype Version) GRADIUS ORIGINS Hack

static struct BurnRomInfo nemesispRomDesc[] = {
	{ "456-p01.12a",	0x08000, 0x08658e98, 1 | BRF_PRG | BRF_ESS }, //  0 m68000 Code
	{ "456-p05.12c",	0x08000, 0xfc1fb312, 1 | BRF_PRG | BRF_ESS }, //  1
	{ "456-p02.13a",	0x08000, 0xcce0d72e, 1 | BRF_PRG | BRF_ESS }, //  2
	{ "456-p06.13c",	0x08000, 0x68a66c94, 1 | BRF_PRG | BRF_ESS }, //  3
	{ "456-p03.14a",	0x08000, 0x8cefb25f, 1 | BRF_PRG | BRF_ESS }, //  4
	{ "456-p07.14c",	0x08000, 0xd50b82cb, 1 | BRF_PRG | BRF_ESS }, //  5
	{ "456-p04.15a",	0x08000, 0x112f4a28, 1 | BRF_PRG | BRF_ESS }, //  6
	{ "456-p08.15c",	0x08000, 0x29481497, 1 | BRF_PRG | BRF_ESS }, //  7

	{ "456-p09.9c",		0x04000, 0x26bf9636, 2 | BRF_PRG | BRF_ESS }, //  8 Z80 Code

	{ "400-a01.fse",	0x00100, 0x5827b1e8, 3 | BRF_SND },           //  9 K005289 Samples
	{ "400-a02.fse",	0x00100, 0x2f44f970, 3 | BRF_SND },           // 10
};

STD_ROM_PICK(nemesisp)
STD_ROM_FN(nemesisp)

struct BurnDriver BurnDrvNemesisp = {
	"nemesisp", NULL, NULL, NULL, "1985",
	"Nemesis (North America Prototype Version) GRADIUS ORIGINS Hack\0", NULL, "Konami", "GX400",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_CLONE | BDF_HACK | BDF_HISCORE_SUPPORTED, 2, HARDWARE_KONAMI_68K_Z80, GBF_HORSHOOT, 0,
	NULL, nemesispRompInfo, nemesispRomName, NULL, NULL, NULL, NULL, NemesisInputInfo, NemesisDIPInfo,
	NemesisInit, DrvExit, NemesisFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
	256, 224, 4, 3
};

456-d0x.xxxを456-p0x.xxxに変更 (Prototypeのp)
不足ファイルはAACC抽出分から持ってくる。(要旧Depotまたは海外版)
nemesisp.zipとして保存する。

抽出そのものは前々回の記事のコメント欄を参照してください。
発売日が近い事、某STGで騒ぎになったこと
自分の多忙と脳みそぽんこつ化により、まとめは遅くなります(お察しください

アジア版 Originバージョン

d_gradius3.cppに追記

// Gradius III (Asia) GRADIUS ORIGINS Hack

static struct BurnRomInfo grdius3aoRomDesc[] = {
	{ "945_13o.f15",		0x20000, 0x58daefba, 1 | BRF_PRG | BRF_ESS }, //  0 68k #0 Code
	{ "945_12o.e15",		0x20000, 0x066da640, 1 | BRF_PRG | BRF_ESS }, //  1

	{ "945_m09.r17",	0x20000, 0xb4a6df25, 2 | BRF_PRG | BRF_ESS }, //  2 68k #1 Code
	{ "945_m08.n17",	0x20000, 0x74e981d2, 2 | BRF_PRG | BRF_ESS }, //  3
	{ "945_l06b.r11",	0x20000, 0x83772304, 2 | BRF_PRG | BRF_ESS }, //  4
	{ "945_l06a.n11",	0x20000, 0xe1fd75b6, 2 | BRF_PRG | BRF_ESS }, //  5
	{ "945_l07c.r15",	0x20000, 0xc1e399b6, 2 | BRF_PRG | BRF_ESS }, //  6
	{ "945_l07a.n15",	0x20000, 0x96222d04, 2 | BRF_PRG | BRF_ESS }, //  7
	{ "945_l07d.r13",	0x20000, 0x4c16d4bd, 2 | BRF_PRG | BRF_ESS }, //  8
	{ "945_l07b.n13",	0x20000, 0x5e209d01, 2 | BRF_PRG | BRF_ESS }, //  9

	{ "945_m05.d9",		0x10000, 0xc8c45365, 3 | BRF_PRG | BRF_ESS }, // 10 Z80 Code

	{ "945_a02.l3",		0x80000, 0x4dfffd74, 4 | BRF_GRA },           // 11 Sprites
	{ "945_a01.h3",		0x80000, 0x339d6dd2, 4 | BRF_GRA },           // 12
	{ "945_l04a.k6",	0x20000, 0x884e21ee, 4 | BRF_GRA },           // 13
	{ "945_l04c.m6",	0x20000, 0x45bcd921, 4 | BRF_GRA },           // 14
	{ "945_l03a.e6",	0x20000, 0xa67ef087, 4 | BRF_GRA },           // 15
	{ "945_l03c.h6",	0x20000, 0xa56be17a, 4 | BRF_GRA },           // 16
	{ "945_l04b.k8",	0x20000, 0x843bc67d, 4 | BRF_GRA },           // 17
	{ "945_l04d.m8",	0x20000, 0x0a98d08e, 4 | BRF_GRA },           // 18
	{ "945_l03b.e8",	0x20000, 0x933e68b9, 4 | BRF_GRA },           // 19
	{ "945_l03d.h8",	0x20000, 0xf375e87b, 4 | BRF_GRA },           // 20

	{ "945_a10.b15",	0x40000, 0x1d083e10, 5 | BRF_SND },           // 21 K007232
	{ "945_l11a.c18",	0x20000, 0x6043f4eb, 5 | BRF_SND },           // 22
	{ "945_l11b.c20",	0x20000, 0x89ea3baf, 5 | BRF_SND },           // 23

	{ "945l14.j28",		0x00100, 0xc778c189, 6 | BRF_OPT },           // 24 Prom
};

STD_ROM_PICK(grdius3ao)
STD_ROM_FN(grdius3ao)

struct BurnDriver BurnDrvGrdius3ao = {
	"gradius3ao", "gradius3", NULL, NULL, "1989",
	"Gradius III (Asia)\0", NULL, "Konami", "GX945",
	L"Gradius III \u4F1D\u8AAC\u304B\u3089\u795E\u8A71\u3078 (Asia)GRADIUS ORIGINS Hack\0", NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_CLONE | BDF_HACK | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_HORSHOOT, 0,
	NULL, grdius3aoRomInfo, grdius3aoRomName, NULL, NULL, NULL, NULL, Gradius3InputInfo, Gradius3DIPInfo,
	DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
	320, 224, 4, 3
};

ミスの仕方がポンコツ過ぎて、自分で思った以上にやられてるなと実感しました;

gradius3ao.zipで問題なく起動できました。
現在はバイナリも修正版にさし変わりました。

その他のあれこれ

沙羅曼蛇系は音源が見つからないので再録している可能性があります。
さらにパワーアップカプセル版は音周りがおかしいので、何か改変されている可能性があります。


ACACから沙羅曼蛇を全バージョンを抽出して、賞品SPクローン版を遊ぶのが無難かなと思います。


AMショー版は音声周りが明らかにおかしいのですが
恐らく当該ファイルを見つけるには
デバッガー等で実行中に音声として読み込むアドレスを探す必要があります
AM版独自の音源なので、既存ダンプのCRCからアタリを付ける方法が使えません。

しめ

久々にやったのと、まとまって時間が取れないのでポカばかりしてgithubがひどいログに。
しかし本当にアジア版は意味不明なので、どうなってんすかねえ?

理由は私がポンコツだからでした。アイス(隠語ではない)食ったらしゃっきりして元気になりました!

日常

Posted by あんこ