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

📄 snk.c

📁 这个是延伸mame的在wince平台下的游戏模拟器的代码
💻 C
📖 第 1 页 / 共 2 页
字号:
			readmem_snd,writemem_snd,0,0,
			interrupt,1
		}
	},
	60, DEFAULT_60HZ_VBLANK_DURATION, 	/* frames per second, vblank duration */
	30,
	snk_init_machine,
	36*8, 28*8,
	{ 0*8, 36*8-1, 1*8, 28*8-1 },
	gfxdecodeinfo,
	512,17*16+32*8,
	snk_vh_convert_color_prom,
	VIDEO_TYPE_RASTER | VIDEO_MODIFIES_PALETTE,
	0,
	snk_vh_start,
	snk_vh_stop,
	snk_vh_screenrefresh,

	0,0,0,0,
	{
		{
			SOUND_YM3526,
			&ym3526_interface
		}
	}
};


ROM_START( ikarius_rom )

	ROM_REGION(0x10000)			 	  /* 64k for cpuA code */
	ROM_LOAD( "1.rom",  0x00000, 0x10000, 0x52a8b2dd )

	ROM_REGION_DISPOSE(0x6c000)

	ROM_LOAD( "7.rom",  0x00000, 0x4000, 0xa7eb4917 ) /* characters */

	ROM_LOAD( "17.rom", 0x04000, 0x8000, 0xe0dba976 ) /* tiles */
	ROM_LOAD( "18.rom", 0x0c000, 0x8000, 0x24947d5f )
	ROM_LOAD( "19.rom", 0x14000, 0x8000, 0x9ee59e91 )
	ROM_LOAD( "20.rom", 0x1c000, 0x8000, 0x5da7ec1a )

	ROM_LOAD( "8.rom",  0x24000, 0x8000, 0x9827c14a ) /* sprites 16x16 */
	ROM_LOAD( "9.rom",  0x2c000, 0x8000, 0x545c790c )
	ROM_LOAD( "10.rom", 0x34000, 0x8000, 0xec9ba07e )

	ROM_LOAD( "11.rom", 0x3c000, 0x8000, 0x5c75ea8f ) /* sprites 32x32 */
	ROM_LOAD( "14.rom", 0x44000, 0x8000, 0x3293fde4 )
	ROM_LOAD( "12.rom", 0x4c000, 0x8000, 0x95138498 )
	ROM_LOAD( "15.rom", 0x54000, 0x8000, 0x65a61c99 )
	ROM_LOAD( "13.rom", 0x5c000, 0x8000, 0x315383d7 )
	ROM_LOAD( "16.rom", 0x64000, 0x8000, 0xe9b03e07 )

	ROM_REGION(0x10000)				  /* 64k for cpuB code */
	ROM_LOAD( "2.rom",  0x0000, 0x10000, 0x45364d55 )

	ROM_REGION(0x10000)				  /* 64k for sound code */
	ROM_LOAD( "3.rom",  0x0000, 0x10000, 0x56a26699 )

	ROM_REGION(0xc00) 				  /* color proms */
	ROM_LOAD( "7122er.prm", 0x000, 0x400, 0xb9bf2c2c )
	ROM_LOAD( "7122eg.prm", 0x400, 0x400, 0x0703a770 )
	ROM_LOAD( "7122eb.prm", 0x800, 0x400, 0x0a11cdde )

ROM_END


ROM_START( ikarijp_rom )

	ROM_REGION(0x10000)					/* 64k for cpuA code */
	ROM_LOAD( "up03_l4.rom",  0x00000, 0x4000, 0xcde006be )
	ROM_LOAD( "up03_k4.rom",  0x04000, 0x8000, 0x26948850 )

	ROM_REGION_DISPOSE( 0x6c000 )
	ROM_LOAD( "7.rom",  0x00000, 0x4000, 0xa7eb4917 ) /* characters */

	ROM_LOAD( "17.rom", 0x04000, 0x8000, 0xe0dba976 ) /* tiles */
	ROM_LOAD( "18.rom", 0x0c000, 0x8000, 0x24947d5f )
	ROM_LOAD( "ik19",   0x14000, 0x8000, 0x566242ec )
	ROM_LOAD( "20.rom", 0x1c000, 0x8000, 0x5da7ec1a )

	ROM_LOAD( "ik8",    0x24000, 0x8000, 0x75d796d0 ) /* sprites 16x16 */
	ROM_LOAD( "ik9",    0x2c000, 0x8000, 0x2c34903b )
	ROM_LOAD( "ik10",   0x34000, 0x8000, 0xda9ccc94 )

	ROM_LOAD( "11.rom", 0x3c000, 0x8000, 0x5c75ea8f ) /* sprites 32x32 */
	ROM_LOAD( "14.rom", 0x44000, 0x8000, 0x3293fde4 )
	ROM_LOAD( "12.rom", 0x4c000, 0x8000, 0x95138498 )
	ROM_LOAD( "15.rom", 0x54000, 0x8000, 0x65a61c99 )
	ROM_LOAD( "13.rom", 0x5c000, 0x8000, 0x315383d7 )
	ROM_LOAD( "16.rom", 0x64000, 0x8000, 0xe9b03e07 )

	ROM_REGION(0x10000)					/* 64k for cpuB code */
	ROM_LOAD( "ik3",    0x00000, 0x4000, 0x9bb385f8 )
	ROM_LOAD( "ik4",    0x04000, 0x8000, 0x3a144bca )

	ROM_REGION(0x10000)					/* 64k for sound code */
	ROM_LOAD( "ik5",    0x00000, 0x4000, 0x863448fa )
	ROM_LOAD( "ik6",    0x04000, 0x8000, 0x9b16aa57 )

	ROM_REGION(0xc00) 				  	/* color proms */
	ROM_LOAD( "7122er.prm", 0x000, 0x400, 0xb9bf2c2c )
	ROM_LOAD( "7122eg.prm", 0x400, 0x400, 0x0703a770 )
	ROM_LOAD( "7122eb.prm", 0x800, 0x400, 0x0a11cdde )

ROM_END


ROM_START( ikarijpb_rom )

	ROM_REGION(0x10000)				/* 64k for cpuA code */
	ROM_LOAD( "ik1",          0x00000, 0x4000, 0x2ef87dce )
	ROM_LOAD( "up03_k4.rom",  0x04000, 0x8000, 0x26948850 )

	ROM_REGION_DISPOSE(0x6c000)

	ROM_LOAD( "ik7",    0x00000, 0x4000, 0x9e88f536 )	/* characters */

	ROM_LOAD( "17.rom", 0x04000, 0x8000, 0xe0dba976 ) /* tiles */
	ROM_LOAD( "18.rom", 0x0c000, 0x8000, 0x24947d5f )
	ROM_LOAD( "ik19",   0x14000, 0x8000, 0x566242ec )
	ROM_LOAD( "20.rom", 0x1c000, 0x8000, 0x5da7ec1a )

	ROM_LOAD( "ik8",    0x24000, 0x8000, 0x75d796d0 ) /* sprites 16x16 */
	ROM_LOAD( "ik9",    0x2c000, 0x8000, 0x2c34903b )
	ROM_LOAD( "ik10",   0x34000, 0x8000, 0xda9ccc94 )

	ROM_LOAD( "11.rom", 0x3c000, 0x8000, 0x5c75ea8f ) /* sprites 32x32 */
	ROM_LOAD( "14.rom", 0x44000, 0x8000, 0x3293fde4 )
	ROM_LOAD( "12.rom", 0x4c000, 0x8000, 0x95138498 )
	ROM_LOAD( "15.rom", 0x54000, 0x8000, 0x65a61c99 )
	ROM_LOAD( "13.rom", 0x5c000, 0x8000, 0x315383d7 )
	ROM_LOAD( "16.rom", 0x64000, 0x8000, 0xe9b03e07 )

	ROM_REGION(0x10000)				/* 64k for cpuB code */
	ROM_LOAD( "ik3",    0x0000, 0x4000, 0x9bb385f8 )
	ROM_LOAD( "ik4",    0x4000, 0x8000, 0x3a144bca )

	ROM_REGION(0x10000)				/* 64k for sound code */
	ROM_LOAD( "ik5",    0x0000, 0x4000, 0x863448fa )
	ROM_LOAD( "ik6",    0x4000, 0x8000, 0x9b16aa57 )

	ROM_REGION(0xc00) 				/* color proms */
	ROM_LOAD( "7122er.prm", 0x000, 0x400, 0xb9bf2c2c )
	ROM_LOAD( "7122eg.prm", 0x400, 0x400, 0x0703a770 )
	ROM_LOAD( "7122eb.prm", 0x800, 0x400, 0x0a11cdde )
ROM_END



ROM_START( victroad_rom )

	ROM_REGION(0x10000)				/* 64k for cpuA code */
	ROM_LOAD( "p1",  0x00000, 0x10000, 0xe334acef )

	ROM_REGION_DISPOSE(0x6c000)			/* characters */

	ROM_LOAD( "p7",  0x00000, 0x4000, 0x2b6ed95b )

	ROM_LOAD( "p17", 0x04000, 0x8000, 0x19d4518c )  /* tiles */
	ROM_LOAD( "p18", 0x0c000, 0x8000, 0xd818be43 )
	ROM_LOAD( "p19", 0x14000, 0x8000, 0xd64e0f89 )
	ROM_LOAD( "p20", 0x1c000, 0x8000, 0xedba0f31 )

	ROM_LOAD( "p8",  0x24000, 0x8000, 0xdf7f252a ) /* sprites 16x16 */
	ROM_LOAD( "p9",  0x2c000, 0x8000, 0x9897bc05 )
	ROM_LOAD( "p10", 0x34000, 0x8000, 0xecd3c0ea )

	ROM_LOAD( "p11", 0x3c000, 0x8000, 0x668b25a4 ) /* sprites 32x32 */
	ROM_LOAD( "p14", 0x44000, 0x8000, 0xa7031d4a )
	ROM_LOAD( "p12", 0x4c000, 0x8000, 0xf44e95fa )
	ROM_LOAD( "p15", 0x54000, 0x8000, 0x120d2450 )
	ROM_LOAD( "p13", 0x5c000, 0x8000, 0x980ca3d8 )
	ROM_LOAD( "p16", 0x64000, 0x8000, 0x9f820e8a )

	ROM_REGION(0x10000)				/* 64k for cpuB code */
	ROM_LOAD( "p2",  0x0000, 0x10000, 0x907fac83 )

	ROM_REGION(0x10000)				/* 64k for sound code */
	ROM_LOAD( "p3",  0x0000, 0x10000, 0xbac745f6 )

	ROM_REGION(0xc00) 				/* color proms */
	ROM_LOAD( "mb7122e.1k", 0x000, 0x400, 0x491ab831 )
	ROM_LOAD( "mb7122e.2l", 0x400, 0x400, 0x8feca424 )
	ROM_LOAD( "mb7122e.1l", 0x800, 0x400, 0x220076ca )

	ROM_REGION(0x20000)				/* ADPCM Samples */
	ROM_LOAD( "p4",  0x00000, 0x10000, 0xe10fb8cc )
	ROM_LOAD( "p5",  0x10000, 0x10000, 0x93e5f110 )

ROM_END


ROM_START( dogosoke_rom )

	ROM_REGION(0x10000)					/* 64k for cpuA code */
	ROM_LOAD( "up03_p4.rom", 0x00000,0x10000, 0x37867ad2 )

	ROM_REGION_DISPOSE( 0x6c000 )				/* characters */
	ROM_LOAD( "up02_b3.rom", 0x00000, 0x4000, 0x51a4ec83 )

	ROM_LOAD( "p17",         0x04000, 0x8000, 0x19d4518c ) /* tiles */
	ROM_LOAD( "p18",         0x0c000, 0x8000, 0xd818be43 )
	ROM_LOAD( "p19",         0x14000, 0x8000, 0xd64e0f89 )
	ROM_LOAD( "p20",         0x1c000, 0x8000, 0xedba0f31 )

	ROM_LOAD( "up02_d3.rom", 0x24000, 0x8000, 0xd43044f8 ) /* sprites 16x16 */
	ROM_LOAD( "up02_e3.rom", 0x2c000, 0x8000, 0x365ed2d8 )
	ROM_LOAD( "up02_g3.rom", 0x34000, 0x8000, 0x92579bf3 )

	ROM_LOAD( "p11",         0x3c000, 0x8000, 0x668b25a4 ) /* sprites 32x32 */
	ROM_LOAD( "p14",         0x44000, 0x8000, 0xa7031d4a )
	ROM_LOAD( "p12",         0x4c000, 0x8000, 0xf44e95fa )
	ROM_LOAD( "p15",         0x54000, 0x8000, 0x120d2450 )
	ROM_LOAD( "p13",         0x5c000, 0x8000, 0x980ca3d8 )
	ROM_LOAD( "p16",         0x64000, 0x8000, 0x9f820e8a )

	ROM_REGION(0x10000)					/* 64k for cpuB code */
	ROM_LOAD( "p2",          0x00000, 0x10000, 0x907fac83 )

	ROM_REGION(0x10000)					/* 64k for sound code */
	ROM_LOAD( "up03_k7.rom", 0x00000, 0x10000, 0x173fa571 )

	ROM_REGION(0xC00)					/* color PROM */
	ROM_LOAD( "up03_k1.rom", 0x000, 0x400, 0x10a2ce2b )
	ROM_LOAD( "up03_l2.rom", 0x400, 0x400, 0x99dc9792 )
	ROM_LOAD( "up03_l1.rom", 0x800, 0x400, 0xe7213160 )

	ROM_REGION(0x20000)					/* ADPCM Samples */
	ROM_LOAD( "up03_f5.rom", 0x00000, 0x10000, 0x5b43fe9f )
	ROM_LOAD( "up03_g5.rom", 0x10000, 0x10000, 0xaae30cd6 )

ROM_END


static int ikari_hiload(void)
{
	/* get RAM pointer (this game is multiCPU, we can't assume the global */
	/* RAM pointer is pointing to the right place) */
	unsigned char *RAM = Machine->memory_region[Machine->drv->cpu[0].memory_region];

	if (memcmp(&RAM[0xfc5f],"\x00\x30\x00",3) == 0)
	{
		void *f = osd_fopen(Machine->gamedrv->name,0,OSD_FILETYPE_HIGHSCORE,0);
		if (f)
		{
			osd_fread(f,&RAM[0xff0b], 0x50);
			osd_fclose(f);

			/* Copy the high score to the work ram as well */

			RAM[0xfc5f] = RAM[0xff0b];
			RAM[0xfc60] = RAM[0xff0c];
			RAM[0xfc61] = RAM[0xff0d];

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

static int victroad_hiload(void)
{
	/* get RAM pointer (this game is multiCPU, we can't assume the global */
	/* RAM pointer is pointing to the right place) */
	unsigned char *RAM = Machine->memory_region[Machine->drv->cpu[0].memory_region];

	if (memcmp(&RAM[0xfc5f],"\x00\x30\x00",3) == 0)
	{
		void *f = osd_fopen(Machine->gamedrv->name,0,OSD_FILETYPE_HIGHSCORE,0);
		if (f)
		{
			osd_fread(f,&RAM[0xff2c], 0x50);
			osd_fclose(f);

			/* Copy the high score to the work ram as well */

			RAM[0xfc5f] = RAM[0xff2c];
			RAM[0xfc60] = RAM[0xff2d];
			RAM[0xfc61] = RAM[0xff2e];

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

static void ikari_hisave(void)
{
	/* get RAM pointer (this game is multiCPU, we can't assume the global */
	/* RAM pointer is pointing to the right place) */

	unsigned char *RAM = Machine->memory_region[Machine->drv->cpu[0].memory_region];
	void *f = osd_fopen(Machine->gamedrv->name,0,OSD_FILETYPE_HIGHSCORE,1);

	/* The game clears hi score table after reset, */
	/* so we must be sure that hi score table was already loaded */

	if (memcmp(&RAM[0xfc2a],"\x48\x49",2) == 0)
	{
		if (f)
		{
			osd_fwrite(f,&RAM[0xff0b],0x50);
			osd_fclose(f);
		}
	}
}

static void victroad_hisave(void)
{
	/* get RAM pointer (this game is multiCPU, we can't assume the global */
	/* RAM pointer is pointing to the right place) */

	unsigned char *RAM = Machine->memory_region[Machine->drv->cpu[0].memory_region];
	void *f = osd_fopen(Machine->gamedrv->name,0,OSD_FILETYPE_HIGHSCORE,1);

	/* The game clears hi score table after reset, */
	/* so we must be sure that hi score table was already loaded */

	if (memcmp(&RAM[0xfc2a],"\x48\x49",2) == 0)
	{
		if (f)
		{
			osd_fwrite(f,&RAM[0xff2c],0x50);
			osd_fclose(f);
		}
	}
}

struct GameDriver ikari_driver =
{
	__FILE__,
	0,
	"ikari",
	"Ikari Warriors (US)",
	"1986",
	"SNK",
	"Jarek Parchanski (MAME driver)\n",
	0,
	&machine_driver,
	0,
	ikarius_rom,
	ikarius_init_data,0,
	0,
	0, /* sound prom */

	ikarius_input_ports,

	PROM_MEMORY_REGION(4), 0, 0,
	ORIENTATION_ROTATE_270,
	ikari_hiload,ikari_hisave
};

struct GameDriver ikarijp_driver =
{
	__FILE__,
	&ikari_driver,
	"ikarijp",
	"Ikari Warriors (Japan)",
	"1986",
	"SNK",
	"Jarek Parchanski (MAME driver)\n",
	0,
	&machine_driver,
	0,
	ikarijp_rom,
	ikarijp_init_data,0,
	0,
	0, /* sound prom */

	ikarijp_input_ports,

	PROM_MEMORY_REGION(4), 0, 0,
	ORIENTATION_ROTATE_270,
	ikari_hiload,ikari_hisave
};

struct GameDriver ikarijpb_driver =
{
	__FILE__,
	&ikari_driver,
	"ikarijpb",
	"Ikari Warriors (Japan bootleg)",
	"1986",
	"SNK",
	"Jarek Parchanski (MAME driver)\n",
	0,
	&machine_driver,
	0,
	ikarijpb_rom,
	ikarijpb_init_data,0,
	0,
	0, /* sound prom */

	ikarijp_input_ports,

	PROM_MEMORY_REGION(4), 0, 0,
	ORIENTATION_ROTATE_270,
	ikari_hiload,ikari_hisave
};


struct GameDriver victroad_driver =
{
	__FILE__,
	0,
	"victroad",
	"Victory Road",
	"1986",
	"SNK",
	"Jarek Parchanski (MAME driver)\n",
	0,
	&machine_driver,
	0,
	victroad_rom,
	ikarius_init_data,0,
	0,
	0, /* sound prom */

	victroad_input_ports,

	PROM_MEMORY_REGION(4), 0, 0,
	ORIENTATION_ROTATE_270,
	victroad_hiload,victroad_hisave
};

struct GameDriver dogosoke_driver =
{
	__FILE__,
	&victroad_driver,
	"dogosoke",
	"Dogo Soken",
	"1986",
	"SNK",
	"Jarek Parchanski (MAME driver)\n",
	0,
	&machine_driver,
	0,
	dogosoke_rom,
	ikarius_init_data,0,
	0,
	0, /* sound prom */

	victroad_input_ports,

	PROM_MEMORY_REGION(4), 0, 0,
	ORIENTATION_ROTATE_270,
	victroad_hiload,victroad_hisave
};

⌨️ 快捷键说明

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