Fixed Dip Switches for 'gyruss' and clones.

This commit is contained in:
stephh 2008-10-31 22:14:29 +00:00
parent 5646489864
commit 4791a80745
3 changed files with 38 additions and 32 deletions

View File

@ -34,7 +34,7 @@ Notes:
VSync @ 58Hz VSync @ 58Hz
Stephh's notes (based on the games M68000 code and some tests) : Stephh's notes (based on the game M68EC020 code and some tests) :
- Don't trust the "test mode" as it displays Dip Switches infos - Don't trust the "test mode" as it displays Dip Switches infos
that are in fact unused by the game ! Leftover from another game ? that are in fact unused by the game ! Leftover from another game ?

View File

@ -1,6 +1,6 @@
/*************************************************************************** /***************************************************************************
Express Raider - (c) 1986 Data East USA Express Raider - (c) 1986 Data East Corporation / Data East USA
Ernesto Corvi Ernesto Corvi
ernesto@imagina.com ernesto@imagina.com
@ -157,7 +157,7 @@ Stephh's notes (based on the games M6502 code and some tests) :
* 0xe7dc : COIN1 - 0xe7e4 : COIN2 (Mode 1) * 0xe7dc : COIN1 - 0xe7e4 : COIN2 (Mode 1)
* 0xe7ec : COIN1 - 0xe7f4 : COIN2 (Mode 2) * 0xe7ec : COIN1 - 0xe7f4 : COIN2 (Mode 2)
- At the begining of each level, you have text in lower case - At the begining of each level, you have text in lower case
which doesn't give you any hints to pass the level nor advices. which doesn't give you any hints to pass the level nor advice.
- In this version, you always have 5 wagons for the "shoot" stages. - In this version, you always have 5 wagons for the "shoot" stages.
- Continue play is always available but score is reset to 0. - Continue play is always available but score is reset to 0.

View File

@ -13,12 +13,12 @@ a200-a27f /
memory mapped ports: memory mapped ports:
read: read:
c080 IN0 c080 IN0 (system inputs)
c0a0 IN1 c0a0 IN1
c0c0 IN2 c0c0 IN2
c0e0 DSW0 c0e0 DSW1
c000 DSW1 c000 DSW2
c100 DSW2 c100 DSW3
write: write:
a000-a1ff Odd frame spriteram a000-a1ff Odd frame spriteram
@ -227,7 +227,7 @@ static INPUT_PORTS_START( gyruss )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_2WAY PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_2WAY
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* 1p shoot 2 - unused */ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* 1p shoot 2 - unused */
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* 2p shoot 3 - unused */ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("P2") PORT_START("P2")
@ -237,9 +237,9 @@ static INPUT_PORTS_START( gyruss )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_2WAY PORT_COCKTAIL PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_2WAY PORT_COCKTAIL
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* 2p shoot 2 - unused */ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* 2p shoot 2 - unused */
PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("DSW1") PORT_START("DSW1") /* 8P Dip Switch */
PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) )
PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) )
@ -275,7 +275,7 @@ static INPUT_PORTS_START( gyruss )
PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) )
PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) )
PORT_START("DSW2") PORT_START("DSW2") /* 8P Dip Switch */
PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
PORT_DIPSETTING( 0x03, "3" ) PORT_DIPSETTING( 0x03, "3" )
PORT_DIPSETTING( 0x02, "4" ) PORT_DIPSETTING( 0x02, "4" )
@ -284,10 +284,10 @@ static INPUT_PORTS_START( gyruss )
PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) ) PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) )
PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
PORT_DIPSETTING( 0x04, DEF_STR( Cocktail ) ) PORT_DIPSETTING( 0x04, DEF_STR( Cocktail ) )
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Bonus_Life ) ) PORT_DIPNAME( 0x08, 0x08, DEF_STR( Bonus_Life ) ) /* tables at 0x1653 (15 bytes) or 0x4bf3 (13 bytes) */
PORT_DIPSETTING( 0x08, "30000 60000" ) PORT_DIPSETTING( 0x08, "30k 90k 60k+" ) /* last bonus life at 810k : max. 14 bonus lives */
PORT_DIPSETTING( 0x00, "40000 70000" ) PORT_DIPSETTING( 0x00, "40k 110k 70k+" ) /* last bonus life at 810k : max. 12 bonus lives */
PORT_DIPNAME( 0x70, 0x70, DEF_STR( Difficulty ) ) PORT_DIPNAME( 0x70, 0x30, DEF_STR( Difficulty ) )
PORT_DIPSETTING( 0x70, "1 (Easiest)" ) PORT_DIPSETTING( 0x70, "1 (Easiest)" )
PORT_DIPSETTING( 0x60, "2" ) PORT_DIPSETTING( 0x60, "2" )
PORT_DIPSETTING( 0x50, "3" ) PORT_DIPSETTING( 0x50, "3" )
@ -300,22 +300,28 @@ static INPUT_PORTS_START( gyruss )
PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_START("DSW3") PORT_START("DSW3") /* 1P Dip Switch */
PORT_DIPNAME( 0x01, 0x00, "Demo Music" ) PORT_DIPNAME( 0x01, 0x00, "Demo Music" )
PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) )
/* other bits probably unused */
INPUT_PORTS_END INPUT_PORTS_END
/* This is identical to gyruss except for the bonus that has different
values */
static INPUT_PORTS_START( gyrussce ) static INPUT_PORTS_START( gyrussce )
PORT_INCLUDE( gyruss ) PORT_INCLUDE( gyruss )
PORT_MODIFY("DSW1") PORT_MODIFY("DSW2")
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Bonus_Life ) ) PORT_DIPNAME( 0x08, 0x00, DEF_STR( Bonus_Life ) ) /* tables at 0x1653 (15 bytes) or 0x4bf3 (13 bytes) */
PORT_DIPSETTING( 0x08, "50000 70000" ) PORT_DIPSETTING( 0x08, "50k 120k 70k+" ) /* last bonus life at 960k : max. 14 bonus lives */
PORT_DIPSETTING( 0x00, "60000 80000" ) PORT_DIPSETTING( 0x00, "60k 140k 80k+" ) /* last bonus life at 940k : max. 12 bonus lives */
PORT_DIPNAME( 0x70, 0x20, DEF_STR( Difficulty ) ) /* "Difficult" default setting according to Centuri manual */
PORT_DIPSETTING( 0x70, "1 (Easiest)" )
PORT_DIPSETTING( 0x60, "2" )
PORT_DIPSETTING( 0x50, "3" )
PORT_DIPSETTING( 0x40, "4" )
PORT_DIPSETTING( 0x30, "5 (Average)" )
PORT_DIPSETTING( 0x20, "6" )
PORT_DIPSETTING( 0x10, "7" )
PORT_DIPSETTING( 0x00, "8 (Hardest)" )
INPUT_PORTS_END INPUT_PORTS_END
@ -684,4 +690,4 @@ static DRIVER_INIT( gyruss )
GAME( 1983, gyruss, 0, gyruss, gyruss, gyruss, ROT90, "Konami", "Gyruss (Konami)", GAME_SUPPORTS_SAVE ) GAME( 1983, gyruss, 0, gyruss, gyruss, gyruss, ROT90, "Konami", "Gyruss (Konami)", GAME_SUPPORTS_SAVE )
GAME( 1983, gyrussce, gyruss, gyruss, gyrussce, gyruss, ROT90, "Konami (Centuri license)", "Gyruss (Centuri)", GAME_SUPPORTS_SAVE ) GAME( 1983, gyrussce, gyruss, gyruss, gyrussce, gyruss, ROT90, "Konami (Centuri license)", "Gyruss (Centuri)", GAME_SUPPORTS_SAVE )
GAME( 1983, venus, gyruss, gyruss, gyrussce, gyruss, ROT90, "bootleg", "Venus", GAME_SUPPORTS_SAVE ) GAME( 1983, venus, gyruss, gyruss, gyruss, gyruss, ROT90, "bootleg", "Venus", GAME_SUPPORTS_SAVE )