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

📄 tempest.c

📁 这个是延伸mame的在wince平台下的游戏模拟器的代码
💻 C
📖 第 1 页 / 共 2 页
字号:
	PORT_DIPSETTING(    0x00, "1 Credit" )
	PORT_DIPSETTING(    0x01, "2 Credit" )
	PORT_DIPNAME( 0x06, 0x00, "Language", IP_KEY_NONE)
	PORT_DIPSETTING(    0x00, "English" )
	PORT_DIPSETTING(    0x02, "French" )
	PORT_DIPSETTING(    0x04, "German" )
	PORT_DIPSETTING(    0x06, "Spanish" )
	PORT_DIPNAME( 0x38, 0x00, "Bonus Life", IP_KEY_NONE )
	PORT_DIPSETTING(    0x08, "10000" )
	PORT_DIPSETTING(    0x00, "20000" )
	PORT_DIPSETTING(    0x10, "30000" )
	PORT_DIPSETTING(    0x18, "40000" )
	PORT_DIPSETTING(    0x20, "50000" )
	PORT_DIPSETTING(    0x28, "60000" )
	PORT_DIPSETTING(    0x30, "70000" )
	PORT_DIPSETTING(    0x38, "None" )
	PORT_DIPNAME( 0xc0, 0x00, "Lives", IP_KEY_NONE )
	PORT_DIPSETTING(    0xc0, "2" )
	PORT_DIPSETTING(    0x00, "3" )
	PORT_DIPSETTING(    0x40, "4" )
	PORT_DIPSETTING(    0x80, "5" )
INPUT_PORTS_END




static unsigned char color_prom[] = { VEC_PAL_COLOR };



static struct POKEYinterface pokey_interface =
{
	2,	/* 2 chips */
	1500000,	/* 1.5 MHz??? */
	50,
	POKEY_DEFAULT_GAIN,
	NO_CLIP,
	/* The 8 pot handlers */
	{ 0, 0 },
	{ 0, 0 },
	{ 0, 0 },
	{ 0, 0 },
	{ 0, 0 },
	{ 0, 0 },
	{ 0, 0 },
	{ 0, 0 },
	/* The allpot handler */
	{ input_port_1_r, input_port_2_r },
};



static struct MachineDriver machine_driver =
{
	/* basic machine hardware */
	{
		{
			CPU_M6502,
			1500000,	/* 1.5 Mhz */
			0,
			readmem,writemem,0,0,
			interrupt,4 /* 4.1ms */
		}
	},
	60, 0,	/* frames per second, vblank duration (vector game, so no vblank) */
	1,
	0,

	/* video hardware */
	320, 240, { 0, 580, 0, 540 },
	0,
	256,256,
	avg_init_colors,

	VIDEO_TYPE_VECTOR,
	0,
	avg_start_tempest,
	avg_stop,
	avg_screenrefresh,

	/* sound hardware */
	0,0,0,0,
	{
		{
			SOUND_POKEY,
			&pokey_interface
		}
	}
};


/* Tempest Tube uses a slightly different visual area */
static struct MachineDriver tempest_tube_machine_driver =
{
	/* basic machine hardware */
	{
		{
			CPU_M6502,
			1500000,	/* 1.5 Mhz */
			0,
			readmem,writemem,0,0,
			interrupt,4 /* 4.1ms */
		}
	},
	60, 0,	/* frames per second, vblank duration (vector game, so no vblank) */
	1,
	0,

	/* video hardware */
	320, 240, { 0, 600, 0, 580 },
	0,
	256,256,
	avg_init_colors,

	VIDEO_TYPE_VECTOR,
	0,
	avg_start_tempest,
	avg_stop,
	avg_screenrefresh,

	/* sound hardware */
	0,0,0,0,
	{
		{
			SOUND_POKEY,
			&pokey_interface
		}
	}
};


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

  Game driver(s)

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

/*
 * Tempest now uses the EAROM routines to load/save scores.
 * Just in case, here is a snippet of the old code:
 * if (memcmp(&RAM[0x0606],"\x07\x04\x01",3))
 *	osd_fread(f,&RAM[0x0600],0x200);
 */


ROM_START( tempest_rom ) /* rev 3 */
	ROM_REGION(0x10000)	/* 64k for code */
	ROM_LOAD( "136002.113",   0x9000, 0x0800, 0x65d61fe7 )
	ROM_LOAD( "136002.114",   0x9800, 0x0800, 0x11077375 )
	ROM_LOAD( "136002.115",   0xa000, 0x0800, 0xf3e2827a )
	ROM_LOAD( "136002.316",   0xa800, 0x0800, 0xaeb0f7e9 )
	ROM_LOAD( "136002.217",   0xb000, 0x0800, 0xef2eb645 )
	ROM_LOAD( "136002.118",   0xb800, 0x0800, 0xbeb352ab )
	ROM_LOAD( "136002.119",   0xc000, 0x0800, 0xa4de050f )
	ROM_LOAD( "136002.120",   0xc800, 0x0800, 0x35619648 )
	ROM_LOAD( "136002.121",   0xd000, 0x0800, 0x73d38e47 )
	ROM_LOAD( "136002.222",   0xd800, 0x0800, 0x707bd5c3 )
	ROM_RELOAD(             0xf800, 0x0800 ) /* for reset/interrupt vectors */
	/* Mathbox ROMs */
	ROM_LOAD( "136002.123",   0x3000, 0x0800, 0x29f7e937 )
	ROM_LOAD( "136002.124",   0x3800, 0x0800, 0xc16ec351 )
ROM_END

ROM_START( tempest1_rom ) /* rev 1 */
	ROM_REGION(0x10000)	/* 64k for code */
	ROM_LOAD( "136002.113",   0x9000, 0x0800, 0x65d61fe7 )
	ROM_LOAD( "136002.114",   0x9800, 0x0800, 0x11077375 )
	ROM_LOAD( "136002.115",   0xa000, 0x0800, 0xf3e2827a )
	ROM_LOAD( "136002.116",   0xa800, 0x0800, 0x7356896c )
	ROM_LOAD( "136002.117",   0xb000, 0x0800, 0x55952119 )
	ROM_LOAD( "136002.118",   0xb800, 0x0800, 0xbeb352ab )
	ROM_LOAD( "136002.119",   0xc000, 0x0800, 0xa4de050f )
	ROM_LOAD( "136002.120",   0xc800, 0x0800, 0x35619648 )
	ROM_LOAD( "136002.121",   0xd000, 0x0800, 0x73d38e47 )
	ROM_LOAD( "136002.122",   0xd800, 0x0800, 0x796a9918 )
	ROM_RELOAD(             0xf800, 0x0800 ) /* for reset/interrupt vectors */
	/* Mathbox ROMs */
	ROM_LOAD( "136002.123",   0x3000, 0x0800, 0x29f7e937 )
	ROM_LOAD( "136002.124",   0x3800, 0x0800, 0xc16ec351 )
ROM_END

ROM_START( tempest2_rom ) /* rev 2 */
	ROM_REGION(0x10000)	/* 64k for code */
	ROM_LOAD( "136002.113",   0x9000, 0x0800, 0x65d61fe7 )
	ROM_LOAD( "136002.114",   0x9800, 0x0800, 0x11077375 )
	ROM_LOAD( "136002.115",   0xa000, 0x0800, 0xf3e2827a )
	ROM_LOAD( "136002.116",   0xa800, 0x0800, 0x7356896c )
	ROM_LOAD( "136002.217",   0xb000, 0x0800, 0xef2eb645 )
	ROM_LOAD( "136002.118",   0xb800, 0x0800, 0xbeb352ab )
	ROM_LOAD( "136002.119",   0xc000, 0x0800, 0xa4de050f )
	ROM_LOAD( "136002.120",   0xc800, 0x0800, 0x35619648 )
	ROM_LOAD( "136002.121",   0xd000, 0x0800, 0x73d38e47 )
	ROM_LOAD( "136002.222",   0xd800, 0x0800, 0x707bd5c3 )
	ROM_RELOAD(             0xf800, 0x0800 ) /* for reset/interrupt vectors */
	/* Mathbox ROMs */
	ROM_LOAD( "136002.123",   0x3000, 0x0800, 0x29f7e937 )
	ROM_LOAD( "136002.124",   0x3800, 0x0800, 0xc16ec351 )
ROM_END

ROM_START( temptube_rom )
	ROM_REGION(0x10000)	/* 64k for code */
	ROM_LOAD( "136002.113",   0x9000, 0x0800, 0x65d61fe7 )
	ROM_LOAD( "136002.114",   0x9800, 0x0800, 0x11077375 )
	ROM_LOAD( "136002.115",   0xa000, 0x0800, 0xf3e2827a )
	ROM_LOAD( "136002.316",   0xa800, 0x0800, 0xaeb0f7e9 )
	ROM_LOAD( "136002.217",   0xb000, 0x0800, 0xef2eb645 )
	ROM_LOAD( "tube.118",     0xb800, 0x0800, 0xcefb03f0 )
	ROM_LOAD( "136002.119",   0xc000, 0x0800, 0xa4de050f )
	ROM_LOAD( "136002.120",   0xc800, 0x0800, 0x35619648 )
	ROM_LOAD( "136002.121",   0xd000, 0x0800, 0x73d38e47 )
	ROM_LOAD( "136002.222",   0xd800, 0x0800, 0x707bd5c3 )
	ROM_RELOAD(             0xf800, 0x0800 ) /* for reset/interrupt vectors */
	/* Mathbox ROMs */
	ROM_LOAD( "136002.123",   0x3000, 0x0800, 0x29f7e937 )
	ROM_LOAD( "136002.124",   0x3800, 0x0800, 0xc16ec351 )
ROM_END

#if 0 /* identical to tempest_rom, only different rom sizes */
ROM_START( tempest3_rom )
	ROM_REGION(0x10000)	/* 64k for code */
	ROM_LOAD( "tempest.x",    0x9000, 0x1000, 0x0 )
	ROM_LOAD( "tempest.1",    0xa000, 0x1000, 0x0 )
	ROM_LOAD( "tempest.3",    0xb000, 0x1000, 0x0 )
	ROM_LOAD( "tempest.5",    0xc000, 0x1000, 0x0 )
	ROM_LOAD( "tempest.7",    0xd000, 0x1000, 0x0 )
	ROM_RELOAD(            0xf000, 0x1000 )	/* for reset/interrupt vectors */
	/* Mathbox ROMs */
	ROM_LOAD( "tempest.np3",  0x3000, 0x1000, 0x0 )
ROM_END
#endif

struct GameDriver tempest_driver =
{
	__FILE__,
	0,
	"tempest",
	"Tempest (rev 3)",
	"1980",
	"Atari",
	"Brad Oliver (MAME driver)\n"VECTOR_TEAM"Keith Gerdes (Pokey protection)",
	0,
	&machine_driver,
	0,

	tempest_rom,
	0, 0,
	0,
	0,	/* sound_prom */

	input_ports,

	color_prom, 0, 0,
	ORIENTATION_DEFAULT,

	atari_vg_earom_load, atari_vg_earom_save
};

struct GameDriver tempest1_driver =
{
	__FILE__,
	&tempest_driver,
	"tempest1",
	"Tempest (rev 1)",
	"1980",
	"Atari",
	"Brad Oliver (MAME driver)\n"VECTOR_TEAM"Keith Gerdes (Pokey protection)",
	0,
	&machine_driver,
	0,

	tempest1_rom,
	0, 0,
	0,
	0,	/* sound_prom */

	input_ports,

	color_prom, 0, 0,
	ORIENTATION_DEFAULT,

	atari_vg_earom_load, atari_vg_earom_save
};

struct GameDriver tempest2_driver =
{
	__FILE__,
	&tempest_driver,
	"tempest2",
	"Tempest (rev 2)",
	"1980",
	"Atari",
	"Brad Oliver (MAME driver)\n"VECTOR_TEAM"Keith Gerdes (Pokey protection)",
	0,
	&machine_driver,
	0,

	tempest2_rom,
	0, 0,
	0,
	0,	/* sound_prom */

	input_ports,

	color_prom, 0, 0,
	ORIENTATION_DEFAULT,

	atari_vg_earom_load, atari_vg_earom_save
};

struct GameDriver temptube_driver =
{
	__FILE__,
	&tempest_driver,
	"temptube",
	"Tempest Tubes",
	"1980",
	"hack",
	"Brad Oliver (MAME driver)\n"VECTOR_TEAM"Keith Gerdes (Pokey protection)",
	0,
	&tempest_tube_machine_driver,
	0,

	temptube_rom,
	0, 0,
	0,
	0,	/* sound_prom */

	input_ports,

	color_prom, 0, 0,
	ORIENTATION_DEFAULT,

	atari_vg_earom_load, atari_vg_earom_save
};

⌨️ 快捷键说明

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