1、大家都来学习 编译 mame32plus(原著:yang 改编:卡妙) 编译 mame32plus(原著:yang 改编:卡妙)编译 mame32plus(原著:yang 改编:卡妙)为了 MAME 的正常开发,请勿向外发布你的 mame32plus,谢谢!一、所需资源1、MinGW-GCC-3.2.2-0327.exe (4.76M) MAME32 Plus!主页:http:/ (549K) Mame 主页下载页:http:/ 源代码 (mame067s.zip) (6.59M) Mame 主页下载页:http:/ 4、mame32plus 源代码 (mame32plus-0.67-0417
2、-src.cab) (2.95M) MAME32 Plus!主页:http:/ mame32plus1、点击 MinGW-GCC-3.2.2-0327.exe 安装到“X:XMinGW”目录下(X=任意);2、解压 mingw-over.zip 到“X:XMinGW”目录覆盖相应文件;3、解压 Mame 源代码(mame067s.zip)到“X:XMinGW”目录;4、解压 mame32plus 源代码(mame32plus-0.67-0417-src.cab) 到“X:XMinGW”目录覆盖相应文件。三、编译 mame32plus开启一个 DOS 窗口,进入“X:XMinGW” ,先运行批处
3、理“ENV.bat” ,然后键入“make”开始编译普通版的 MAME32Plus(据 yang,大概要 20 多分钟,视机器性能而定。CII733+192 内存竟用了一个多小时) 。具体 DOS 命令:C:WINDOWScd X:XMinGWX:XMinGWenvX:XMinGWmake完成后生成三个文件,分别是:mame32p.exe、mamep.exe、mameplib.dll。(如果中途出错,一般情况再次键入“make”可接着往下编译。)其它版本的编绎,只要在“make“后面加入相应参数即可,如 I686 优化:make I686=1(注意大小写)I686 优化:make I686=1
4、athlon 优化:make ATHLON=1P4 优化:make P4=1注意:MAME 和 MAME32Plus 的主版本号要一致,如 mame 0.67 与 mame32plus 0.67.x 对应。编译好一个版本好后,如果接着编译其它 CPU 优化版本,并不需要删除 X:XMinGW下的 obj 目录,因为编译程序会在 obj 目录下新建一个对应的文件夹,保存新的数据。 (如接着编译多一个 I686 优化版,编译程序会在 obj 目录下新建一个 mameppp 的文件夹) 。四、编译语言包进入“X:XMinGWmakelang”目录,运行“cn.bat”得到简体中文语言包,繁体中文语言
5、运行“tw.bat”到这儿已编译好了 MAME32PLUS, 字体要去 MAME32 Plus!主页下载(下载页面http:/ 9X 还要下载一个 unicows.dll 的东东。 (从MAME32PLUS 官方版那边复制过来就是了_) 。大家觉不觉得 mameplib.dll 有十几兆,如果介意的话,用UPX(http:/ 3M 左右。打开主程序,是不是觉得游戏列表的字几乎看不清楚?改为黑色吧。五、添加游戏驱动注意:修改源代码前,请先备份相应的源代码文件。修改代码后再次编译时,不要删除 X:XMinGW下的 obj 目录,因为编译程序会识别那些源文件已被修改,然后只编译它们。如果你时间多得没
6、地方用,又不介意慢慢等的话,就删除除 X:XMinGW下的 obj 目录,重新开始编译所有源代码_。1、添加完全解密的 NEOGEO 游戏驱动(KOF2002 为例):其实里面已有 KOF2002、合金 4 等等的驱动,只是没打开而已,只要修改“X:XMinGWsrc”目录下的“driver.c”文件,将相应游戏前的“TESTDRIVER”改为“DRIVER” ,例如要打 KOF2002 的驱动,找到“TESTDRIVER( kof2002 ) /* 0265 (c) 2002 Eolith / Playmore Corporation */”更改为“DRIVER( kof2002 ) /*
7、0265 (c) 2002 Eolith / Playmore Corporation */”。只是这些驱动多数是加密版或直接从“C ROM”中读取“S1 ROM”版的,需要定义“DRIVER_INIT” ,看起来很是复杂_。a、改写游戏驱动用文本编辑器(如 UltraEdit 或 Windows 自带的写字板)打开“X:XMinGWsrcdrivers”目录下的“neogeo.c”文件,找一个较接近的游戏驱动,然后改一下。KOF98 驱动就是较接近的一个,找它所在位置,然后再制,再制到那儿好像都没有多大关系,建议再制到 KOF2002 系列的后面,方便找啊_。修改驱动代码与修改 Nebula
8、 的 ROMDATA 类似,具体如下:ROM_START( kof98 )ROM_START( kof2002nd ) ROM_REGION( 0x500000, REGION_CPU1, 0 )这儿不用改 ROM_LOAD16_WORD_SWAP( “242-p1.bin“, 0x000000, 0x100000, 0x61ac868a )ROM_LOAD16_WORD_SWAP( 265n-p1.rom, 0x000000, 0x 大小(1M 写 100000,类推), 0xCRC ) ROM_LOAD16_WORD_SWAP( “242-p2.bin“, 0x100000, 0x4000
9、00, 0x980aba4c )NEO_SFIX_128K( “242-s1.bin“, 0x7f7b4805 )NEO_BIOS_SOUND_256K( “242-m1.bin“, 0x4e7a6b1b )NEO_BIOS_SOUND_128K注意 M1 的大小,2K2 是 128K 的( “265-m1.rom“, 0xCRC ) ROM_REGION( 0x1000000, REGION_SOUND1, ROMREGION_SOUNDONLY )ROM_LOAD( “242-v1.bin“, 0x000000, 0x400000, 0xb9ea8051 )ROM_LOAD( “265-r
10、om“, 0x000000, 0x 大小, 0xCRC ) ROM_LOAD( “242-v2.bin“, 0x400000, 0x400000, 0xcc11106e )ROM_LOAD( “242-v3.bin“, 0x800000, 0x400000, 0x044ea4e1 )ROM_LOAD( “242-v4.bin“, 0xc00000, 0x400000, 0x7985ea30 )NO_DELTAT_REGIONROM_REGION( 0x4000000, REGION_GFX3, 0 )ROM_LOAD16_BYTE( “242-c1.bin“, 0x0000000, 0x800
11、000, 0xe564ecd6 ) /* Plane 0,1 */ ROM_LOAD16_BYTE( “265-c1.rom“, 0x0000000, 0x 大小, 0xCRC ) ROM_LOAD16_BYTE( “242-c2.bin“, 0x0000001, 0x800000, 0xbd959b60 ) /* Plane 2,3 */ ROM_LOAD16_BYTE( “242-c3.bin“, 0x1000000, 0x800000, 0x22127b4f ) /* Plane 0,1 */ ROM_LOAD16_BYTE( “242-c4.bin“, 0x1000001, 0x800
12、000, 0x0b4fa044 ) /* Plane 2,3 */ ROM_LOAD16_BYTE( “242-c5.bin“, 0x2000000, 0x800000, 0x9d10bed3 ) /* Plane 0,1 */ ROM_LOAD16_BYTE( “242-c6.bin“, 0x2000001, 0x800000, 0xda07b6a2 ) /* Plane 2,3 */ ROM_LOAD16_BYTE( “242-c7.bin“, 0x3000000, 0x800000, 0xf6d7a38a ) /* Plane 0,1 */ ROM_LOAD16_BYTE( “242-c
13、8.bin“, 0x3000001, 0x800000, 0xc823e045 ) /* Plane 2,3 */ ROM_END即改成:(注意 CRC,下面可能与你所拥有的不一样。 )ROM_START( kof2002nd )ROM_REGION( 0x500000, REGION_CPU1, 0 )ROM_LOAD16_WORD_SWAP( “265n-p1.rom“, 0x000000, 0x100000, 0x9ede7323 )ROM_LOAD16_WORD_SWAP( “265n-p2.rom“, 0x100000, 0x400000, 0x432fdf53 )NEO_SFIX_
14、128K( “265n-s1.rom“, 0xe0eaaba3 )NEO_BIOS_SOUND_128K( “265n-m1.rom“, 0xab9d360e )ROM_REGION( 0x1000000, REGION_SOUND1, ROMREGION_SOUNDONLY )ROM_LOAD( “265n-v1.rom“, 0x000000, 0x400000, 0x13d98607 )ROM_LOAD( “265n-v2.rom“, 0x400000, 0x400000, 0x9cf74677 )ROM_LOAD( “265n-v3.rom“, 0x800000, 0x400000, 0
15、x8e9448b5 )ROM_LOAD( “265n-v4.rom“, 0xc00000, 0x400000, 0x067271b5 )NO_DELTAT_REGIONROM_REGION( 0x4000000, REGION_GFX3, 0 )ROM_LOAD16_BYTE( “265n-c1.rom“, 0x0000000, 0x800000, 0x7efa6ef7 ) /* Plane 0,1 */ ROM_LOAD16_BYTE( “265n-c2.rom“, 0x0000001, 0x800000, 0xaa82948b ) /* Plane 2,3 */ ROM_LOAD16_BY
16、TE( “265n-c3.rom“, 0x1000000, 0x800000, 0x959fad0b ) /* Plane 0,1 */ ROM_LOAD16_BYTE( “265n-c4.rom“, 0x1000001, 0x800000, 0xefe6a468 ) /* Plane 2,3 */ ROM_LOAD16_BYTE( “265n-c5.rom“, 0x2000000, 0x800000, 0x74bba7c6 ) /* Plane 0,1 */ ROM_LOAD16_BYTE( “265n-c6.rom“, 0x2000001, 0x800000, 0xe20d2216 ) /
17、* Plane 2,3 */ ROM_LOAD16_BYTE( “265n-c7.rom“, 0x3000000, 0x800000, 0x8a5b561c ) /* Plane 0,1 */ ROM_LOAD16_BYTE( “265n-c8.rom“, 0x3000001, 0x800000, 0xbef667a3 ) /* Plane 2,3 */ ROM_ENDb、添加到列表一样再 KOF98 的,然后再制到后面,修改一下。具体如下:找到“GAME( 1998, kof98, neogeo, neogeo, neogeo, neogeo, ROT0, “SNK“, “The King
18、of Fighters 98 - The Slugfest / King of Fighters 98 - dream match never ends“ )”再制到“GAME( 2001, sengoku3, neogeo, neogeo, neogeo, sengoku3, ROT0, “SNK“, “Sengoku 3“ ) /* Encrypted GFX */”的后面。GAME( 1998, kof98, neogeo, neogeo, neogeo, neogeo, ROT0, “SNK“, “The King of Fighters 98 - The Slugfest / Kin
19、g of Fighters 98 - dream match never ends“ )GAME( 2002, 克隆 ROM 文件名 , ROM 文件名, neogeo, neogeo, neogeo, ROT0, “SNK“, “The King of Fighters 2002 (格斗之王 2002 完全解密版)“ )例如:GAME( 2002, kof2002nd, kof2002, neogeo, neogeo, neogeo, ROT0, “SNK“, “The King of Fighters 2002 (格斗之王 2002 完全解密版)“ )c、打开驱动打开“X:XMinGWsrc”目录下的“driver.c”文件,先将“TESTDRIVER( kof2002 )”改成“DRIVER( kof2002 )”,然后在下方加上“DRIVER( kof2002nd )”即可。(/*之间*/是注释,这个没有人不知道吧)就写到这儿,玩得开心点!姐姐好,我很好,只是好有点想你_卡妙 2003.5.15