📄 tempest.c
字号:
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 + -