mvs基板,家用机模式叫aes,也就是有名的neogeo,也是唯一的是通过bios就可以切换家用机和街机的基板。(这个基本上可以认为snk比较懒)
mame模拟器本来就不是专门用来玩游戏的,而是mame小组为了保存游戏所做的努力,所以一切都是符合真实硬件环境的,当然也就不可能轻易进入家用机模式。
但是有没有办法呢?当然有。
一般来说,有两种办法。两种都需要修改source
一个是打开mame内部的dip switch开关,这种方法网上有好多文章,有兴趣的话,可以google一下。
但是实际上,这篇文章写的是mame的旧版本,新版的neogeo.c里已经没有这个注释掉的dip_switch了。
关于这个就不详细介绍了。
第二个就是使用其他bios。
从mame 0.69版开始,支持mvs的 -bios 参数。参数的意义可以在源代码中找到。
代码: 全选
SYSTEM_BIOS_ADD( 0, "euro", "Europe MVS (Ver. 2)" )
SYSTEM_BIOS_ADD( 1, "euro-s1", "Europe MVS (Ver. 1)" )
SYSTEM_BIOS_ADD( 2, "us", "US MVS (Ver. 2?)" )
SYSTEM_BIOS_ADD( 3, "us-e", "US MVS (Ver. 1)" )
SYSTEM_BIOS_ADD( 4, "asia", "Asia MVS (Ver. 3)" )
SYSTEM_BIOS_ADD( 5, "japan", "Japan MVS (Ver. 3)" )
SYSTEM_BIOS_ADD( 6, "japan-s2", "Japan MVS (Ver. 2)" )
SYSTEM_BIOS_ADD( 7, "japan-s1", "Japan MVS (Ver. 1)" )
我们要做的就是打开其他bios的支持。
由于mame的源代码也一直有修改,所以以xmame的最后版本0.106做为说明
代码: 全选
/****
These are the known Bios Roms, Set options.bios to the one you want
****/
SYSTEM_BIOS_START( neogeo )
SYSTEM_BIOS_ADD( 0, "euro", "Europe MVS (Ver. 2)" )
SYSTEM_BIOS_ADD( 1, "euro-s1", "Europe MVS (Ver. 1)" )
SYSTEM_BIOS_ADD( 2, "us", "US MVS (Ver. 2?)" )
SYSTEM_BIOS_ADD( 3, "us-e", "US MVS (Ver. 1)" )
SYSTEM_BIOS_ADD( 4, "asia", "Asia MVS (Ver. 3)" )
SYSTEM_BIOS_ADD( 5, "japan", "Japan MVS (Ver. 3)" )
SYSTEM_BIOS_ADD( 6, "japan-s2", "Japan MVS (Ver. 2)" )
SYSTEM_BIOS_ADD( 7, "japan-s1", "Japan MVS (Ver. 1)" )
/* SYSTEM_BIOS_ADD( 8, "uni-bios.10","Unibios MVS (Hack, Ver. 1.0)" ) */
/* SYSTEM_BIOS_ADD( 9, "uni-bios.11","Unibios MVS (Hack, Ver. 1.1)" ) */
/* SYSTEM_BIOS_ADD(10, "debug", "Debug MVS (Hack?)" ) */
/* SYSTEM_BIOS_ADD(11, "asia-aes", "Asia AES" ) */
SYSTEM_BIOS_END
#define ROM_LOAD16_WORD_SWAP_BIOS(bios,name,offset,length,hash) \
ROMX_LOAD(name, offset, length, hash, ROM_GROUPWORD | ROM_REVERSE | ROM_BIOS(bios+1)) /* Note '+1' */
#define NEOGEO_BIOS \
ROM_LOAD16_WORD_SWAP_BIOS( 0, "sp-s2.sp1", 0x00000, 0x020000, CRC(9036d879) SHA1(4f5ed7105b7128794654ce82b51723e16e389543) ) /* Europe, 1 Slot, has also been found on a 4 Slot (the old hacks were designed for this one) */ \
ROM_LOAD16_WORD_SWAP_BIOS( 1, "sp-s.sp1", 0x00000, 0x020000, CRC(c7f2fa45) SHA1(09576ff20b4d6b365e78e6a5698ea450262697cd) ) /* Europe, 4 Slot */ \
ROM_LOAD16_WORD_SWAP_BIOS( 2, "usa_2slt.bin", 0x00000, 0x020000, CRC(e72943de) SHA1(5c6bba07d2ec8ac95776aa3511109f5e1e2e92eb) ) /* US, 2 Slot */ \
ROM_LOAD16_WORD_SWAP_BIOS( 3, "sp-e.sp1", 0x00000, 0x020000, CRC(2723a5b5) SHA1(5dbff7531cf04886cde3ef022fb5ca687573dcb8) ) /* US, 6 Slot (V5?) */ \
ROM_LOAD16_WORD_SWAP_BIOS( 4, "asia-s3.rom", 0x00000, 0x020000, CRC(91b64be3) SHA1(720a3e20d26818632aedf2c2fd16c54f213543e1) ) /* Asia */ \
ROM_LOAD16_WORD_SWAP_BIOS( 5, "vs-bios.rom", 0x00000, 0x020000, CRC(f0e8f27d) SHA1(ecf01eda815909f1facec62abf3594eaa8d11075) ) /* Japan, Ver 6 VS Bios */ \
ROM_LOAD16_WORD_SWAP_BIOS( 6, "sp-j2.rom", 0x00000, 0x020000, CRC(acede59c) SHA1(b6f97acd282fd7e94d9426078a90f059b5e9dd91) ) /* Japan, Older */ \
ROM_LOAD16_WORD_SWAP_BIOS( 7, "sp1.jipan.1024",0x00000, 0x020000, CRC(9fb0abe4) SHA1(18a987ce2229df79a8cf6a84f968f0e42ce4e59d) ) /* Japan, Older */ \
/* ROM_LOAD16_WORD_SWAP_BIOS( 8, "uni-bios.10", 0x00000, 0x020000, CRC(0ce453a0) SHA1(3b4c0cd26c176fc6b26c3a2f95143dd478f6abf9) ) Universe Bios v1.0 (hack) */
/* ROM_LOAD16_WORD_SWAP_BIOS( 9, "uni-bios.11", 0x00000, 0x020000, CRC(5dda0d84) SHA1(4153d533c02926a2577e49c32657214781ff29b7) ) Universe Bios v1.1 (hack) */
/* ROM_LOAD16_WORD_SWAP_BIOS(10, "neodebug.rom", 0x00000, 0x020000, CRC(698ebb7d) SHA1(081c49aa8cc7dad5939833dc1b18338321ea0a07) ) Debug (Development) Bios */
/* ROM_LOAD16_WORD_SWAP_BIOS(11, "aes-bios.bin", 0x00000, 0x020000, CRC(d27a71f1) SHA1(1b3b22092f30c4d1b2c15f04d1670eb1e9fbea07) ) AES Console (Asia?) Bios */
实际上universal bios的版本也早就更新了,为了使用最新的bios,可以在代码中加入/替换
代码: 全选
SYSTEM_BIOS_ADD( 12, "uni-bios", "Unibios MVS (Hack, Ver. 2.2)" )
ROM_LOAD16_WORD_SWAP_BIOS( 12, "uni-bios.rom", 0x00000, 0x020000, CRC(2d50996a) SHA1(5241a4fb0c63b1a23fd1da8efa9c9a9bd3b4279c) )
如果为了简单的话,可以直接使用-bios 11,使用aes-bios,那将直接进入家用机模式。
如果为了方便的话,应该使用universal bios。