⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nemesis.c

📁 这个是延伸mame的在wince平台下的游戏模拟器的代码
💻 C
📖 第 1 页 / 共 5 页
字号:
	/* sound hardware */
	0,0,0,0,
	{
		{
			SOUND_AY8910,
			&ay8910_interface
		}
	}
};

static struct MachineDriver salamand_machine_driver =
{
	/* basic machine hardware */
	{
		{
			CPU_M68000,
			8000000,       /* 8 Mhz?? */
			0,
			salamand_readmem,salamand_writemem,0,0,
			salamand_interrupt,1
		},
	},

	60, DEFAULT_REAL_60HZ_VBLANK_DURATION,
	1,	/* 1 CPU slice per frame - interleaving is forced when a sound command is written */
	nemesis_init_machine,

	/* video hardware */
	32*8, 32*8, { 0*8, 32*8-1, 2*8, 30*8-1 },
	gfxdecodeinfo,
	2048, 2048,
	0,

	VIDEO_TYPE_RASTER | VIDEO_MODIFIES_PALETTE,
	0,
	nemesis_vh_start,
	nemesis_vh_stop,
	nemesis_vh_screenrefresh,

	/* sound hardware */
	0,0,0,0,
	{
		{
			SOUND_AY8910,
			&ay8910_interface
		}
	}
};

static struct MachineDriver gx400_machine_driver =
{
	/* basic machine hardware */
	{
		{
			CPU_M68000,
			14318180/2,	/* ??? guess */
			0,
			gx400_readmem,gx400_writemem,0,0,
			gx400_interrupt,3
		},
		{
			CPU_Z80 | CPU_AUDIO_CPU,
			3579545,	/* 3.579545 MHz */
			2,
			gx400_sound_readmem,gx400_sound_writemem,0,0,
			nmi_interrupt,1	/* interrupts are triggered by the main CPU */
		},
	},

	60, DEFAULT_REAL_60HZ_VBLANK_DURATION,
	1,	/* 1 CPU slice per frame - interleaving is forced when a sound command is written */
	nemesis_init_machine,

	/* video hardware */
	32*8, 32*8, { 0*8, 32*8-1, 2*8, 30*8-1 },
	gfxdecodeinfo,
	2048, 2048,
	0,

	VIDEO_TYPE_RASTER | VIDEO_MODIFIES_PALETTE,
	0,
	nemesis_vh_start,
	nemesis_vh_stop,
	nemesis_vh_screenrefresh,

	/* sound hardware */
	0,0,0,0,
	{
		{
			SOUND_AY8910,
			&ay8910_interface
		}
	}
};

static struct MachineDriver rf2_gx400_machine_driver =
{
	/* basic machine hardware */
	{
		{
			CPU_M68000,
			14318180/2,	/* ??? guess */
			0,
			rf2_gx400_readmem,rf2_gx400_writemem,0,0,
			gx400_interrupt,3
		},
		{
			CPU_Z80 | CPU_AUDIO_CPU,
			3579545,	/* 3.579545 MHz */
			2,
			gx400_sound_readmem,gx400_sound_writemem,0,0,
			nmi_interrupt,1	/* interrupts are triggered by the main CPU */
		},
	},

	60, DEFAULT_REAL_60HZ_VBLANK_DURATION,
	1,	/* 1 CPU slice per frame - interleaving is forced when a sound command is written */
	nemesis_init_machine,

	/* video hardware */
	32*8, 32*8, { 0*8, 32*8-1, 2*8, 30*8-1 },
	gfxdecodeinfo,
	2048, 2048,
	0,

	VIDEO_TYPE_RASTER | VIDEO_MODIFIES_PALETTE,
	0,
	nemesis_vh_start,
	nemesis_vh_stop,
	nemesis_vh_screenrefresh,

	/* sound hardware */
	0,0,0,0,
	{
		{
			SOUND_AY8910,
			&ay8910_interface
		}
	}
};

/***************************************************************************

  Game driver(s)

***************************************************************************/

ROM_START( nemesis_rom )
	ROM_REGION(0x40000)    /* 4 * 64k for code and rom */
	ROM_LOAD_EVEN ( "12a_01.bin",   0x00000, 0x8000, 0x35ff1aaa )
	ROM_LOAD_ODD  ( "12c_05.bin",   0x00000, 0x8000, 0x23155faa )
	ROM_LOAD_EVEN ( "13a_02.bin",   0x10000, 0x8000, 0xac0cf163 )
	ROM_LOAD_ODD  ( "13c_06.bin",   0x10000, 0x8000, 0x023f22a9 )
	ROM_LOAD_EVEN ( "14a_03.bin",   0x20000, 0x8000, 0x8cefb25f )
	ROM_LOAD_ODD  ( "14c_07.bin",   0x20000, 0x8000, 0xd50b82cb )
	ROM_LOAD_EVEN ( "15a_04.bin",   0x30000, 0x8000, 0x9ca75592 )
	ROM_LOAD_ODD  ( "15c_08.bin",   0x30000, 0x8000, 0x03c0b7f5 )

	ROM_REGION_DISPOSE(0x1000)      /* temporary space for graphics (disposed after conversion) */
	/* empty memory region - not used by the game, but needed because the main */
	/* core currently always frees region #1 after initialization. */

	ROM_REGION(0x10000)    /* 64k for sound */
	ROM_LOAD  ( "09c_snd.bin",  0x0000, 0x4000, 0x26bf9636 )
ROM_END

ROM_START( nemesuk_rom )
	ROM_REGION(0x40000)    /* 4 * 64k for code and rom */
	ROM_LOAD_EVEN ( "12a_01.uk",    0x00000, 0x8000, 0xe1993f91 )
	ROM_LOAD_ODD  ( "12c_05.uk",    0x00000, 0x8000, 0xc9761c78 )
	ROM_LOAD_EVEN ( "13a_02.uk",    0x10000, 0x8000, 0xf6169c4b )
	ROM_LOAD_ODD  ( "13c_06.uk",    0x10000, 0x8000, 0xaf58c548 )
	ROM_LOAD_EVEN ( "14a_03.bin",   0x20000, 0x8000, 0x8cefb25f )
	ROM_LOAD_ODD  ( "14c_07.bin",   0x20000, 0x8000, 0xd50b82cb )
	ROM_LOAD_EVEN ( "15a_04.uk",    0x30000, 0x8000, 0x322423d0 )
	ROM_LOAD_ODD  ( "15c_08.uk",    0x30000, 0x8000, 0xeb656266 )

	ROM_REGION_DISPOSE(0x1000)      /* temporary space for graphics (disposed after conversion) */
	/* empty memory region - not used by the game, but needed because the main */
	/* core currently always frees region #1 after initialization. */

	ROM_REGION(0x10000)    /* 64k for sound */
	ROM_LOAD  ( "09c_snd.bin",  0x0000, 0x4000, 0x26bf9636 )
ROM_END

ROM_START( konamigt_rom )
	ROM_REGION(0x40000)    /* 4 * 64k for code and rom */
	ROM_LOAD_EVEN ( "c01.rom",      0x00000, 0x8000, 0x56245bfd )
	ROM_LOAD_ODD  ( "c05.rom",      0x00000, 0x8000, 0x8d651f44 )
	ROM_LOAD_EVEN ( "c02.rom",      0x10000, 0x8000, 0x3407b7cb )
	ROM_LOAD_ODD  ( "c06.rom",      0x10000, 0x8000, 0x209942d4 )
	ROM_LOAD_EVEN ( "b03.rom",      0x20000, 0x8000, 0xaef7df48 )
	ROM_LOAD_ODD  ( "b07.rom",      0x20000, 0x8000, 0xe9bd6250 )
	ROM_LOAD_EVEN ( "b04.rom",      0x30000, 0x8000, 0x94bd4bd7 )
	ROM_LOAD_ODD  ( "b08.rom",      0x30000, 0x8000, 0xb7236567 )

	ROM_REGION_DISPOSE(0x1000)      /* temporary space for graphics (disposed after conversion) */
	/* empty memory region - not used by the game, but needed because the main */
	/* core currently always frees region #1 after initialization. */

	ROM_REGION(0x10000)    /* 64k for sound */
	ROM_LOAD  ( "b09.rom",      0x00000, 0x4000, 0x539d0c49 )
ROM_END

ROM_START( salamand_rom )
	ROM_REGION(0x200000)    /* 64k for code */
	ROM_LOAD_EVEN ( "18b.bin",  0x00000, 0x10000, 0xa42297f9 )
	ROM_LOAD_ODD  ( "18c.bin",  0x00000, 0x10000, 0xf9130b0a )
	ROM_LOAD_EVEN ( "17b.bin",    0x40000, 0x20000, 0xe5caf6e6 )
	ROM_LOAD_ODD  ( "17c.bin",    0x40000, 0x20000, 0xc2f567ea )

	ROM_REGION_DISPOSE(0x1000)      /* temporary space for graphics (disposed after conversion) */
	/* empty memory region - not used by the game, but needed because the main */
	/* core currently always frees region #1 after initialization. */
ROM_END

ROM_START( rf2_rom )
	ROM_REGION(0xc0000)    /* 5 * 64k for code and rom */
	ROM_LOAD_EVEN ( "400-a06.15l",  0x00000, 0x08000, 0xb99d8cff )
	ROM_LOAD_ODD  ( "400-a04.10l",  0x00000, 0x08000, 0xd02c9552 )
	ROM_LOAD_EVEN ( "561-a07.17l",  0x80000, 0x20000, 0xed6e7098 )
	ROM_LOAD_ODD  ( "561-a05.12l",  0x80000, 0x20000, 0xdfe04425 )

	ROM_REGION_DISPOSE(0x1000)      /* temporary space for graphics (disposed after conversion) */
	/* empty memory region - not used by the game, but needed because the main */
	/* core currently always frees region #1 after initialization. */

	ROM_REGION(0x10000)    /* 64k for sound */
	ROM_LOAD  ( "400-e03.5l",       0x00000, 0x2000, 0xa5a8e57d )
ROM_END

ROM_START( twinbee_rom )
	ROM_REGION(0xc0000)    /* 5 * 64k for code and rom */
	ROM_LOAD_EVEN ( "400-a06.15l",  0x00000, 0x08000, 0xb99d8cff )
	ROM_LOAD_ODD  ( "400-a04.10l",  0x00000, 0x08000, 0xd02c9552 )
	ROM_LOAD_EVEN ( "412-a07.17l",  0x80000, 0x20000, 0xd93c5499 )
	ROM_LOAD_ODD  ( "412-a05.12l",  0x80000, 0x20000, 0x2b357069 )

	ROM_REGION_DISPOSE(0x1000)      /* temporary space for graphics (disposed after conversion) */
	/* empty memory region - not used by the game, but needed because the main */
	/* core currently always frees region #1 after initialization. */

	ROM_REGION(0x10000)    /* 64k for sound */
	ROM_LOAD  ( "400-e03.5l",       0x00000, 0x2000, 0xa5a8e57d )
ROM_END

ROM_START( gradius_rom )
	ROM_REGION(0xc0000)    /* 5 * 64k for code and rom */
	ROM_LOAD_EVEN ( "400-a06.15l",  0x00000, 0x08000, 0xb99d8cff )
	ROM_LOAD_ODD  ( "400-a04.10l",  0x00000, 0x08000, 0xd02c9552 )
	ROM_LOAD_EVEN ( "456-a07.17l",  0x80000, 0x20000, 0x92df792c )
	ROM_LOAD_ODD  ( "456-a05.12l",  0x80000, 0x20000, 0x5cafb263 )

	ROM_REGION_DISPOSE(0x1000)      /* temporary space for graphics (disposed after conversion) */
	/* empty memory region - not used by the game, but needed because the main */
	/* core currently always frees region #1 after initialization. */

	ROM_REGION(0x10000)    /* 64k for sound */
	ROM_LOAD  ( "400-e03.5l",       0x00000, 0x2000, 0xa5a8e57d )
ROM_END

ROM_START( gwarrior_rom )
	ROM_REGION(0xc0000)    /* 5 * 64k for code and rom */
	ROM_LOAD_EVEN ( "400-a06.15l",  0x00000, 0x08000, 0xb99d8cff )
	ROM_LOAD_ODD  ( "400-a04.10l",  0x00000, 0x08000, 0xd02c9552 )
	ROM_LOAD_EVEN ( "578-a07.17l",  0x80000, 0x20000, 0x0aedacb5 )
	ROM_LOAD_ODD  ( "578-a05.12l",  0x80000, 0x20000, 0x76240e2e )

	ROM_REGION_DISPOSE(0x1000)      /* temporary space for graphics (disposed after conversion) */
	/* empty memory region - not used by the game, but needed because the main */
	/* core currently always frees region #1 after initialization. */

	ROM_REGION(0x10000)    /* 64k for sound */
	ROM_LOAD  ( "400-e03.5l",       0x00000, 0x2000, 0xa5a8e57d )
ROM_END



static int nemesis_hiload(void)
{
	void *f;

	/* check if the hi score table has already been initialized */
	if (memcmp(&ram[0x0098],"\x05\x00\x00\x73",4) == 0)
	{
		if ((f = osd_fopen(Machine->gamedrv->name,0,OSD_FILETYPE_HIGHSCORE,0)) != 0)
		{
			osd_fread(f,&ram[0x5010],8*18);
			ram[0x0098] = ram[0x501a];
			ram[0x0099] = ram[0x501b];
			ram[0x009a] = ram[0x501c];
			ram[0x009b] = ram[0x501d];
			osd_fclose(f);
		}
		return 1;
	}
	else return 0;  /* we can't load the hi scores yet */
}

static void nemesis_hisave(void)
{
	void *f;

	if ((f = osd_fopen(Machine->gamedrv->name,0,OSD_FILETYPE_HIGHSCORE,1)) != 0)
	{
		osd_fwrite(f,&ram[0x5010],8*18);
		osd_fclose(f);
	}
}



struct GameDriver nemesis_driver =
{
	__FILE__,
	0,
	"nemesis",
	"Nemesis (hacked?)",
	"1985",
	"Konami",
	"Allard van der Bas",
	0,
	&nemesis_machine_driver,
	0,

	nemesis_rom,
	0, 0,
	0,
	0,      /* sound_prom */

	nemesis_input_ports,

	0, 0, 0,
	ORIENTATION_DEFAULT,

	nemesis_hiload,nemesis_hisave
};

struct GameDriver nemesuk_driver =
{
	__FILE__,
	&nemesis_driver,
	"nemesuk",
	"Nemesis (UK)",
	"1985",
	"Konami",
	"Allard van der Bas",
	0,
	&nemesis_machine_driver,
	0,

	nemesuk_rom,
	0, 0,
	0,
	0,      /* sound_prom */

	nemesuk_input_ports,

	0, 0, 0,
	ORIENTATION_DEFAULT,

	nemesis_hiload,nemesis_hisave
};

struct GameDriver konamigt_driver =
{
	__FILE__,
	0,
	"konamigt",
	"Konami GT",
	"1985",

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -