cleanup driver_init

This commit is contained in:
Michaël Banaan Ananas 2011-09-01 16:24:00 +00:00
parent 17926069b5
commit 558a175be2

View File

@ -569,7 +569,7 @@ static READ32_HANDLER( keycus_c443_r )
{ {
data = ( data & 0x0000ffff ) | 0x56580000; data = ( data & 0x0000ffff ) | 0x56580000;
} }
if( ( data & 0xffff0000 ) == 0xa9880000 ) /* ptblank2a */ if( ( data & 0xffff0000 ) == 0xa9880000 ) /* ptblank2ua */
{ {
data = ( data & 0x0000ffff ) | 0xc4430000; data = ( data & 0x0000ffff ) | 0xc4430000;
} }
@ -844,63 +844,19 @@ static INTERRUPT_GEN( c76_interrupt )
} }
} }
static const struct
{
const char *s_name;
read32_space_func keycus_r;
const char *keycus_r_name;
int n_daughterboard;
} namcos11_config_table[] =
{
{ "tekken", FUNC_NULL, 32 },
{ "tekkenac", FUNC_NULL, 32 },
{ "tekkenab", FUNC_NULL, 32 },
{ "tekkenjbc", FUNC_NULL, 32 },
{ "tekken2", FUNC(keycus_c406_r), 32 },
{ "tekken2ub", FUNC(keycus_c406_r), 32 },
{ "tekken2ab", FUNC(keycus_c406_r), 32 },
{ "tekken2aa", FUNC(keycus_c406_r), 32 },
{ "souledge", FUNC(keycus_c409_r), 32 },
{ "souledgeuc", FUNC(keycus_c409_r), 32 },
{ "souledgeua", FUNC(keycus_c409_r), 32 },
{ "souledgeaa", FUNC(keycus_c409_r), 32 },
{ "souledgeja", FUNC(keycus_c409_r), 32 },
{ "dunkmnia", FUNC(keycus_c410_r), 32 },
{ "dunkmniajc", FUNC(keycus_c410_r), 32 },
{ "xevi3dg", FUNC(keycus_c430_r), 32 },
{ "primglex", FUNC(keycus_c411_r), 32 },
{ "danceyes", FUNC(keycus_c431_r), 32 },
{ "pocketrc", FUNC(keycus_c432_r), 32 },
{ "starswep", FUNC(keycus_c442_r), 0 },
{ "myangel3", FUNC(keycus_c443_r), 64 },
{ "ptblank2ua",FUNC(keycus_c443_r), 64 },
{ NULL, NULL }
};
static DRIVER_INIT( namcos11 ) static void namcos11_init_common(running_machine &machine, int n_daughterboard)
{ {
namcos11_state *state = machine.driver_data<namcos11_state>(); namcos11_state *state = machine.driver_data<namcos11_state>();
int n_game;
if( strcmp( machine.system().name, "pocketrc" ) == 0 )
{
machine.device("c76")->memory().space(AS_IO)->install_legacy_read_handler(M37710_ADC0_L, M37710_ADC0_L, FUNC(pocketrc_steer_r));
machine.device("c76")->memory().space(AS_IO)->install_legacy_read_handler(M37710_ADC1_L, M37710_ADC1_L, FUNC(pocketrc_gas_r));
}
psx_driver_init(machine); psx_driver_init(machine);
n_game = 0; if (!n_daughterboard)
while( namcos11_config_table[ n_game ].s_name != NULL )
{ {
if( strcmp( machine.system().name, namcos11_config_table[ n_game ].s_name ) == 0 ) machine.device("maincpu")->memory().space(AS_PROGRAM)->nop_write(0x1fa10020, 0x1fa1002f);
{ return;
if( namcos11_config_table[ n_game ].keycus_r != NULL )
{
machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler( 0x1fa20000, 0x1fa2ffff, namcos11_config_table[ n_game ].keycus_r, namcos11_config_table[ n_game ].keycus_r_name );
} }
if( namcos11_config_table[ n_game ].n_daughterboard != 0 )
{ // init banks
int bank; int bank;
UINT32 len = machine.region( "user2" )->bytes(); UINT32 len = machine.region( "user2" )->bytes();
UINT8 *rgn = machine.region( "user2" )->base(); UINT8 *rgn = machine.region( "user2" )->base();
@ -914,17 +870,17 @@ static DRIVER_INIT( namcos11 )
machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_bank(0x1f600000, 0x1f6fffff, "bank7" ); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_bank(0x1f600000, 0x1f6fffff, "bank7" );
machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_bank(0x1f700000, 0x1f7fffff, "bank8" ); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_bank(0x1f700000, 0x1f7fffff, "bank8" );
for( bank = 0; bank < 8; bank++ ) for (bank = 0; bank < 8; bank++)
{ {
memory_configure_bank(machine, bankname[bank], 0, len / ( 1024 * 1024 ), rgn, 1024 * 1024 ); memory_configure_bank(machine, bankname[bank], 0, len / ( 1024 * 1024 ), rgn, 1024 * 1024 );
memory_set_bank(machine, bankname[bank], 0 ); memory_set_bank(machine, bankname[bank], 0 );
} }
if( namcos11_config_table[ n_game ].n_daughterboard == 32 ) if (n_daughterboard == 32)
{ {
machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x1fa10020, 0x1fa1002f, FUNC(bankswitch_rom32_w) ); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x1fa10020, 0x1fa1002f, FUNC(bankswitch_rom32_w) );
} }
if( namcos11_config_table[ n_game ].n_daughterboard == 64 ) if (n_daughterboard == 64)
{ {
state->m_n_bankoffset = 0; state->m_n_bankoffset = 0;
machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x1f080000, 0x1f080003, FUNC(bankswitch_rom64_upper_w) ); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x1f080000, 0x1f080003, FUNC(bankswitch_rom64_upper_w) );
@ -932,21 +888,77 @@ static DRIVER_INIT( namcos11 )
machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x1fa10020, 0x1fa1002f, FUNC(bankswitch_rom64_w) ); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x1fa10020, 0x1fa1002f, FUNC(bankswitch_rom64_w) );
state->save_item( NAME(state->m_n_bankoffset) ); state->save_item( NAME(state->m_n_bankoffset) );
} }
} }
else
{ static DRIVER_INIT( tekken )
machine.device("maincpu")->memory().space(AS_PROGRAM)->nop_write(0x1fa10020, 0x1fa1002f); {
} namcos11_init_common(machine, 32);
break; }
}
n_game++; static DRIVER_INIT( tekken2 )
} {
machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler( 0x1fa20000, 0x1fa2ffff, FUNC(keycus_c406_r) );
namcos11_init_common(machine, 32);
}
static DRIVER_INIT( souledge )
{
machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler( 0x1fa20000, 0x1fa2ffff, FUNC(keycus_c409_r) );
namcos11_init_common(machine, 32);
}
static DRIVER_INIT( dunkmnia )
{
machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler( 0x1fa20000, 0x1fa2ffff, FUNC(keycus_c410_r) );
namcos11_init_common(machine, 32);
}
static DRIVER_INIT( primglex )
{
machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler( 0x1fa20000, 0x1fa2ffff, FUNC(keycus_c411_r) );
namcos11_init_common(machine, 32);
}
static DRIVER_INIT( xevi3dg )
{
machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler( 0x1fa20000, 0x1fa2ffff, FUNC(keycus_c430_r) );
namcos11_init_common(machine, 32);
}
static DRIVER_INIT( danceyes )
{
machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler( 0x1fa20000, 0x1fa2ffff, FUNC(keycus_c431_r) );
namcos11_init_common(machine, 32);
}
static DRIVER_INIT( pocketrc )
{
machine.device("c76")->memory().space(AS_IO)->install_legacy_read_handler(M37710_ADC0_L, M37710_ADC0_L, FUNC(pocketrc_steer_r));
machine.device("c76")->memory().space(AS_IO)->install_legacy_read_handler(M37710_ADC1_L, M37710_ADC1_L, FUNC(pocketrc_gas_r));
machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler( 0x1fa20000, 0x1fa2ffff, FUNC(keycus_c432_r) );
namcos11_init_common(machine, 32);
}
static DRIVER_INIT( starswep )
{
machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler( 0x1fa20000, 0x1fa2ffff, FUNC(keycus_c442_r) );
namcos11_init_common(machine, 0);
}
static DRIVER_INIT( myangel3 )
{
machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler( 0x1fa20000, 0x1fa2ffff, FUNC(keycus_c443_r) );
namcos11_init_common(machine, 64);
}
static DRIVER_INIT( ptblank2ua )
{
machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler( 0x1fa20000, 0x1fa2ffff, FUNC(keycus_c443_r) );
namcos11_init_common(machine, 64);
if( strcmp( machine.system().name, "ptblank2ua" ) == 0 )
{
machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x1f788000, 0x1f788003, FUNC(lightgun_w) ); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x1f788000, 0x1f788003, FUNC(lightgun_w) );
machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler (0x1f780000, 0x1f78000f, FUNC(lightgun_r) ); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler (0x1f780000, 0x1f78000f, FUNC(lightgun_r) );
}
} }
static MACHINE_RESET( namcos11 ) static MACHINE_RESET( namcos11 )
@ -1169,7 +1181,7 @@ static INPUT_PORTS_START( myangel3 )
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
INPUT_PORTS_END INPUT_PORTS_END
static INPUT_PORTS_START( ptblank2a ) static INPUT_PORTS_START( ptblank2ua )
PORT_INCLUDE( namcos11 ) PORT_INCLUDE( namcos11 )
PORT_MODIFY( "PLAYER1" ) PORT_MODIFY( "PLAYER1" )
@ -1795,25 +1807,25 @@ ROM_START( xevi3dg )
ROM_RELOAD( 0x800000, 0x400000 ) ROM_RELOAD( 0x800000, 0x400000 )
ROM_END ROM_END
GAME( 1994, tekken, 0, coh100, tekken, namcos11, ROT0, "Namco", "Tekken (World, TE4/VER.C)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1994, tekken, 0, coh100, tekken, tekken, ROT0, "Namco", "Tekken (World, TE4/VER.C)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
GAME( 1994, tekkenac, tekken, coh100, tekken, namcos11, ROT0, "Namco", "Tekken (Asia, TE2/VER.C)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1994, tekkenac, tekken, coh100, tekken, tekken, ROT0, "Namco", "Tekken (Asia, TE2/VER.C)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
GAME( 1994, tekkenab, tekken, coh100, tekken, namcos11, ROT0, "Namco", "Tekken (Asia, TE2/VER.B)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1994, tekkenab, tekken, coh100, tekken, tekken, ROT0, "Namco", "Tekken (Asia, TE2/VER.B)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
GAME( 1994, tekkenjb, tekken, coh100, tekken, namcos11, ROT0, "Namco", "Tekken (Japan, TE1/VER.B)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1994, tekkenjb, tekken, coh100, tekken, tekken, ROT0, "Namco", "Tekken (Japan, TE1/VER.B)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
GAME( 1996, tekken2, 0, coh110, tekken, namcos11, ROT0, "Namco", "Tekken 2 Ver.B (US, TES3/VER.D)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1996, tekken2, 0, coh110, tekken, tekken2, ROT0, "Namco", "Tekken 2 Ver.B (US, TES3/VER.D)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
GAME( 1995, tekken2ub, tekken2, coh100, tekken, namcos11, ROT0, "Namco", "Tekken 2 Ver.B (US, TES3/VER.B)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1995, tekken2ub, tekken2, coh100, tekken, tekken2, ROT0, "Namco", "Tekken 2 Ver.B (US, TES3/VER.B)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
GAME( 1995, tekken2ab, tekken2, coh100, tekken, namcos11, ROT0, "Namco", "Tekken 2 Ver.B (Asia, TES2/VER.B)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1995, tekken2ab, tekken2, coh100, tekken, tekken2, ROT0, "Namco", "Tekken 2 Ver.B (Asia, TES2/VER.B)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
GAME( 1995, tekken2aa, tekken2, coh100, tekken, namcos11, ROT0, "Namco", "Tekken 2 (Asia, TES2/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1995, tekken2aa, tekken2, coh100, tekken, tekken2, ROT0, "Namco", "Tekken 2 (Asia, TES2/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
GAME( 1996, souledge, 0, coh110, souledge, namcos11, ROT0, "Namco", "Soul Edge Ver. II (World, SO4/VER.C)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1996, souledge, 0, coh110, souledge, souledge, ROT0, "Namco", "Soul Edge Ver. II (World, SO4/VER.C)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
GAME( 1995, souledgeuc,souledge, coh110, souledge, namcos11, ROT0, "Namco", "Soul Edge Ver. II (US, SO3/VER.C)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1995, souledgeuc,souledge, coh110, souledge, souledge, ROT0, "Namco", "Soul Edge Ver. II (US, SO3/VER.C)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
GAME( 1995, souledgeua,souledge, coh110, souledge, namcos11, ROT0, "Namco", "Soul Edge (US, SO3/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1995, souledgeua,souledge, coh110, souledge, souledge, ROT0, "Namco", "Soul Edge (US, SO3/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
GAME( 1995, souledgeaa,souledge, coh110, souledge, namcos11, ROT0, "Namco", "Soul Edge (Asia, SO2/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1995, souledgeaa,souledge, coh110, souledge, souledge, ROT0, "Namco", "Soul Edge (Asia, SO2/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
GAME( 1995, souledgeja,souledge, coh110, souledge, namcos11, ROT0, "Namco", "Soul Edge (Japan, SO1/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1995, souledgeja,souledge, coh110, souledge, souledge, ROT0, "Namco", "Soul Edge (Japan, SO1/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
GAME( 1995, dunkmnia, 0, coh110, namcos11, namcos11, ROT0, "Namco", "Dunk Mania (Asia, DM2/VER.C)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1995, dunkmnia, 0, coh110, namcos11, dunkmnia, ROT0, "Namco", "Dunk Mania (Asia, DM2/VER.C)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
GAME( 1995, dunkmniajc,dunkmnia, coh110, namcos11, namcos11, ROT0, "Namco", "Dunk Mania (Japan, DM1/VER.C)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1995, dunkmniajc,dunkmnia, coh110, namcos11, dunkmnia, ROT0, "Namco", "Dunk Mania (Japan, DM1/VER.C)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
GAME( 1995, xevi3dg, 0, coh110, namcos11, namcos11, ROT0, "Namco", "Xevious 3D/G (Japan, XV31/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1995, xevi3dg, 0, coh110, namcos11, xevi3dg, ROT0, "Namco", "Xevious 3D/G (Japan, XV31/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
GAME( 1996, primglex, 0, coh110, tekken, namcos11, ROT0, "Namco", "Prime Goal EX (Japan, PG1/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1996, primglex, 0, coh110, tekken, primglex, ROT0, "Namco", "Prime Goal EX (Japan, PG1/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
GAME( 1996, danceyes, 0, coh110, namcos11, namcos11, ROT0, "Namco", "Dancing Eyes (Japan, DC1/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1996, danceyes, 0, coh110, namcos11, danceyes, ROT0, "Namco", "Dancing Eyes (Japan, DC1/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
GAME( 1996, pocketrc, 0, coh110, pocketrc, namcos11, ROT0, "Namco", "Pocket Racer (Japan, PKR1/VER.B)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1996, pocketrc, 0, coh110, pocketrc, pocketrc, ROT0, "Namco", "Pocket Racer (Japan, PKR1/VER.B)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
GAME( 1997, starswep, 0, coh110, namcos11, namcos11, ROT0, "Axela/Namco", "Star Sweep (Japan, STP1/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1997, starswep, 0, coh110, namcos11, starswep, ROT0, "Axela/Namco", "Star Sweep (Japan, STP1/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
GAME( 1998, myangel3, 0, coh110, myangel3, namcos11, ROT0, "Namco", "Kosodate Quiz My Angel 3 (Japan, KQT1/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1998, myangel3, 0, coh110, myangel3, myangel3, ROT0, "Namco", "Kosodate Quiz My Angel 3 (Japan, KQT1/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
GAME( 1999, ptblank2ua,ptblank2, coh110, ptblank2a,namcos11, ROT0, "Namco", "Point Blank 2 (US, GNB3/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1999, ptblank2ua,ptblank2, coh110, ptblank2ua,ptblank2ua,ROT0, "Namco", "Point Blank 2 (US, GNB3/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )