打造你自己的 MAME 模拟器。

打造你自己的 MAME 模拟器。在这之前我们必须要准备好一些必备的东西1.wingw-gcc.exe点击下载2.wingwover.zip点击下载3.mame源代码mame081s.zip点击下载4.mame32plus源代码mame32plus-0.18-0423-src.cab点击下载首先安装wingw-gcc.exe,然后解压wingwover.zip,mame源代码,ma

打造你自己的 MAME 模拟器。在这之前我们必须要准备好一些必备的东西
1.wingw-gcc.exe

点击下载

2.wingwover.zip

点击下载

3.mame源代码mame081s.zip

点击下载

4.mame32plus源代码mame32plus-0.18-0423-src.cab

点击下载

首先安装wingw-gcc.exe,然后解压wingwover.zip,mame源代码,mame32plus源代码到相应的安装目录下,覆盖相应的文件。

开启一个DOS窗口,进入wingw-gcc.exe的安装目录,运行批处理“ENV.bat”,然后在运行“make”开始编译普通版的mame32plus(编译的时间要按自己机器的性能而定)。在编译的过程中如果出错,再次运行“make”一般能解决问题。完成后就会生成三个文件,分别是mamep.exe、mame32p.exe、mameplib.dll。

如果要编译其它的版本,在编译时,“make”后面必须要有参数,如I686优化:make I686=1
I686优化:make I686=1
P4优化:make P4=1
athlon优化:make athlon=1

在这里要注意的是,mame和mame32plus的版本一定要一致,也就是说mame 0.81与mame32plus 0.81.x相对应。编译好一个版本的mame后如果接着编译其它CPU优化版本的话,并不需要删除安装目录下的obj目录,因为因为编译程序会在obj目录下新建一个对应的文件夹,保存新的数据。(如接着编译多一个I686优化版,编译程序会在obj目录下新建一个mameppp的文件夹)。

然后进入安装目录下的“makelang”目录下,运行“cn.bat”得到简体中文语言包。

到这一步已经编译好了mame32plus了,字体要去mame32plus!的主页去下载,在这里给出简体中文的字体下载地址:
点击下载

如果系统是98的话,还需要下载一个unicows.dll的东西。还有如果大家觉得mameplib.dll有几十兆很大的话,你可以用upx等压缩软件对其进行压缩。

下面就开始添加游戏驱动

注意:修改源代码前,请先备份相应的源代码文件。修改代码后再次编译时,不要删除安装目录下的obj目录,因为编译程序会识别那些源文件已被修改,然后只编译它们。如果你时间多得没地方用,又不介意慢慢等的话,就删除安装目录下的obj目录,重新开始编译所有源代码^_^。

1、添加完全解密的NEOGEO游戏驱动(KOF2002为例):
其实里面已有KOF2002、合金4等等的驱动,只是没打开而已,只要修改安装目录下的src目录“driver.c”文件,将相应游戏前的“TESTDRIVER”改为“DRIVER”,例如要打KOF2002的驱动,找到“TESTDRIVER( kof2002 ) /* 0265 (c) 2002 Eolith / Playmore Corporation */”更改为“DRIVER( kof2002 ) /* 0265 (c) 2002 Eolith / Playmore Corporation */”。只是这些驱动多数是加密版或直接从“C ROM”中读取“S1 ROM”版的,需要定义“DRIVER_INIT”,看起来很是复杂

a、改写游戏驱动
用文本编辑器(如UltraEdit或Windows自带的写字板)打开安装目录下的src目录下drivers目录下的“neogeo.c”文件,找一个较接近的游戏驱动,然后改一下。KOF98驱动就是较接近的一个,找它所在位置,然后再制,再制到那儿好像都没有多大关系,建议再制到KOF2002系列的后面,方便找啊^_^。
修改驱动代码与修改Nebula的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, 0x400000, 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-rom”, 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_REGION

ROM_REGION( 0x4000000, REGION_GFX3, 0 )
ROM_LOAD16_BYTE( “242-c1.bin”, 0x0000000, 0x800000, 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, 0x800000, 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-c8.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_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, 0x8e9448b5 )
ROM_LOAD( “265n-v4.rom”, 0xc00000, 0x400000, 0x067271b5 )

NO_DELTAT_REGION

ROM_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_BYTE( “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 ) /* 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_END

b、添加到列表
一样再KOF98的,然后再制到后面,修改一下。具体如下:
找到“GAME( 1998, kof98, neogeo, neogeo, neogeo, neogeo, ROT0, “SNK”, “The King 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 / King 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、打开驱动
打开安装目录下的src目录下的“driver.c”文件,先将“TESTDRIVER( kof2002 )”改成“DRIVER( kof2002 )”,然后在下方加上“DRIVER( kof2002nd )”即可。(/*之间*/是注释,这个没有人不知道吧)

最后重新再编译一次,你就能拥有你自己的mame32plus模拟器拉,怎么样?高兴吧:)

原著:yong 改编:FinalFantasy 今天的文章打造你自己的 MAME 模拟器。分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/30271.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注