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

📄 tecmo.c

📁 这个是延伸mame的在wince平台下的游戏模拟器的代码
💻 C
📖 第 1 页 / 共 3 页
字号:
	ROM_REGION_DISPOSE(0x68000)	/* temporary space for graphics (disposed after conversion) */
	ROM_LOAD( "cpu_8k.bin",   0x00000, 0x08000, 0x4d482fb6 )	/* characters */

	ROM_LOAD( "vid_6k.bin",   0x08000, 0x08000, 0xaba6db9e )	/* sprites */
	ROM_LOAD( "vid_6j.bin",   0x10000, 0x08000, 0xae1f2ed6 )	/* sprites */
	ROM_LOAD( "vid_6h.bin",   0x18000, 0x08000, 0x46d9e7df )	/* sprites */
	ROM_LOAD( "vid_6g.bin",   0x20000, 0x08000, 0x45839c9a )	/* sprites */

	ROM_LOAD( "vid_6p.bin",   0x28000, 0x08000, 0x9eae5f8e )
	ROM_LOAD( "vid_6o.bin",   0x30000, 0x08000, 0x5a10a396 )
	ROM_LOAD( "vid_6n.bin",   0x38000, 0x08000, 0x7b12cf3f )
	ROM_LOAD( "vid_6l.bin",   0x40000, 0x08000, 0x3cea7eaa )

	ROM_LOAD( "vid_6f.bin",   0x48000, 0x08000, 0x9840edd8 )
	ROM_LOAD( "vid_6e.bin",   0x50000, 0x08000, 0xff65e074 )
	ROM_LOAD( "vid_6c.bin",   0x58000, 0x08000, 0x89868c85 )
	ROM_LOAD( "vid_6b.bin",   0x60000, 0x08000, 0x35389a7b )

	ROM_REGION(0x10000)	/* 64k for the audio CPU */
	ROM_LOAD( "cpu_4h.bin",   0x0000, 0x2000, 0xe4a2fa87 )

	ROM_REGION(0x4000)	/* ADPCM samples */
	ROM_LOAD( "cpu_1f.bin",   0x0000, 0x4000, 0x3cc98c5a )
ROM_END

ROM_START( rygarj_rom )
	ROM_REGION(0x18000)	/* 64k for code */

	ROM_LOAD( "cpuj_5p.bin",  0x00000, 0x08000, 0xb39698ba ) /* code */
	ROM_LOAD( "cpuj_5m.bin",  0x08000, 0x04000, 0x3f180979 ) /* code */
	ROM_LOAD( "cpuj_5j.bin",  0x10000, 0x08000, 0x69e44e8f ) /* banked at f000-f7ff */

	ROM_REGION_DISPOSE(0x68000)	/* temporary space for graphics (disposed after conversion) */
	ROM_LOAD( "cpuj_8k.bin",  0x00000, 0x08000, 0x45047707 )	/* characters */

	ROM_LOAD( "vid_6k.bin",   0x08000, 0x08000, 0xaba6db9e )	/* sprites */
	ROM_LOAD( "vid_6j.bin",   0x10000, 0x08000, 0xae1f2ed6 )	/* sprites */
	ROM_LOAD( "vid_6h.bin",   0x18000, 0x08000, 0x46d9e7df )	/* sprites */
	ROM_LOAD( "vid_6g.bin",   0x20000, 0x08000, 0x45839c9a )	/* sprites */

	ROM_LOAD( "vid_6p.bin",   0x28000, 0x08000, 0x9eae5f8e )
	ROM_LOAD( "vid_6o.bin",   0x30000, 0x08000, 0x5a10a396 )
	ROM_LOAD( "vid_6n.bin",   0x38000, 0x08000, 0x7b12cf3f )
	ROM_LOAD( "vid_6l.bin",   0x40000, 0x08000, 0x3cea7eaa )

	ROM_LOAD( "vid_6f.bin",   0x48000, 0x08000, 0x9840edd8 )
	ROM_LOAD( "vid_6e.bin",   0x50000, 0x08000, 0xff65e074 )
	ROM_LOAD( "vid_6c.bin",   0x58000, 0x08000, 0x89868c85 )
	ROM_LOAD( "vid_6b.bin",   0x60000, 0x08000, 0x35389a7b )

	ROM_REGION(0x10000)	/* 64k for the audio CPU */
	ROM_LOAD( "cpu_4h.bin",   0x0000, 0x2000, 0xe4a2fa87 )

	ROM_REGION(0x4000)	/* ADPCM samples */
	ROM_LOAD( "cpu_1f.bin",   0x0000, 0x4000, 0x3cc98c5a )
ROM_END

ROM_START( silkworm_rom )
	ROM_REGION(0x20000)	/* 64k for code */
	ROM_LOAD( "silkworm.4",   0x00000, 0x10000, 0xa5277cce )	/* c000-ffff is not used */
	ROM_LOAD( "silkworm.5",   0x10000, 0x10000, 0xa6c7bb51 )	/* banked at f000-f7ff */

	ROM_REGION_DISPOSE(0xc8000)	/* temporary space for graphics (disposed after conversion) */
	ROM_LOAD( "silkworm.2",   0x00000, 0x08000, 0xe80a1cd9 )	/* characters */
	ROM_LOAD( "silkworm.6",   0x08000, 0x10000, 0x1138d159 )	/* sprites */
	ROM_LOAD( "silkworm.7",   0x18000, 0x10000, 0xd96214f7 )	/* sprites */
	ROM_LOAD( "silkworm.8",   0x28000, 0x10000, 0x0494b38e )	/* sprites */
	ROM_LOAD( "silkworm.9",   0x38000, 0x10000, 0x8ce3cdf5 )	/* sprites */
	ROM_LOAD( "silkworm.10",  0x48000, 0x10000, 0x8c7138bb )	/* tiles #1 */
	ROM_LOAD( "silkworm.11",  0x58000, 0x10000, 0x6c03c476 )	/* tiles #1 */
	ROM_LOAD( "silkworm.12",  0x68000, 0x10000, 0xbb0f568f )	/* tiles #1 */
	ROM_LOAD( "silkworm.13",  0x78000, 0x10000, 0x773ad0a4 )	/* tiles #1 */
	ROM_LOAD( "silkworm.14",  0x88000, 0x10000, 0x409df64b )	/* tiles #2 */
	ROM_LOAD( "silkworm.15",  0x98000, 0x10000, 0x6e4052c9 )	/* tiles #2 */
	ROM_LOAD( "silkworm.16",  0xa8000, 0x10000, 0x9292ed63 )	/* tiles #2 */
	ROM_LOAD( "silkworm.17",  0xb8000, 0x10000, 0x3fa4563d )	/* tiles #2 */

	ROM_REGION(0x20000)	/* 64k for the audio CPU */
	ROM_LOAD( "silkworm.3",   0x0000, 0x8000, 0xb589f587 )

	ROM_REGION(0x8000)	/* ADPCM samples */
	ROM_LOAD( "silkworm.1",   0x0000, 0x8000, 0x5b553644 )
ROM_END

ROM_START( silkwrm2_rom )
	ROM_REGION(0x20000)	/* 64k for code */
	ROM_LOAD( "r4",           0x00000, 0x10000, 0x6df3df22 )	/* c000-ffff is not used */
	ROM_LOAD( "silkworm.5",   0x10000, 0x10000, 0xa6c7bb51 )	/* banked at f000-f7ff */

	ROM_REGION_DISPOSE(0xc8000)	/* temporary space for graphics (disposed after conversion) */
	ROM_LOAD( "silkworm.2",   0x00000, 0x08000, 0xe80a1cd9 )	/* characters */
	ROM_LOAD( "silkworm.6",   0x08000, 0x10000, 0x1138d159 )	/* sprites */
	ROM_LOAD( "silkworm.7",   0x18000, 0x10000, 0xd96214f7 )	/* sprites */
	ROM_LOAD( "silkworm.8",   0x28000, 0x10000, 0x0494b38e )	/* sprites */
	ROM_LOAD( "silkworm.9",   0x38000, 0x10000, 0x8ce3cdf5 )	/* sprites */
	ROM_LOAD( "silkworm.10",  0x48000, 0x10000, 0x8c7138bb )	/* tiles #1 */
	ROM_LOAD( "silkworm.11",  0x58000, 0x10000, 0x6c03c476 )	/* tiles #1 */
	ROM_LOAD( "silkworm.12",  0x68000, 0x10000, 0xbb0f568f )	/* tiles #1 */
	ROM_LOAD( "silkworm.13",  0x78000, 0x10000, 0x773ad0a4 )	/* tiles #1 */
	ROM_LOAD( "silkworm.14",  0x88000, 0x10000, 0x409df64b )	/* tiles #2 */
	ROM_LOAD( "silkworm.15",  0x98000, 0x10000, 0x6e4052c9 )	/* tiles #2 */
	ROM_LOAD( "silkworm.16",  0xa8000, 0x10000, 0x9292ed63 )	/* tiles #2 */
	ROM_LOAD( "silkworm.17",  0xb8000, 0x10000, 0x3fa4563d )	/* tiles #2 */

	ROM_REGION(0x20000)	/* 64k for the audio CPU */
	ROM_LOAD( "r3",           0x0000, 0x8000, 0xb79848d0 )

	ROM_REGION(0x8000)	/* ADPCM samples */
	ROM_LOAD( "silkworm.1",   0x0000, 0x8000, 0x5b553644 )
ROM_END

ROM_START( gemini_rom )
	ROM_REGION(0x20000)	/* 64k for code */
	ROM_LOAD( "gw04-5s.rom",  0x00000, 0x10000, 0xff9de855 )	/* c000-ffff is not used */
	ROM_LOAD( "gw05-6s.rom",  0x10000, 0x10000, 0x5a6947a9 )	/* banked at f000-f7ff */

	ROM_REGION_DISPOSE(0xc8000)	/* temporary space for graphics (disposed after conversion) */
	ROM_LOAD( "gw02-3h.rom",  0x00000, 0x08000, 0x7acc8d35 )	/* characters */
	ROM_LOAD( "gw06-1c.rom",  0x08000, 0x10000, 0x4ea51631 )	/* sprites */
	ROM_LOAD( "gw07-1d.rom",  0x18000, 0x10000, 0xda42637e )	/* sprites */
	ROM_LOAD( "gw08-1f.rom",  0x28000, 0x10000, 0x0b4e8d70 )	/* sprites */
	ROM_LOAD( "gw09-1h.rom",  0x38000, 0x10000, 0xb65c5e4c )	/* sprites */
	ROM_LOAD( "gw10-1n.rom",  0x48000, 0x10000, 0x5e84cd4f )	/* tiles #1 */
	ROM_LOAD( "gw11-2na.rom", 0x58000, 0x10000, 0x08b458e1 )	/* tiles #1 */
	ROM_LOAD( "gw12-2nb.rom", 0x68000, 0x10000, 0x229c9714 )	/* tiles #1 */
	ROM_LOAD( "gw13-3n.rom",  0x78000, 0x10000, 0xc5dfaf47 )	/* tiles #1 */
	ROM_LOAD( "gw14-1r.rom",  0x88000, 0x10000, 0x9c10e5b5 )	/* tiles #2 */
	ROM_LOAD( "gw15-2ra.rom", 0x98000, 0x10000, 0x4cd18cfa )	/* tiles #2 */
	ROM_LOAD( "gw16-2rb.rom", 0xa8000, 0x10000, 0xf911c7be )	/* tiles #2 */
	ROM_LOAD( "gw17-3r.rom",  0xb8000, 0x10000, 0x79a9ce25 )	/* tiles #2 */

	ROM_REGION(0x10000)	/* 64k for the audio CPU */
	ROM_LOAD( "gw03-5h.rom",  0x0000, 0x8000, 0x9bc79596 )

	ROM_REGION(0x8000)	/* ADPCM samples */
	ROM_LOAD( "gw01-6a.rom",  0x0000, 0x8000, 0xd78afa05 )
ROM_END



static int rygar_hiload(void)
{
	unsigned char *RAM = Machine->memory_region[Machine->drv->cpu[0].memory_region];


	/* check if the hi score table has already been initialized */
	if (memcmp(&RAM[0xc984],"\x00\x03\x00\x00",4) == 0 &&
			memcmp(&RAM[0xcb46],"\x00\x03\x00\x00",4) == 0 &&
			memcmp(&RAM[0xc023],"\x00\x00\x03\x00",4) == 0)	/* high score */
	{
		void *f;
		int p;


		if ((f = osd_fopen(Machine->gamedrv->name,0,OSD_FILETYPE_HIGHSCORE,0)) != 0)
		{
			osd_fread(f,&RAM[0xc983],9*50);
			RAM[0xc023]=RAM[0xc987];
			RAM[0xc024]=RAM[0xc986];
			RAM[0xc025]=RAM[0xc985];
			RAM[0xc026]=RAM[0xc984];
			osd_fclose(f);

			/* update the screen hi score (now or never) */

			for (p=0;p<4;p++)
			{
				RAM[0xd06c+(p*2)]=0x60+(RAM[0xc984+p]/16);
				RAM[0xd06d+(p*2)]=0x60+(RAM[0xc984+p]%16);
			}
			for (p=0;p<6;p++ )
			{
				if (RAM[0xd06c+p]==0x60)
						RAM[0xd06c+p]=0x01;
				else break;
			}
		}

		return 1;
	}
	else return 0;  /* we can't load the hi scores yet */
}

static void rygar_hisave(void)
{
	void *f;
	unsigned char *RAM = Machine->memory_region[Machine->drv->cpu[0].memory_region];


	if ((f = osd_fopen(Machine->gamedrv->name,0,OSD_FILETYPE_HIGHSCORE,1)) != 0)
	{
		osd_fwrite(f,&RAM[0xc983],9*50);
		osd_fclose(f);
	}
}


static int silkworm_hiload(void)
{
	unsigned char *RAM = Machine->memory_region[Machine->drv->cpu[0].memory_region];


	/* check if the hi score table has already been initialized */
	if (memcmp(&RAM[0xd262],"\x00\x00\x03",3) == 0)
	{
		void *f;


		if ((f = osd_fopen(Machine->gamedrv->name,0,OSD_FILETYPE_HIGHSCORE,0)) != 0)
		{
			osd_fread(f,&RAM[0xd262],10*10);
			osd_fread(f,&RAM[0xd54e],4);
			osd_fread(f,&RAM[0xd572],4);
			osd_fclose(f);
		}

		return 1;
	}
	else return 0;  /* we can't load the hi scores yet */
}

static void silkworm_hisave(void)
{
	void *f;
	unsigned char *RAM = Machine->memory_region[Machine->drv->cpu[0].memory_region];


	if ((f = osd_fopen(Machine->gamedrv->name,0,OSD_FILETYPE_HIGHSCORE,1)) != 0)
	{
		osd_fwrite(f,&RAM[0xd262],10*10);
		osd_fwrite(f,&RAM[0xd54e],4);
		osd_fwrite(f,&RAM[0xd572],4);
		osd_fclose(f);
	}

}


static int gemini_hiload(void)
{
	unsigned char *RAM = Machine->memory_region[Machine->drv->cpu[0].memory_region];


	/* check if the hi score table has already been initialized */
	if (memcmp(&RAM[0xc026],"\x00\x50\x00",3) == 0)
	{
		void *f;


		if ((f = osd_fopen(Machine->gamedrv->name,0,OSD_FILETYPE_HIGHSCORE,0)) != 0)
		{
			osd_fread(f,&RAM[0xc026],3);
			osd_fread(f,&RAM[0xcf41],3*10+4*10);
			osd_fclose(f);
		}

		return 1;
	}
	else return 0;  /* we can't load the hi scores yet */
}

static void gemini_hisave(void)
{
	void *f;
	unsigned char *RAM = Machine->memory_region[Machine->drv->cpu[0].memory_region];


	if ((f = osd_fopen(Machine->gamedrv->name,0,OSD_FILETYPE_HIGHSCORE,1)) != 0)
	{
		osd_fwrite(f,&RAM[0xc026],3);
		osd_fwrite(f,&RAM[0xcf41],3*10+4*10);
		osd_fclose(f);
	}
}



struct GameDriver rygar_driver =
{
	__FILE__,
	0,
	"rygar",
	"Rygar (US set 1)",
	"1986",
	"Tecmo",
	"Nicola Salmoria\nErnesto Corvi (ADPCM sound)",
	0,
	&rygar_machine_driver,
	0,

	rygar_rom,
	0, 0,
	0,
	0,

	rygar_input_ports,

	0, 0, 0,
	ORIENTATION_DEFAULT,

	rygar_hiload, rygar_hisave
};

struct GameDriver rygar2_driver =
{
	__FILE__,
	&rygar_driver,
	"rygar2",
	"Rygar (US set 2)",
	"1986",
	"Tecmo",
	"Nicola Salmoria\nErnesto Corvi (ADPCM sound)",
	0,
	&rygar_machine_driver,
	0,

	rygar2_rom,
	0, 0,
	0,
	0,

	rygar_input_ports,

	0, 0, 0,
	ORIENTATION_DEFAULT,

	rygar_hiload, rygar_hisave
};

struct GameDriver rygarj_driver =
{
	__FILE__,
	&rygar_driver,
	"rygarj",
	"Rygar (Japan)",
	"1986",
	"Tecmo",
	"Nicola Salmoria\nErnesto Corvi (ADPCM sound)",
	0,
	&rygar_machine_driver,
	0,

	rygarj_rom,
	0, 0,
	0,
	0,

	rygar_input_ports,

	0, 0, 0,
	ORIENTATION_DEFAULT,

	rygar_hiload, rygar_hisave
};

struct GameDriver gemini_driver =
{
	__FILE__,
	0,
	"gemini",
	"Gemini Wing",
	"1987",
	"Tecmo",
    "Nicola Salmoria (MAME driver)\nMirko Buffoni (additional code)\nMartin Binder (dip switches)",
	0,
	&gemini_machine_driver,
	0,

	gemini_rom,
	0, 0,
	0,
	0,

	gemini_input_ports,

	0, 0, 0,
	ORIENTATION_ROTATE_90,

	gemini_hiload, gemini_hisave
};

struct GameDriver silkworm_driver =
{
	__FILE__,
	0,
	"silkworm",
	"Silkworm (set 1)",
	"1988",
	"Tecmo",
	"Nicola Salmoria",
	0,
	&silkworm_machine_driver,
	0,

	silkworm_rom,
	0, 0,
	0,
	0,

	silkworm_input_ports,

	0, 0, 0,
	ORIENTATION_DEFAULT,

	silkworm_hiload, silkworm_hisave
};

struct GameDriver silkwrm2_driver =
{
	__FILE__,
	&silkworm_driver,
	"silkwrm2",
	"Silkworm (set 2)",
	"1988",
	"Tecmo",
	"Nicola Salmoria",
	0,
	&silkworm_machine_driver,
	0,

	silkwrm2_rom,
	0, 0,
	0,
	0,

	silkworm_input_ports,

	0, 0, 0,
	ORIENTATION_DEFAULT,

	silkworm_hiload, silkworm_hisave
};

⌨️ 快捷键说明

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