mirror of
https://github.com/holub/mame
synced 2025-05-22 13:48:55 +03:00
Fixed bug ID 01668 based on etabeta submission.
Checked inputs for all games but 'survival' (Dip Switches still need to be done), so now cocktail mode is correctly supported by 'pleiads' and its clones. Renamed sets : - falcona -> falconz - vautour2 -> vautourz
This commit is contained in:
parent
7800d2bb70
commit
0a3bdaa3ef
@ -51,7 +51,7 @@ static ADDRESS_MAP_START( phoenix_memory_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x5800, 0x5bff) AM_WRITE(phoenix_scroll_w)
|
||||
AM_RANGE(0x6000, 0x63ff) AM_WRITE(phoenix_sound_control_a_w)
|
||||
AM_RANGE(0x6800, 0x6bff) AM_WRITE(phoenix_sound_control_b_w)
|
||||
AM_RANGE(0x7000, 0x73ff) AM_READ(phoenix_input_port_0_r) /* IN0 or IN1 */
|
||||
AM_RANGE(0x7000, 0x73ff) AM_READ_PORT("IN0") /* IN0 or IN1 */
|
||||
AM_RANGE(0x7800, 0x7bff) AM_READ_PORT("DSW0") /* DSW */
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -62,7 +62,7 @@ static ADDRESS_MAP_START( pleiads_memory_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x5800, 0x5bff) AM_WRITE(phoenix_scroll_w)
|
||||
AM_RANGE(0x6000, 0x63ff) AM_WRITE(pleiads_sound_control_a_w)
|
||||
AM_RANGE(0x6800, 0x6bff) AM_WRITE(pleiads_sound_control_b_w)
|
||||
AM_RANGE(0x7000, 0x73ff) AM_READ(pleiads_input_port_0_r) /* IN0 or IN1 + protection */
|
||||
AM_RANGE(0x7000, 0x73ff) AM_READ_PORT("IN0") /* IN0 or IN1 + protection */
|
||||
AM_RANGE(0x7800, 0x7bff) AM_READ_PORT("DSW0") /* DSW */
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -80,25 +80,14 @@ ADDRESS_MAP_END
|
||||
|
||||
|
||||
static INPUT_PORTS_START( phoenix )
|
||||
PORT_START_TAG("IN0") /* IN0 */
|
||||
PORT_START_TAG("IN0")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START1 )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 )
|
||||
PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(player_input_r, 0)
|
||||
|
||||
PORT_START_TAG("IN1") /* IN1 */
|
||||
PORT_BIT( 0x07, IP_ACTIVE_LOW, IPT_SPECIAL ) /* comes from IN0 0-2 */
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_COCKTAIL
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL
|
||||
|
||||
PORT_START_TAG("DSW0") /* DSW0 */
|
||||
PORT_START_TAG("DSW0")
|
||||
PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION( "SW1:1,2" )
|
||||
PORT_DIPSETTING( 0x00, "3" )
|
||||
PORT_DIPSETTING( 0x01, "4" )
|
||||
@ -124,6 +113,16 @@ static INPUT_PORTS_START( phoenix )
|
||||
PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION( "SW1:!8" )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
|
||||
PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) )
|
||||
|
||||
PORT_START_TAG("CTRL") /* fake port for multiplexed controls */
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL PORT_CONDITION("CAB",0x01,PORTCOND_EQUALS,0x01)
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_COCKTAIL PORT_CONDITION("CAB",0x01,PORTCOND_EQUALS,0x01)
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL PORT_CONDITION("CAB",0x01,PORTCOND_EQUALS,0x01)
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL PORT_CONDITION("CAB",0x01,PORTCOND_EQUALS,0x01)
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( phoenixa )
|
||||
@ -148,6 +147,9 @@ INPUT_PORTS_END
|
||||
static INPUT_PORTS_START( phoenix3 )
|
||||
PORT_INCLUDE( phoenix )
|
||||
|
||||
PORT_MODIFY("IN0")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
|
||||
|
||||
PORT_MODIFY("DSW0")
|
||||
PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) PORT_DIPLOCATION( "SW1:5" )
|
||||
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
|
||||
@ -161,9 +163,14 @@ static INPUT_PORTS_START( phoenix3 )
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( condor )
|
||||
PORT_INCLUDE( phoenix )
|
||||
PORT_START_TAG("IN0")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START1 )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START2 )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN2 )
|
||||
PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(player_input_r, 0)
|
||||
|
||||
PORT_MODIFY("DSW0")
|
||||
PORT_START_TAG("DSW0")
|
||||
PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION( "SW1:1,2" )
|
||||
PORT_DIPSETTING( 0x00, "2" )
|
||||
PORT_DIPSETTING( 0x01, "3" )
|
||||
@ -183,9 +190,10 @@ static INPUT_PORTS_START( condor )
|
||||
PORT_DIPSETTING( 0x50, "Fast" )
|
||||
PORT_DIPSETTING( 0x60, "Faster" )
|
||||
PORT_DIPSETTING( 0x70, "Fastest" )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_VBLANK )
|
||||
|
||||
PORT_START_TAG("COINAGE")
|
||||
PORT_DIPNAME( 0x0f, 0x00, DEF_STR( Coin_B ) )
|
||||
PORT_START_TAG("DSW1")
|
||||
PORT_DIPNAME( 0x0f, 0x00, DEF_STR( Coin_B ) ) PORT_DIPLOCATION( "SW2:1,2,3,4" )
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) )
|
||||
PORT_DIPSETTING( 0x09, DEF_STR( 2C_2C ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
|
||||
@ -202,7 +210,7 @@ static INPUT_PORTS_START( condor )
|
||||
PORT_DIPSETTING( 0x05, DEF_STR( 1C_6C ) )
|
||||
PORT_DIPSETTING( 0x06, DEF_STR( 1C_7C ) )
|
||||
PORT_DIPSETTING( 0x07, DEF_STR( 1C_8C ) )
|
||||
PORT_DIPNAME( 0xf0, 0x00, DEF_STR( Coin_A ) )
|
||||
PORT_DIPNAME( 0xf0, 0x00, DEF_STR( Coin_A ) ) PORT_DIPLOCATION( "SW2:5,6,7,8" )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) )
|
||||
PORT_DIPSETTING( 0x90, DEF_STR( 2C_2C ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
|
||||
@ -219,9 +227,24 @@ static INPUT_PORTS_START( condor )
|
||||
PORT_DIPSETTING( 0x50, DEF_STR( 1C_6C ) )
|
||||
PORT_DIPSETTING( 0x60, DEF_STR( 1C_7C ) )
|
||||
PORT_DIPSETTING( 0x70, DEF_STR( 1C_8C ) )
|
||||
|
||||
PORT_START_TAG("CAB") /* fake port for non-memory mapped dip switch */
|
||||
PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION( "SW1:!8" )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
|
||||
PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) )
|
||||
|
||||
PORT_START_TAG("CTRL") /* fake port for multiplexed controls */
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON2 )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL PORT_CONDITION("CAB",0x01,PORTCOND_EQUALS,0x01)
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_COCKTAIL PORT_CONDITION("CAB",0x01,PORTCOND_EQUALS,0x01)
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL PORT_CONDITION("CAB",0x01,PORTCOND_EQUALS,0x01)
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_COCKTAIL PORT_CONDITION("CAB",0x01,PORTCOND_EQUALS,0x01)
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( falcona )
|
||||
static INPUT_PORTS_START( falconz )
|
||||
PORT_INCLUDE( phoenix )
|
||||
|
||||
PORT_MODIFY("DSW0")
|
||||
@ -246,7 +269,6 @@ static INPUT_PORTS_START( falcona )
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( 1C_1C ) )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
static INPUT_PORTS_START( nextfase )
|
||||
PORT_INCLUDE( phoenix )
|
||||
|
||||
@ -265,10 +287,10 @@ static INPUT_PORTS_START( nextfase )
|
||||
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x60, 0x00, DEF_STR( Coinage ) ) PORT_DIPLOCATION( "SW1:6,7" )
|
||||
PORT_DIPSETTING( 0x00, "1C/1C & 1C/2C" )
|
||||
PORT_DIPSETTING( 0x20, "2C/3C & 1C/3C" )
|
||||
PORT_DIPSETTING( 0x40, "1C/2C & 1C/4C" )
|
||||
PORT_DIPSETTING( 0x60, "2C/5C & 1C/5C" )
|
||||
PORT_DIPSETTING( 0x00, "A - 1C/1C B - 1C/2C" )
|
||||
PORT_DIPSETTING( 0x20, "A - 2C/3C B - 1C/3C" )
|
||||
PORT_DIPSETTING( 0x40, "A - 1C/2C B - 1C/4C" )
|
||||
PORT_DIPSETTING( 0x60, "A - 2C/5C B - 1C/5C" )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
@ -276,7 +298,7 @@ static INPUT_PORTS_START( pleiads )
|
||||
PORT_INCLUDE( phoenix )
|
||||
|
||||
PORT_MODIFY("IN0")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SPECIAL ) /* Protection. See 0x0552 */
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM(pleiads_protection_r, 0) /* Protection. See 0x0552 */
|
||||
|
||||
PORT_MODIFY("DSW0")
|
||||
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION( "SW1:7" )
|
||||
@ -304,6 +326,7 @@ static INPUT_PORTS_START( capitol )
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( On ) )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
static INPUT_PORTS_START( survival )
|
||||
PORT_START_TAG("IN0") /* IN0 */
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
|
||||
@ -749,7 +772,31 @@ ROM_START( vautour )
|
||||
ROM_LOAD( "mmi6301.ic41", 0x0100, 0x0100, CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) ) /* palette high bits */
|
||||
ROM_END
|
||||
|
||||
ROM_START( vautour2 )
|
||||
ROM_START( falconz )
|
||||
ROM_REGION( 0x10000, REGION_CPU1, 0 )
|
||||
ROM_LOAD( "f45.bin", 0x0000, 0x0800, CRC(9158b43b) SHA1(222cbcfb3f95d09bb90148813541c2613d8b7e1c) )
|
||||
ROM_LOAD( "f46.bin", 0x0800, 0x0800, CRC(22ddb600) SHA1(9606d11722261990c34b788baae5dc7516ba52d6) )
|
||||
ROM_LOAD( "f47.bin", 0x1000, 0x0800, CRC(cb2838d9) SHA1(332e339475b17d17eeb43a524c5cb3bf9818837a) )
|
||||
ROM_LOAD( "f48.bin", 0x1800, 0x0800, CRC(552cf57a) SHA1(d9d36495f0cb25c1648e0807c8d37daf49bbf0d4) )
|
||||
ROM_LOAD( "f49.bin", 0x2000, 0x0800, CRC(1ff3a982) SHA1(66fb39e7abdf7a9c6e2eb01d41cfe9429781d6aa) )
|
||||
ROM_LOAD( "f50.bin", 0x2800, 0x0800, CRC(8c83bff7) SHA1(3dfb090d7e3a9ae8da882b06e166c48555eaf77c) )
|
||||
ROM_LOAD( "f51.bin", 0x3000, 0x0800, CRC(805ec2e8) SHA1(7e56fc9990eb99512078e2b1e2874fb33b0aa05c) )
|
||||
ROM_LOAD( "f52.bin", 0x3800, 0x0800, CRC(33f3af63) SHA1(f2e2ebdec205360a6fa8ce4bc8cdf15b82b02728) )
|
||||
|
||||
ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE )
|
||||
ROM_LOAD( "ic23.3d", 0x0000, 0x0800, CRC(3c7e623f) SHA1(e7ff5fc371664af44785c079e92eeb2d8530187b) )
|
||||
ROM_LOAD( "ic24.4d", 0x0800, 0x0800, CRC(59916d3b) SHA1(71aec70a8e096ed1f0c2297b3ae7dca1b8ecc38d) )
|
||||
|
||||
ROM_REGION( 0x1000, REGION_GFX2, ROMREGION_DISPOSE )
|
||||
ROM_LOAD( "f39.bin", 0x0000, 0x0800, CRC(53c52eb0) SHA1(19624ca359996b77d3c65ef78a7af90eeb092377) )
|
||||
ROM_LOAD( "f40.bin", 0x0800, 0x0800, CRC(eba42f0f) SHA1(378282cb2c4e10c23179ae3c605ae7bf691150f6) )
|
||||
|
||||
ROM_REGION( 0x0200, REGION_PROMS, 0 )
|
||||
ROM_LOAD( "mmi6301.ic40", 0x0000, 0x0100, CRC(79350b25) SHA1(57411be4c1d89677f7919ae295446da90612c8a8) ) /* palette low bits */
|
||||
ROM_LOAD( "mmi6301.ic41", 0x0100, 0x0100, CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) ) /* palette high bits */
|
||||
ROM_END
|
||||
|
||||
ROM_START( vautourz )
|
||||
ROM_REGION( 0x10000, REGION_CPU1, 0 )
|
||||
ROM_LOAD( "vautour1.bin", 0x0000, 0x0800, CRC(a600f6a4) SHA1(f1aea5ec71da0d0664fb90b87602fe4c4eed2dbe) )
|
||||
ROM_LOAD( "vautour2.bin", 0x0800, 0x0800, CRC(3699b11a) SHA1(7122685cbfcd75898eaa68f8c5bf87c11df59a3b) )
|
||||
@ -821,30 +868,6 @@ ROM_START( griffon )
|
||||
ROM_LOAD( "mmi6301.ic41", 0x0100, 0x0100, CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) ) /* palette high bits */
|
||||
ROM_END
|
||||
|
||||
ROM_START( falcona )
|
||||
ROM_REGION( 0x10000, REGION_CPU1, 0 )
|
||||
ROM_LOAD( "f45.bin", 0x0000, 0x0800, CRC(9158b43b) SHA1(222cbcfb3f95d09bb90148813541c2613d8b7e1c) )
|
||||
ROM_LOAD( "f46.bin", 0x0800, 0x0800, CRC(22ddb600) SHA1(9606d11722261990c34b788baae5dc7516ba52d6) )
|
||||
ROM_LOAD( "f47.bin", 0x1000, 0x0800, CRC(cb2838d9) SHA1(332e339475b17d17eeb43a524c5cb3bf9818837a) )
|
||||
ROM_LOAD( "f48.bin", 0x1800, 0x0800, CRC(552cf57a) SHA1(d9d36495f0cb25c1648e0807c8d37daf49bbf0d4) )
|
||||
ROM_LOAD( "f49.bin", 0x2000, 0x0800, CRC(1ff3a982) SHA1(66fb39e7abdf7a9c6e2eb01d41cfe9429781d6aa) )
|
||||
ROM_LOAD( "f50.bin", 0x2800, 0x0800, CRC(8c83bff7) SHA1(3dfb090d7e3a9ae8da882b06e166c48555eaf77c) )
|
||||
ROM_LOAD( "f51.bin", 0x3000, 0x0800, CRC(805ec2e8) SHA1(7e56fc9990eb99512078e2b1e2874fb33b0aa05c) )
|
||||
ROM_LOAD( "f52.bin", 0x3800, 0x0800, CRC(33f3af63) SHA1(f2e2ebdec205360a6fa8ce4bc8cdf15b82b02728) )
|
||||
|
||||
ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE )
|
||||
ROM_LOAD( "ic23.3d", 0x0000, 0x0800, CRC(3c7e623f) SHA1(e7ff5fc371664af44785c079e92eeb2d8530187b) )
|
||||
ROM_LOAD( "ic24.4d", 0x0800, 0x0800, CRC(59916d3b) SHA1(71aec70a8e096ed1f0c2297b3ae7dca1b8ecc38d) )
|
||||
|
||||
ROM_REGION( 0x1000, REGION_GFX2, ROMREGION_DISPOSE )
|
||||
ROM_LOAD( "f39.bin", 0x0000, 0x0800, CRC(53c52eb0) SHA1(19624ca359996b77d3c65ef78a7af90eeb092377) )
|
||||
ROM_LOAD( "f40.bin", 0x0800, 0x0800, CRC(eba42f0f) SHA1(378282cb2c4e10c23179ae3c605ae7bf691150f6) )
|
||||
|
||||
ROM_REGION( 0x0200, REGION_PROMS, 0 )
|
||||
ROM_LOAD( "mmi6301.ic40", 0x0000, 0x0100, CRC(79350b25) SHA1(57411be4c1d89677f7919ae295446da90612c8a8) ) /* palette low bits */
|
||||
ROM_LOAD( "mmi6301.ic41", 0x0100, 0x0100, CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) ) /* palette high bits */
|
||||
ROM_END
|
||||
|
||||
ROM_START( nextfase )
|
||||
ROM_REGION( 0x10000, REGION_CPU1, 0 )
|
||||
ROM_LOAD( "nf01.bin", 0x0000, 0x0800, CRC(b31ce820) SHA1(dfdb17995a14b66d2571c2c8de481d2792f9ce6a) )
|
||||
@ -995,7 +1018,7 @@ ROM_END
|
||||
static DRIVER_INIT( condor )
|
||||
{
|
||||
/* additional inputs for coinage */
|
||||
memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x5000, 0x5000, 0, 0, input_port_4_r );
|
||||
memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x5000, 0x5000, 0, 0, port_tag_to_handler8("DSW1") );
|
||||
}
|
||||
|
||||
static DRIVER_INIT( survival )
|
||||
@ -1009,22 +1032,20 @@ static DRIVER_INIT( survival )
|
||||
|
||||
|
||||
GAME( 1980, phoenix, 0, phoenix, phoenix, 0, ROT90, "Amstar", "Phoenix (Amstar)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1980, phoenixa, phoenix, phoenix, phoenixa, 0, ROT90, "Amstar (Centuri license)", "Phoenix (Centuri), Set 1", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1980, phoenixb, phoenix, phoenix, phoenixa, 0, ROT90, "Amstar (Centuri license)", "Phoenix (Centuri), Set 2", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1980, phoenixa, phoenix, phoenix, phoenixa, 0, ROT90, "Amstar (Centuri license)", "Phoenix (Centuri, set 1)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1980, phoenixb, phoenix, phoenix, phoenixa, 0, ROT90, "Amstar (Centuri license)", "Phoenix (Centuri, set 2)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1980, phoenixt, phoenix, phoenix, phoenixt, 0, ROT90, "Taito", "Phoenix (Taito)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1980, phoenix3, phoenix, phoenix, phoenix3, 0, ROT90, "bootleg", "Phoenix (T.P.N.)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1981, phoenixc, phoenix, phoenix, phoenixt, 0, ROT90, "bootleg?", "Phoenix (IRECSA, G.G.I Corp)", GAME_SUPPORTS_SAVE )
|
||||
|
||||
|
||||
GAME( 1981, condor, phoenix, condor, condor, condor, ROT90, "Sidam (bootleg)", "Condor (bootleg of Phoenix)", GAME_SUPPORTS_SAVE )
|
||||
// the following 2 were common bootlegs in england & france respectively
|
||||
GAME( 1980, falcon, phoenix, phoenix, phoenixt, 0, ROT90, "bootleg", "Falcon (bootleg of Phoenix) (set 1)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1980, vautour, phoenix, phoenix, phoenixt, 0, ROT90, "Jeutel (bootleg)", "Vautour (bootleg of Phoenix) (set 1)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1980, vautour2, phoenix, condor, condor, condor, ROT90, "bootleg", "Vautour (bootleg of Phoenix) (set 2)", GAME_SUPPORTS_SAVE )
|
||||
// fenix is an italian bootleg based on vautour
|
||||
GAME( 1980, falcon, phoenix, phoenix, phoenixt, 0, ROT90, "bootleg", "Falcon (bootleg of Phoenix) (8085A CPU)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1980, vautour, phoenix, phoenix, phoenixt, 0, ROT90, "Jeutel (bootleg)", "Vautour (bootleg of Phoenix) (8085A CPU)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1980, falconz, phoenix, condor, falconz, 0, ROT90, "bootleg", "Falcon (bootleg of Phoenix) (Z80 CPU)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1980, vautourz, phoenix, condor, condor, condor, ROT90, "bootleg", "Vautour (bootleg of Phoenix) (Z80 CPU)", GAME_SUPPORTS_SAVE )
|
||||
// fenix is an italian bootleg based on vautourz
|
||||
GAME( 1980, fenix, phoenix, condor, condor, condor, ROT90, "bootleg", "Fenix (bootleg of Phoenix)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
|
||||
GAME( 1980, griffon, phoenix, condor, condor, condor, ROT90, "Videotron (bootleg)", "Griffon (bootleg of Phoenix)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1980, falcona, phoenix, condor, falcona, 0, ROT90, "bootleg", "Falcon (bootleg of Phoenix) (set 2)", GAME_SUPPORTS_SAVE )
|
||||
// nextfase is a spanish bootleg
|
||||
GAME( 1981, nextfase, phoenix, phoenix, nextfase, 0, ROT90, "Petaco S.A. (bootleg)", "Next Fase (bootleg of Phoenix)", GAME_SUPPORTS_SAVE )
|
||||
|
||||
@ -1032,4 +1053,5 @@ GAME( 1981, pleiads, 0, pleiads, pleiads, 0, ROT90, "Tehkan", "P
|
||||
GAME( 1981, pleiadbl, pleiads, pleiads, pleiads, 0, ROT90, "bootleg", "Pleiads (bootleg)", GAME_IMPERFECT_COLORS )
|
||||
GAME( 1981, pleiadce, pleiads, pleiads, pleiadce, 0, ROT90, "Tehkan (Centuri license)", "Pleiads (Centuri)", GAME_IMPERFECT_COLORS )
|
||||
GAME( 1981, capitol, pleiads, phoenix, capitol, 0, ROT90, "Universal Video Spiel", "Capitol", GAME_IMPERFECT_COLORS )
|
||||
|
||||
GAME( 1982, survival, 0, survival, survival, survival, ROT90, "Rock-ola", "Survival", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
|
||||
|
@ -63,8 +63,8 @@ WRITE8_HANDLER( phoenix_videoreg_w );
|
||||
WRITE8_HANDLER( pleiads_videoreg_w );
|
||||
WRITE8_HANDLER( phoenix_scroll_w );
|
||||
|
||||
READ8_HANDLER( phoenix_input_port_0_r );
|
||||
READ8_HANDLER( pleiads_input_port_0_r );
|
||||
CUSTOM_INPUT( player_input_r );
|
||||
CUSTOM_INPUT( pleiads_protection_r );
|
||||
READ8_HANDLER( survival_input_port_0_r );
|
||||
READ8_HANDLER( survival_protection_r );
|
||||
|
||||
|
@ -548,9 +548,9 @@ const game_driver * const drivers[] =
|
||||
DRIVER( fenix ) /* bootleg */
|
||||
DRIVER( falcon ) /* bootleg */
|
||||
DRIVER( vautour ) /* bootleg (Jeutel) */
|
||||
DRIVER( vautour2 ) /* bootleg */
|
||||
DRIVER( falconz ) /* bootleg */
|
||||
DRIVER( vautourz ) /* bootleg */
|
||||
DRIVER( griffon ) /* bootleg (Videotron) */
|
||||
DRIVER( falcona ) /* bootleg */
|
||||
DRIVER( nextfase ) /* bootleg */
|
||||
DRIVER( pleiads ) /* (c) 1981 Tehkan */
|
||||
DRIVER( pleiadbl ) /* bootleg */
|
||||
|
@ -234,7 +234,7 @@ WRITE8_HANDLER( phoenix_videoreg_w )
|
||||
videoram_pg_index = data & 1;
|
||||
memory_set_bank(1, videoram_pg_index);
|
||||
|
||||
cocktail_mode = videoram_pg_index && (input_port_read_indexed(machine, 3) & 0x01);
|
||||
cocktail_mode = videoram_pg_index && (input_port_read(machine, "CAB") & 0x01);
|
||||
|
||||
tilemap_set_flip(ALL_TILEMAPS, cocktail_mode ? (TILEMAP_FLIPX | TILEMAP_FLIPY) : 0);
|
||||
tilemap_mark_all_tiles_dirty(ALL_TILEMAPS);
|
||||
@ -257,7 +257,7 @@ WRITE8_HANDLER( pleiads_videoreg_w )
|
||||
videoram_pg_index = data & 1;
|
||||
memory_set_bank(1, videoram_pg_index);
|
||||
|
||||
cocktail_mode = videoram_pg_index && (input_port_read_indexed(machine, 3) & 0x01);
|
||||
cocktail_mode = videoram_pg_index && (input_port_read(machine, "CAB") & 0x01);
|
||||
|
||||
tilemap_set_flip(ALL_TILEMAPS, cocktail_mode ? (TILEMAP_FLIPX | TILEMAP_FLIPY) : 0);
|
||||
tilemap_mark_all_tiles_dirty(ALL_TILEMAPS);
|
||||
@ -290,35 +290,33 @@ WRITE8_HANDLER( phoenix_scroll_w )
|
||||
}
|
||||
|
||||
|
||||
READ8_HANDLER( phoenix_input_port_0_r )
|
||||
CUSTOM_INPUT( player_input_r )
|
||||
{
|
||||
if (cocktail_mode)
|
||||
return (input_port_read(machine, "IN0") & 0x07) | (input_port_read(machine, "IN1") & 0xf8);
|
||||
return (input_port_read(machine, "CTRL") & 0xf0) >> 4;
|
||||
else
|
||||
return input_port_read(machine, "IN0");
|
||||
return (input_port_read(machine, "CTRL") & 0x0f) >> 0;
|
||||
}
|
||||
|
||||
READ8_HANDLER( pleiads_input_port_0_r )
|
||||
CUSTOM_INPUT( pleiads_protection_r )
|
||||
{
|
||||
int ret = input_port_read(machine, "IN0") & 0xf7;
|
||||
|
||||
/* handle Pleiads protection */
|
||||
switch (pleiads_protection_question)
|
||||
{
|
||||
case 0x00:
|
||||
case 0x20:
|
||||
/* Bit 3 is 0 */
|
||||
return 0;
|
||||
break;
|
||||
case 0x0c:
|
||||
case 0x30:
|
||||
/* Bit 3 is 1 */
|
||||
ret |= 0x08;
|
||||
return 1;
|
||||
break;
|
||||
default:
|
||||
logerror("Unknown protection question %02X at %04X\n", pleiads_protection_question, activecpu_get_pc());
|
||||
return 0;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
READ8_HANDLER( survival_input_port_0_r )
|
||||
|
Loading…
Reference in New Issue
Block a user