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

📄 commando.c

📁 这个是延伸mame的在wince平台下的游戏模拟器的代码
💻 C
📖 第 1 页 / 共 2 页
字号:
			sound_readmem,sound_writemem,0,0,
			interrupt,4
		}
	},
	60, 500,	/* frames per second, vblank duration */
				/* vblank duration is crucial to get proper sprite/background alignment */
	1,	/* 1 CPU slice per frame - interleaving is forced when a sound command is written */
	0,

	/* video hardware */
	32*8, 32*8, { 0*8, 32*8-1, 2*8, 30*8-1 },
	gfxdecodeinfo,
	256,16*4+4*16+16*8,
	commando_vh_convert_color_prom,

	VIDEO_TYPE_RASTER,
	0,
	commando_vh_start,
	commando_vh_stop,
	commando_vh_screenrefresh,

	/* sound hardware */
	0,0,0,0,
	{
		{
			SOUND_YM2203,
			&ym2203_interface
		}
	}
};



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

  Game driver(s)

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

ROM_START( commando_rom )
	ROM_REGION(0x1c000)	/* 64k for code */
	ROM_LOAD( "m09_cm04.bin", 0x0000, 0x8000, 0x8438b694 )
	ROM_LOAD( "m08_cm03.bin", 0x8000, 0x4000, 0x35486542 )

	ROM_REGION_DISPOSE(0x34000)	/* temporary space for graphics (disposed after conversion) */
	ROM_LOAD( "d05_vt01.bin", 0x00000, 0x4000, 0x505726e0 )	/* characters */
	ROM_LOAD( "a05_vt11.bin", 0x04000, 0x4000, 0x7b2e1b48 )	/* tiles */
	ROM_LOAD( "a06_vt12.bin", 0x08000, 0x4000, 0x81b417d3 )
	ROM_LOAD( "a07_vt13.bin", 0x0c000, 0x4000, 0x5612dbd2 )
	ROM_LOAD( "a08_vt14.bin", 0x10000, 0x4000, 0x2b2dee36 )
	ROM_LOAD( "a09_vt15.bin", 0x14000, 0x4000, 0xde70babf )
	ROM_LOAD( "a10_vt16.bin", 0x18000, 0x4000, 0x14178237 )
	ROM_LOAD( "e07_vt05.bin", 0x1c000, 0x4000, 0x79f16e3d )	/* sprites */
	ROM_LOAD( "e08_vt06.bin", 0x20000, 0x4000, 0x26fee521 )
	ROM_LOAD( "e09_vt07.bin", 0x24000, 0x4000, 0xca88bdfd )
	ROM_LOAD( "h07_vt08.bin", 0x28000, 0x4000, 0x2019c883 )
	ROM_LOAD( "h08_vt09.bin", 0x2c000, 0x4000, 0x98703982 )
	ROM_LOAD( "h09_vt10.bin", 0x30000, 0x4000, 0xf069d2f8 )

	ROM_REGION(0x0300)	/* color PROMs */
	ROM_LOAD( "01d_vtb1.bin", 0x0000, 0x0100, 0x3aba15a1 )
	ROM_LOAD( "02d_vtb2.bin", 0x0100, 0x0100, 0x88865754 )
	ROM_LOAD( "03d_vtb3.bin", 0x0200, 0x0100, 0x4c14c3f6 )

	ROM_REGION(0x10000)	/* 64k for the audio CPU */
	ROM_LOAD( "f09_cm02.bin", 0x0000, 0x4000, 0xf9cc4a74 )
ROM_END

ROM_START( commandu_rom )
	ROM_REGION(0x1c000)	/* 64k for code */
	ROM_LOAD( "u4-f",         0x0000, 0x8000, 0xa6118935 )
	ROM_LOAD( "u3-f",         0x8000, 0x4000, 0x24f49684 )

	ROM_REGION_DISPOSE(0x34000)	/* temporary space for graphics (disposed after conversion) */
	ROM_LOAD( "d05_vt01.bin", 0x00000, 0x4000, 0x505726e0 )	/* characters */
	ROM_LOAD( "a05_vt11.bin", 0x04000, 0x4000, 0x7b2e1b48 )	/* tiles */
	ROM_LOAD( "a06_vt12.bin", 0x08000, 0x4000, 0x81b417d3 )
	ROM_LOAD( "a07_vt13.bin", 0x0c000, 0x4000, 0x5612dbd2 )
	ROM_LOAD( "a08_vt14.bin", 0x10000, 0x4000, 0x2b2dee36 )
	ROM_LOAD( "a09_vt15.bin", 0x14000, 0x4000, 0xde70babf )
	ROM_LOAD( "a10_vt16.bin", 0x18000, 0x4000, 0x14178237 )
	ROM_LOAD( "e07_vt05.bin", 0x1c000, 0x4000, 0x79f16e3d )	/* sprites */
	ROM_LOAD( "e08_vt06.bin", 0x20000, 0x4000, 0x26fee521 )
	ROM_LOAD( "e09_vt07.bin", 0x24000, 0x4000, 0xca88bdfd )
	ROM_LOAD( "h07_vt08.bin", 0x28000, 0x4000, 0x2019c883 )
	ROM_LOAD( "h08_vt09.bin", 0x2c000, 0x4000, 0x98703982 )
	ROM_LOAD( "h09_vt10.bin", 0x30000, 0x4000, 0xf069d2f8 )

	ROM_REGION(0x0300)	/* color PROMs */
	ROM_LOAD( "01d_vtb1.bin", 0x0000, 0x0100, 0x3aba15a1 )
	ROM_LOAD( "02d_vtb2.bin", 0x0100, 0x0100, 0x88865754 )
	ROM_LOAD( "03d_vtb3.bin", 0x0200, 0x0100, 0x4c14c3f6 )

	ROM_REGION(0x10000)	/* 64k for the audio CPU */
	ROM_LOAD( "f09_cm02.bin", 0x0000, 0x4000, 0xf9cc4a74 )
ROM_END

ROM_START( commandj_rom )
	ROM_REGION(0x1c000)	/* 64k for code */
	ROM_LOAD( "09m_so04.bin", 0x0000, 0x8000, 0xd3f2bfb3 )
	ROM_LOAD( "08m_so03.bin", 0x8000, 0x4000, 0xed01f472 )

	ROM_REGION_DISPOSE(0x34000)	/* temporary space for graphics (disposed after conversion) */
	ROM_LOAD( "d05_vt01.bin", 0x00000, 0x4000, 0x505726e0 )	/* characters */
	ROM_LOAD( "a05_vt11.bin", 0x04000, 0x4000, 0x7b2e1b48 )	/* tiles */
	ROM_LOAD( "a06_vt12.bin", 0x08000, 0x4000, 0x81b417d3 )
	ROM_LOAD( "a07_vt13.bin", 0x0c000, 0x4000, 0x5612dbd2 )
	ROM_LOAD( "a08_vt14.bin", 0x10000, 0x4000, 0x2b2dee36 )
	ROM_LOAD( "a09_vt15.bin", 0x14000, 0x4000, 0xde70babf )
	ROM_LOAD( "a10_vt16.bin", 0x18000, 0x4000, 0x14178237 )
	ROM_LOAD( "e07_vt05.bin", 0x1c000, 0x4000, 0x79f16e3d )	/* sprites */
	ROM_LOAD( "e08_vt06.bin", 0x20000, 0x4000, 0x26fee521 )
	ROM_LOAD( "e09_vt07.bin", 0x24000, 0x4000, 0xca88bdfd )
	ROM_LOAD( "h07_vt08.bin", 0x28000, 0x4000, 0x2019c883 )
	ROM_LOAD( "h08_vt09.bin", 0x2c000, 0x4000, 0x98703982 )
	ROM_LOAD( "h09_vt10.bin", 0x30000, 0x4000, 0xf069d2f8 )

	ROM_REGION(0x0300)	/* color PROMs */
	ROM_LOAD( "01d_vtb1.bin", 0x0000, 0x0100, 0x3aba15a1 )
	ROM_LOAD( "02d_vtb2.bin", 0x0100, 0x0100, 0x88865754 )
	ROM_LOAD( "03d_vtb3.bin", 0x0200, 0x0100, 0x4c14c3f6 )

	ROM_REGION(0x10000)	/* 64k for the audio CPU */
	ROM_LOAD( "09f_so02.bin", 0x0000, 0x4000, 0xca20aca5 )
ROM_END



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


	/* the first opcode is not encrypted */
	ROM[0] = RAM[0];
	for (A = 1;A < 0xc000;A++)
	{
		int src;

		src = RAM[A];
		ROM[A] = src ^ (src & 0xee) ^ ((src & 0xe0) >> 4) ^ ((src & 0x0e) << 4);
	}
}



static int 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[0xee00],"\x00\x50\x00",3) == 0 &&
			memcmp(&RAM[0xee4e],"\x00\x08\x00",3) == 0 &&
			memcmp(&RAM[0xee97],"\x00\x50\x00",3) == 0)	/* high score */
	{
		void *f;


		if ((f = osd_fopen(Machine->gamedrv->name,0,OSD_FILETYPE_HIGHSCORE,0)) != 0)
		{
			osd_fread(f,&RAM[0xee00],13*7);
			RAM[0xee97] = RAM[0xee00];
			RAM[0xee98] = RAM[0xee01];
			RAM[0xee99] = RAM[0xee02];
			osd_fclose(f);
		}

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



static void 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[0xee00],13*7);
		osd_fclose(f);
		RAM[0xee01]=0;
	}
}



struct GameDriver commando_driver =
{
	__FILE__,
	0,
	"commando",
	"Commando (World)",
	"1985",
	"Capcom",
	"Paul Johnson (hardware info)\nNicola Salmoria (MAME driver)",
	0,
	&machine_driver,
	0,

	commando_rom,
	0, commando_decode,
	0,
	0,	/* sound_prom */

	input_ports,

	PROM_MEMORY_REGION(2), 0, 0,
	ORIENTATION_ROTATE_90,

	hiload, hisave
};

struct GameDriver commandu_driver =
{
	__FILE__,
	&commando_driver,
	"commandu",
	"Commando (US)",
	"1985",
	"Capcom (Data East USA license)",
	"Paul Johnson (hardware info)\nNicola Salmoria (MAME driver)",
	0,
	&machine_driver,
	0,

	commandu_rom,
	0, commando_decode,
	0,
	0,	/* sound_prom */

	input_ports,

	PROM_MEMORY_REGION(2), 0, 0,
	ORIENTATION_ROTATE_90,

	hiload, hisave
};

struct GameDriver commandj_driver =
{
	__FILE__,
	&commando_driver,
	"commandj",
	"Senjo no Ookami",
	"1985",
	"Capcom",
	"Paul Johnson (hardware info)\nNicola Salmoria (MAME driver)",
	0,
	&machine_driver,
	0,

	commandj_rom,
	0, commando_decode,
	0,
	0,	/* sound_prom */

	input_ports,

	PROM_MEMORY_REGION(2), 0, 0,
	ORIENTATION_ROTATE_90,

	hiload, hisave
};

⌨️ 快捷键说明

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