diff options
Diffstat (limited to 'src/mame/drivers/asuka.c')
-rw-r--r-- | src/mame/drivers/asuka.c | 171 |
1 files changed, 83 insertions, 88 deletions
diff --git a/src/mame/drivers/asuka.c b/src/mame/drivers/asuka.c index b917d18037d..93ac7adadab 100644 --- a/src/mame/drivers/asuka.c +++ b/src/mame/drivers/asuka.c @@ -85,8 +85,8 @@ Stephh's notes (based on the game M68000 code and some tests) : * 'bonzeadu' : region = 0x0001 - These 3 games are 100% the same, only region differs ! - Coinage relies on the region (code at 0x02d344) : - * 0x0000 (Japan) and 0x0001 (US) use TAITO_COINAGE_JAPAN_OLD - * 0x0002 (World) uses TAITO_COINAGE_WORLD + * 0x0000 (Japan) and 0x0001 (US) use TAITO_COINAGE_JAPAN_OLD_LOC() + * 0x0002 (World) uses TAITO_COINAGE_WORLD_LOC() - Notice screen only if region = 0x0000 - Texts and game name rely on the region : * 0x0000 : most texts in Japanese - game name is "Jigoku Meguri" @@ -125,7 +125,7 @@ Stephh's notes (based on the game M68000 code and some tests) : 3) 'asuka*' - No region - - BOTH sets use TAITO_COINAGE_JAPAN_OLD for coinage, + - BOTH sets use TAITO_COINAGE_JAPAN_OLD_LOC() for coinage, so I wonder if the World version isn't a US version - Additional notice screen in 'asukaj' @@ -136,8 +136,8 @@ Stephh's notes (based on the game M68000 code and some tests) : - Sets : * 'mofflott' : region = 0x0001 - Coinage relies on the region (code at 0x0145ec) : - * 0x0001 (Japan) and 0x0002 (US ?) use TAITO_COINAGE_JAPAN_OLD - * 0x0003 (World) uses TAITO_COINAGE_WORLD + * 0x0001 (Japan) and 0x0002 (US ?) use TAITO_COINAGE_JAPAN_OLD_LOC() + * 0x0003 (World) uses TAITO_COINAGE_WORLD_LOC() - Notice screen only if region = 0x0001 @@ -153,9 +153,9 @@ Stephh's notes (based on the game M68000 code and some tests) : - These 5 games are 100% the same, only region differs ! However each version requires its specific texts - Coinage relies on the region (code at 0x0013d6) : - * 0x0001 (Japan) uses TAITO_COINAGE_JAPAN_OLD - * 0x0002 (US) uses TAITO_COINAGE_US - * 0x0003 (World) uses TAITO_COINAGE_WORLD + * 0x0001 (Japan) uses TAITO_COINAGE_JAPAN_OLD_LOC() + * 0x0002 (US) uses TAITO_COINAGE_US_LOC() + * 0x0003 (World) uses TAITO_COINAGE_WORLD_LOC() - Notice screen only if region = 0x0001 or region = 0x0002 - FBI logo only if region = 0x0002 - I can't tell about the Italian and Japanese versions, @@ -166,22 +166,22 @@ Stephh's notes (based on the game M68000 code and some tests) : - No region (not a Taito game anyway) - Coinage relies on "Coin Mode" Dip Switch (code at 0x0801c0) : - * "Mode A" uses TAITO_COINAGE_JAPAN_OLD - * "Mode B" uses TAITO_COINAGE_WORLD + * "Mode A" uses TAITO_COINAGE_JAPAN_OLD_LOC() + * "Mode B" uses TAITO_COINAGE_WORLD_LOC() - Notice screen 7) 'earthjkr' - No region (not a Taito game anyway) - - Game uses TAITO_COINAGE_JAPAN_OLD + - Game uses TAITO_COINAGE_JAPAN_OLD_LOC() - Notice screen only if "Copyright" Dip Switch set to "Visco" 8) 'eto' - No region (not a Taito game anyway) - - Game uses TAITO_COINAGE_JAPAN_OLD + - Game uses TAITO_COINAGE_JAPAN_OLD_LOC() - No notice screen @@ -202,6 +202,13 @@ Galmedes: Test mode has select1/2 stuck at on. Eto: $76d0 might be a protection check? It reads to and writes from the prog rom. Doesn't seem to cause problems though. +DIP locations verified for: + - bonzeadv (manual) + - cadash (manual) + - asuka (manual) + - mofflott (manual) + - galmedes (manual) + ***************************************************************************/ #include "driver.h" @@ -425,26 +432,26 @@ ADDRESS_MAP_END static INPUT_PORTS_START( bonzeadv ) /* 0x390000 -> 0x10cb7c ($b7c,A5) */ PORT_START_TAG("DSWA") - TAITO_MACHINE_COCKTAIL - TAITO_COINAGE_WORLD + TAITO_MACHINE_COCKTAIL_LOC(SWA) + TAITO_COINAGE_WORLD_LOC(SWA) /* 0x3b0000 -> 0x10cb7e ($b7e,A5) */ PORT_START_TAG("DSWB") - TAITO_DIFFICULTY - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Bonus_Life ) ) /* see notes */ - PORT_DIPSETTING( 0x08, "40k 100k" ) /* 300k 1000k 1500k 2000k 2500k 3000k 3500k 5000k */ - PORT_DIPSETTING( 0x0c, "50k 150k" ) /* 500k 1000k 2000k 3000k 4000k 5000k 6000k 7000k */ - PORT_DIPSETTING( 0x04, "60k 200k" ) /* 500k 1000k 2000k 3000k 4000k 5000k 6000k 7000k */ - PORT_DIPSETTING( 0x00, "80k 250k" ) /* 500k 1000k 2000k 3000k 4000k 5000k 6000k 7000k */ - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) + TAITO_DIFFICULTY_LOC(SWB) + PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SWB:3,4") /* see notes */ + PORT_DIPSETTING( 0x08, "40k 100k" ) /* 300k 1000k 1500k 2000k 2500k 3000k 3500k 5000k */ + PORT_DIPSETTING( 0x0c, "50k 150k" ) /* 500k 1000k 2000k 3000k 4000k 5000k 6000k 7000k */ + PORT_DIPSETTING( 0x04, "60k 200k" ) /* 500k 1000k 2000k 3000k 4000k 5000k 6000k 7000k */ + PORT_DIPSETTING( 0x00, "80k 250k" ) /* 500k 1000k 2000k 3000k 4000k 5000k 6000k 7000k */ + PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) PORT_DIPLOCATION("SWB:5,6") PORT_DIPSETTING( 0x20, "2" ) PORT_DIPSETTING( 0x30, "3" ) PORT_DIPSETTING( 0x10, "4" ) PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) + PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SWB:7") PORT_DIPSETTING( 0x40, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPUNUSED( 0x80, IP_ACTIVE_LOW ) /* see notes */ + PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SWB:8" ) /* see notes */ PORT_START_TAG("800007") PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) @@ -480,32 +487,32 @@ static INPUT_PORTS_START( jigkmgri ) PORT_INCLUDE(bonzeadv) PORT_MODIFY("DSWA") - TAITO_COINAGE_JAPAN_OLD + TAITO_COINAGE_JAPAN_OLD_LOC(SWA) INPUT_PORTS_END static INPUT_PORTS_START( asuka ) /* 0x400000 -> 0x103618 */ PORT_START_TAG("DSWA") - TAITO_MACHINE_NO_COCKTAIL - TAITO_COINAGE_JAPAN_OLD + TAITO_MACHINE_NO_COCKTAIL_LOC(SWA) + TAITO_COINAGE_JAPAN_OLD_LOC(SWA) /* 0x400002 -> 0x10361c */ PORT_START_TAG("DSWB") - TAITO_DIFFICULTY - PORT_DIPNAME( 0x0c, 0x0c, "Bonus Points" ) /* for each plane shot after each end of level boss */ + TAITO_DIFFICULTY_LOC(SWB) + PORT_DIPNAME( 0x0c, 0x0c, "Bonus Points" ) PORT_DIPLOCATION("SWB:3,4") /* for each plane shot after each end of level boss */ PORT_DIPSETTING( 0x0c, "500" ) PORT_DIPSETTING( 0x08, "1500" ) PORT_DIPSETTING( 0x04, "2000" ) PORT_DIPSETTING( 0x00, "2500" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) + PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) PORT_DIPLOCATION("SWB:5,6") PORT_DIPSETTING( 0x10, "1" ) PORT_DIPSETTING( 0x20, "2" ) PORT_DIPSETTING( 0x30, "3" ) PORT_DIPSETTING( 0x00, "4" ) - PORT_DIPNAME( 0xc0, 0x40, DEF_STR( Allow_Continue ) ) + PORT_DIPNAME( 0xc0, 0x80, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SWB:7,8") PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0xc0, "Up to Level 2" ) - PORT_DIPSETTING( 0x80, "Up to Level 3" ) + PORT_DIPSETTING( 0xc0, "Up To Level 2" ) + PORT_DIPSETTING( 0x80, "Up To Level 3" ) PORT_DIPSETTING( 0x40, DEF_STR( Yes ) ) PORT_START_TAG("IN0") @@ -530,41 +537,40 @@ static INPUT_PORTS_START( mofflott ) /* 0x400000 -> 0x100a92.b */ PORT_MODIFY("DSWA") - TAITO_MACHINE_COCKTAIL - TAITO_COINAGE_JAPAN_OLD + TAITO_MACHINE_COCKTAIL_LOC(SWA) /* 0x400002 -> 0x100a93.b */ PORT_MODIFY("DSWB") - TAITO_DIFFICULTY - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x0c, "20k and every 50k" ) - PORT_DIPSETTING( 0x08, "50k and every 100k" ) - PORT_DIPSETTING( 0x04, "100k only" ) + TAITO_DIFFICULTY_LOC(SWB) + PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SWB:3,4") + PORT_DIPSETTING( 0x0c, "20k And Every 50k" ) + PORT_DIPSETTING( 0x08, "50k And Every 100k" ) + PORT_DIPSETTING( 0x04, "100k Only" ) PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) + PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) PORT_DIPLOCATION("SWB:5,6") PORT_DIPSETTING( 0x00, "2" ) PORT_DIPSETTING( 0x30, "3" ) PORT_DIPSETTING( 0x10, "4" ) PORT_DIPSETTING( 0x20, "5" ) - PORT_DIPNAME( 0x40, 0x40, "Invulnerability (Cheat)") + PORT_DIPNAME( 0x40, 0x40, "Invulnerability (Cheat)") PORT_DIPLOCATION("SWB:7") PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, "Number of Keys" ) - PORT_DIPSETTING( 0x00, "14" ) /* Hard */ - PORT_DIPSETTING( 0x80, "16" ) /* Easy */ + PORT_DIPNAME( 0x80, 0x80, "Number Of Keys" ) PORT_DIPLOCATION("SWB:8") + PORT_DIPSETTING( 0x00, "B 14" ) /* Hard */ + PORT_DIPSETTING( 0x80, "A 16" ) /* Easy */ INPUT_PORTS_END /* different players and system inputs than 'asuka' */ static INPUT_PORTS_START( cadash ) /* 0x900000 -> 0x10317a ($317a,A5) */ PORT_START_TAG("DSWA") - TAITO_MACHINE_NO_COCKTAIL - TAITO_COINAGE_WORLD + TAITO_MACHINE_NO_COCKTAIL_LOC(SWA) + TAITO_COINAGE_WORLD_LOC(SWA) /* 0x900002 -> 0x10317c ($317c,A5) */ PORT_START_TAG("DSWB") - TAITO_DIFFICULTY - PORT_DIPNAME( 0x0c, 0x0c, "Starting Time" ) + TAITO_DIFFICULTY_LOC(SWB) + PORT_DIPNAME( 0x0c, 0x0c, "Starting Time" ) PORT_DIPLOCATION("SWB:3,4") PORT_DIPSETTING( 0x00, "5:00" ) PORT_DIPSETTING( 0x04, "6:00" ) PORT_DIPSETTING( 0x0c, "7:00" ) @@ -575,12 +581,12 @@ static INPUT_PORTS_START( cadash ) /* 3 8:00 */ /* 4 7:00 */ /* 5 9:00 */ - PORT_DIPNAME( 0x30, 0x30, "Added Time (after round clear)" ) + PORT_DIPNAME( 0x30, 0x30, "Added Time (after round clear)" ) PORT_DIPLOCATION("SWB:5,6") PORT_DIPSETTING( 0x00, "Default - 2:00" ) PORT_DIPSETTING( 0x10, "Default - 1:00" ) PORT_DIPSETTING( 0x30, "Default" ) PORT_DIPSETTING( 0x20, "Default + 1:00" ) - PORT_DIPNAME( 0xc0, 0xc0, "Communication Mode" ) + PORT_DIPNAME( 0xc0, 0xc0, "Communication Mode" ) PORT_DIPLOCATION("SWB:7,8") PORT_DIPSETTING( 0xc0, "Stand alone" ) PORT_DIPSETTING( 0x80, "Master" ) PORT_DIPSETTING( 0x00, "Slave" ) @@ -607,14 +613,14 @@ static INPUT_PORTS_START( cadashj ) PORT_INCLUDE(cadash) PORT_MODIFY("DSWA") - TAITO_COINAGE_JAPAN_OLD + TAITO_COINAGE_JAPAN_OLD_LOC(SWA) INPUT_PORTS_END static INPUT_PORTS_START( cadashu ) PORT_INCLUDE(cadash) PORT_MODIFY("DSWA") - TAITO_COINAGE_US + TAITO_COINAGE_US_LOC(SWA) INPUT_PORTS_END static INPUT_PORTS_START( galmedes ) @@ -622,8 +628,7 @@ static INPUT_PORTS_START( galmedes ) /* 0x400000 -> 0x100982 */ PORT_MODIFY("DSWA") - TAITO_MACHINE_NO_COCKTAIL - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) + PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SWA:5,6") PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) PORT_CONDITION("DSWB",0x80,PORTCOND_EQUALS,0x00) PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) ) PORT_CONDITION("DSWB",0x80,PORTCOND_EQUALS,0x00) PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSWB",0x80,PORTCOND_EQUALS,0x80) @@ -632,7 +637,7 @@ static INPUT_PORTS_START( galmedes ) PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSWB",0x80,PORTCOND_EQUALS,0x00) PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) PORT_CONDITION("DSWB",0x80,PORTCOND_EQUALS,0x80) PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSWB",0x80,PORTCOND_EQUALS,0x80) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) ) + PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SWA:7,8") PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSWB",0x80,PORTCOND_EQUALS,0x80) PORT_DIPSETTING( 0xc0, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSWB",0x80,PORTCOND_EQUALS,0x80) PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) PORT_CONDITION("DSWB",0x80,PORTCOND_EQUALS,0x80) @@ -644,67 +649,57 @@ static INPUT_PORTS_START( galmedes ) /* 0x400002 -> 0x100984 */ PORT_MODIFY("DSWB") - TAITO_DIFFICULTY - PORT_DIPNAME( 0x0c, 0x08, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x08, "every 100k" ) - PORT_DIPSETTING( 0x0c, "100k and every 200k" ) - PORT_DIPSETTING( 0x04, "150k and every 200k" ) - PORT_DIPSETTING( 0x00, "every 200k" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) + TAITO_DIFFICULTY_LOC(SWB) + PORT_DIPNAME( 0x0c, 0x08, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SWB:3,4") + PORT_DIPSETTING( 0x08, "Every 100k" ) + PORT_DIPSETTING( 0x0c, "100k And Every 200k" ) + PORT_DIPSETTING( 0x04, "150k And Every 200k" ) + PORT_DIPSETTING( 0x00, "Every 200k" ) + PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) PORT_DIPLOCATION("SWB:5,6") PORT_DIPSETTING( 0x20, "1" ) PORT_DIPSETTING( 0x10, "2" ) PORT_DIPSETTING( 0x30, "3" ) PORT_DIPSETTING( 0x00, "4" ) - PORT_DIPUNUSED( 0x40, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x80, 0x80, "Coin Mode" ) - PORT_DIPSETTING( 0x80, "Mode A (Japan)" ) /* Mode A is TAITO_COINAGE_JAPAN_OLD */ - PORT_DIPSETTING( 0x00, "Mode B (World)" ) /* Mode B is TAITO_COINAGE_WORLD */ + PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SWB:7" ) /* Listed as "Unused" */ + PORT_DIPNAME( 0x80, 0x80, "Coin Mode" ) PORT_DIPLOCATION("SWB:8") + PORT_DIPSETTING( 0x80, "Mode A (Japan)" ) /* Mode A is TAITO_COINAGE_JAPAN_OLD */ + PORT_DIPSETTING( 0x00, "Mode B (World)" ) /* Mode B is TAITO_COINAGE_WORLD */ INPUT_PORTS_END static INPUT_PORTS_START( earthjkr ) PORT_INCLUDE(asuka) - - /* 0x400000 -> 0x100932 */ - PORT_MODIFY("DSWA") - TAITO_MACHINE_NO_COCKTAIL - TAITO_COINAGE_JAPAN_OLD + /* DSWA: 0x400000 -> 0x100932 */ /* 0x400002 -> 0x1009842 */ PORT_MODIFY("DSWB") - TAITO_DIFFICULTY - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) ) + PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SWB:3,4") PORT_DIPSETTING( 0x00, "100k and 300k" ) PORT_DIPSETTING( 0x08, "100k only" ) PORT_DIPSETTING( 0x04, "200k only" ) PORT_DIPSETTING( 0x0c, DEF_STR( None ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) + PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) PORT_DIPLOCATION("SWB:5,6") PORT_DIPSETTING( 0x00, "1" ) PORT_DIPSETTING( 0x30, "2" ) PORT_DIPSETTING( 0x20, "3" ) PORT_DIPSETTING( 0x10, "4" ) - PORT_DIPNAME( 0x40, 0x40, "Copyright" ) /* code at 0x00b982 and 0x00dbce */ + PORT_DIPNAME( 0x40, 0x40, "Copyright" ) PORT_DIPLOCATION("SWB:7") /* code at 0x00b982 and 0x00dbce */ PORT_DIPSETTING( 0x40, "Visco" ) /* Japan notice screen ON */ PORT_DIPSETTING( 0x00, "Visco (distributed by Romstar)" ) /* Japan notice screen OFF */ - PORT_DIPUNUSED( 0x80, IP_ACTIVE_LOW ) + PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SWB:8" ) INPUT_PORTS_END static INPUT_PORTS_START( eto ) PORT_INCLUDE(asuka) - - /* 0x300000 -> 0x200914 */ - PORT_MODIFY("DSWA") - TAITO_MACHINE_NO_COCKTAIL - TAITO_COINAGE_JAPAN_OLD + /* DSWA: 0x300000 -> 0x200914 */ /* 0x300002 -> 0x200916 */ PORT_MODIFY("DSWB") - TAITO_DIFFICULTY - PORT_DIPUNUSED( 0x04, IP_ACTIVE_LOW ) - PORT_DIPUNUSED( 0x08, IP_ACTIVE_LOW ) - PORT_DIPUNUSED( 0x10, IP_ACTIVE_LOW ) - PORT_DIPUNUSED( 0x20, IP_ACTIVE_LOW ) /* value stored at 0x20090a but not read back */ - PORT_DIPUNUSED( 0x40, IP_ACTIVE_LOW ) - PORT_DIPUNUSED( 0x80, IP_ACTIVE_LOW ) + PORT_DIPUNUSED_DIPLOC( 0x04, 0x04, "SWB:3" ) + PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "SWB:4" ) + PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "SWB:5" ) + PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SWB:6" ) /* value stored at 0x20090a but not read back */ + PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SWB:7" ) + PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SWB:8" ) INPUT_PORTS_END |