FinalBurnAlpha中NEO-GEO游戏驱动程序的编写
作者:胡颖卓
二年前我写了《FinalBurn Alpha中CPS-2游戏驱动程序的编写》一文,现由于模拟器界的三年原则惯例,所以很久都没有新的CPS-2游戏XOR表出现了。而现今由于SNK的复活,NEO-GEO游戏又慢慢的多了几个出来,所以我特地再为大家撰写这篇文章。
在FinalBurn Alpha中,NEO-GEO驱动相比CPS-2驱动写起来较为简易,下面我以SNK PLAYMORE的大作《侍魂 零》为例,告诉各位如何编写它的驱动程序。
打开src\burn\neogeo\d_neogeo.cpp文件。
首先是书写游戏的ROM描述表:
static struct BurnRomInfo samsho5RomDesc[] =
{
// 文件名 长度 CRC校验码 类型
{"270-p1.bin", 0x800000, 0x611A6687, 0x10}, // 0 68K 代码
{"270-s1.bin", 0x020000, 0x33227D62, 1}, // 1 文字层图片数据
{"270-c1.bin", 0x800000, 0x4E7BDEA1, 1}, // 2 图片数据
{"270-c2.bin", 0x800000, 0x7B444985, 1}, // 3
{"270-c3.bin", 0x800000, 0x8C709A9B, 1}, // 4
{"270-c4.bin", 0x800000, 0xCFD53F5C, 1}, // 5
{"270-c5.bin", 0x800000, 0xC026D318, 1}, // 6
{"270-c6.bin", 0x800000, 0xB3D9D204, 1}, // 7
{"270-c7.bin", 0x800000, 0xFE03A025, 1}, // 8
{"270-c8.bin", 0x800000, 0x89DB2D34, 1}, // 9
{"270-m1.bin", 0x020000, 0x18114FB1, 0x10}, // 10 Z80 代码
{"270-v1.bin", 0x400000, 0x6849136C, 2}, // 11 声音数据
{"270-v2.bin", 0x400000, 0x222E1774, 2}, // 12
{"270-v3.bin", 0x400000, 0xCD9E7ADC, 2}, // 13
{"270-v4.bin", 0x400000, 0x8B305CAC, 2}, // 14
};
接下来是驱动的描述:
STDROMPICKEXT(samsho5, samsho5, neogeo);
STD_ROM_FN(samsho5);
struct BurnDriver BurnDrvSamSho5 =
{
{
"samsho5", //ROM文件名称
"Samurai Shodown V", //游戏名称
"", //其它信息
"SNK Playmore", //游戏开发商
"Neo Geo", //游戏机型说明
"2003", //游戏发行年代
NULL, //游戏主ROM名称
"neogeo" //游戏BIOS
},
BDF_GAME_WORKING,
2, //游戏人数
HARDWARE_SNK_NEOGEO | HARDWARE_SNK_SWAPP | HARDWARE_SNK_SWAPC | HARDWARE_SNK_SRAM,
NULL,
samsho5RomInfo, //ROM信息
samsho5RomName, //ROM名称
neogeoInputInfo,
neogeoDIPInfo,
NeoInit,
NeoExit,
NeoFrame,
NeoRender,
NeoScan,
&NeoRecalcPalette,
nNeoScreenWidth,
224,
4,3
};
最后我们只需要在src\generated\driverlist.h中加入相应的项就可以了,祝大家玩的愉快!