CPS1.c: Willow, Strider and Ghouls and Ghosts have some changed factory setting defaults as stated from manual. Also noted differences in bonus live coverage where applicable. [Tafoid]

This commit is contained in:
Scott Stone 2014-03-05 20:03:01 +00:00
parent f6b0b18ad4
commit 2642203698

View File

@ -900,8 +900,16 @@ static INPUT_PORTS_START( ghouls )
PORT_DIPSETTING( 0x80, "Game" )
PORT_DIPSETTING( 0x00, DEF_STR( Test ) )
PORT_START("DSWB")
CPS1_DIFFICULTY_2( "SW(B)" )
PORT_START("DSWB") /* Manual states default difficulty "B" (2) which differs from the normal macro */
PORT_DIPNAME( 0x07, 0x05, DEF_STR( Difficulty ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(B):1,2,3")
PORT_DIPSETTING( 0x04, "1 (Easiest)" )
PORT_DIPSETTING( 0x05, "2" )
PORT_DIPSETTING( 0x06, "3" )
PORT_DIPSETTING( 0x07, "4 (Normal)" )
PORT_DIPSETTING( 0x03, "5" )
PORT_DIPSETTING( 0x02, "6" )
PORT_DIPSETTING( 0x01, "7" )
PORT_DIPSETTING( 0x00, "8 (Hardest)" )
PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "SW(B):4" )
PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW(B):5,6")
PORT_DIPSETTING( 0x20, "10K, 30K and every 30K" )
@ -934,23 +942,20 @@ static INPUT_PORTS_START( ghoulsu )
PORT_MODIFY("DSWB")
/* Standard Dip Switches */
PORT_DIPNAME( 0x07, 0x07, DEF_STR( Difficulty ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(B):1,2,3")
PORT_DIPSETTING( 0x04, "1 (Easiest)" )
PORT_DIPSETTING( 0x05, "2" )
PORT_DIPSETTING( 0x06, "3" )
PORT_DIPSETTING( 0x07, "4 (Normal)" )
PORT_DIPSETTING( 0x03, "5" )
PORT_DIPSETTING( 0x02, "6" )
PORT_DIPSETTING( 0x01, "7" )
PORT_DIPSETTING( 0x00, "8 (Hardest)" )
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(B):4")
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(B):5,6")
PORT_DIPNAME( 0x30, 0x00, DEF_STR( Bonus_Life ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(B):5,6")
PORT_DIPSETTING( 0x20, "10K, 30K and every 30K" )
PORT_DIPSETTING( 0x10, "20K, 50K and every 70K" )
PORT_DIPSETTING( 0x30, "30K, 60K and every 70K" )
PORT_DIPSETTING( 0x00, "40K, 70K and every 80K" )
/* Manuals states the following bonus settings
PORT_DIPSETTING( 0x20, "20K, 50K and every 70K" )
PORT_DIPSETTING( 0x10, "10K, 30K and every 30K" )
PORT_DIPSETTING( 0x30, "40K, 70K and every 80K" )
PORT_DIPSETTING( 0x00, "30K, 60K and every 70K" )
*/
/* Debug Dip Switches */
PORT_DIPNAME( 0x07, 0x07, "Starting Weapon" ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x00) PORT_DIPLOCATION("SW(B):1,2,3")
PORT_DIPSETTING( 0x07, "Spear" )
@ -1050,19 +1055,35 @@ static INPUT_PORTS_START( strider )
// PORT_DIPSETTING( 0x40, DEF_STR( Cocktail ) )
PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
PORT_START("DSWB")
CPS1_DIFFICULTY_2( "SW(B)" )
PORT_START("DSWB") /* Like Ghouls, Strider manual states "B" (or 2) as the recommended difficulty level. */
PORT_DIPNAME( 0x07, 0x05, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW(B):1,2,3")
PORT_DIPSETTING( 0x04, "1 (Easiest)" )
PORT_DIPSETTING( 0x05, "2" )
PORT_DIPSETTING( 0x06, "3" )
PORT_DIPSETTING( 0x07, "4 (Normal)" )
PORT_DIPSETTING( 0x03, "5" )
PORT_DIPSETTING( 0x02, "6" )
PORT_DIPSETTING( 0x01, "7" )
PORT_DIPSETTING( 0x00, "8 (Hardest)" )
/* In 'striderj', bit 3 is stored at 0xff8e77 ($e77,A5) via code at 0x000a2a,
but this address is never checked again.
In 'strider' and 'stridrjr', this code even doesn't exist ! */
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW(B):4")
PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) // Manual says this is 2c start/1c continue but it
PORT_DIPSETTING( 0x00, DEF_STR( On ) ) // doesn't work (see comment above)
PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW(B):5,6")
PORT_DIPNAME( 0x30, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW(B):5,6")
/* These show in test mode */
PORT_DIPSETTING( 0x30, "20K, 40K then every 60K" )
PORT_DIPSETTING( 0x20, "30K, 50K then every 70K" )
PORT_DIPSETTING( 0x10, "20K & 60K only" )
PORT_DIPSETTING( 0x00, "30K & 60K only" )
/* According to manual, these are the proper settings
PORT_DIPSETTING( 0x30, "40K, 70K then every 80K" )
PORT_DIPSETTING( 0x20, "20K, 50K then every 70K" )
PORT_DIPSETTING( 0x10, "10k, 30k then every 30k" )
PORT_DIPSETTING( 0x00, "30K, 60k then every 70k" )
*/
PORT_DIPNAME( 0xc0, 0x80, "Internal Diff. on Life Loss" ) PORT_DIPLOCATION("SW(B):7,8")
PORT_DIPSETTING( 0xc0, "-3" ) // Check code at 0x00d15a
// PORT_DIPSETTING( 0x40, "-1" ) // These switches are not documented in the manual
@ -1161,12 +1182,12 @@ static INPUT_PORTS_START( willow )
PORT_START("DSWC")
/* Standard Dip Switches */
PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(C):1,2")
PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(C):1,2")
PORT_DIPSETTING( 0x02, "1" )
PORT_DIPSETTING( 0x03, "2" )
PORT_DIPSETTING( 0x01, "3" )
PORT_DIPSETTING( 0x00, "4" )
PORT_DIPNAME( 0x0c, 0x0c, "Vitality" ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(C):3,4")
PORT_DIPNAME( 0x0c, 0x08, "Vitality" ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(C):3,4")
PORT_DIPSETTING( 0x00, "2" )
PORT_DIPSETTING( 0x0c, "3" )
PORT_DIPSETTING( 0x08, "4" )