FinalBurnAlpha中NEO-GEO游戏驱动程序的编写

2009年11月5日 由 admin 留言 »

作者:胡颖卓


二年前我写了《FinalBurn AlphaCPS-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中加入相应的项就可以了,祝大家玩的愉快!


广告位

发表回复

你必须 登陆 方可发表评论.
鄂ICP备09027626号