From 495d0c53baf5e09a996fd62cf4c6df0d6ec0bda7 Mon Sep 17 00:00:00 2001 From: Aaron Giles Date: Thu, 18 Sep 2008 16:03:03 +0000 Subject: [PATCH] Initially, this was to address adding the DIPs for the game, Birdie Try. After adding these, I downloaded all manuals for the driver (couldn't find a Boulder Dash manual) and I validated the DIPs with the manual and ensured that the service mode (when available) matched up as well. I also added DIP LOCATIONS for all sets in the driver. There were also a couple DIP items set up in the source which did not show in the manuals I obtained - so I noted these facts in the driver. This .DIFF is based on 0.127u3 sources and resolves MAMETesters Bug #01897. Tafoid tafoid@yahoo.com --- src/mame/drivers/dec0.c | 271 +++++++++++++++++----------------------- 1 file changed, 117 insertions(+), 154 deletions(-) diff --git a/src/mame/drivers/dec0.c b/src/mame/drivers/dec0.c index b674c10893e..3a5c70f1676 100644 --- a/src/mame/drivers/dec0.c +++ b/src/mame/drivers/dec0.c @@ -33,6 +33,10 @@ Boulderdash use the same graphics chips but are different pcbs. Gouky's patch for Bad Dudes & YM3812 information! Thanks to JC Alexander for fix to Robocop ending! + All games' Dip Switches (except Boulder Dash) have been verified against +Original Service Manuals and Service Mode (when available). + + ToDo: Hook up the 68705 in Midnight Resistance (bootleg) @@ -426,12 +430,12 @@ static INPUT_PORTS_START( dec1 ) INPUT_PORTS_END #define DEC0_COIN_SETTING \ - PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Coin_A ) ) \ + PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2")\ PORT_DIPSETTING( 0x0000, DEF_STR( 3C_1C ) ) \ PORT_DIPSETTING( 0x0001, DEF_STR( 2C_1C ) ) \ PORT_DIPSETTING( 0x0003, DEF_STR( 1C_1C ) ) \ PORT_DIPSETTING( 0x0002, DEF_STR( 1C_2C ) ) \ - PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Coin_B ) ) \ + PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:3,4")\ PORT_DIPSETTING( 0x0000, DEF_STR( 3C_1C ) ) \ PORT_DIPSETTING( 0x0004, DEF_STR( 2C_1C ) ) \ PORT_DIPSETTING( 0x000c, DEF_STR( 1C_1C ) ) \ @@ -441,48 +445,44 @@ static INPUT_PORTS_START( hbarrel ) PORT_INCLUDE( dec0 ) PORT_START("DSW") - PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Coin_A ) ) + PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2") PORT_DIPSETTING( 0x0000, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x0003, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x0002, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x0001, DEF_STR( 1C_3C ) ) - PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Coin_B ) ) + PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:3,4") PORT_DIPSETTING( 0x0000, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x000c, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x0008, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x0004, DEF_STR( 1C_3C ) ) PORT_SERVICE( 0x0010, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Demo_Sounds ) ) + PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:6") PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0020, DEF_STR( On ) ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) ) + PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:7") PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unused ) ) // Always OFF - PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPUNUSED_DIPLOC( 0x0080, 0x0080, "SW1:8" ) // Always OFF - PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0100, "1" ) + PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1,2") PORT_DIPSETTING( 0x0300, "3" ) PORT_DIPSETTING( 0x0200, "5" ) + PORT_DIPSETTING( 0x0100, "1" ) PORT_DIPSETTING( 0x0000, "Infinite (Cheat)") - PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) ) + PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:3,4") PORT_DIPSETTING( 0x0800, DEF_STR( Easy ) ) PORT_DIPSETTING( 0x0c00, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x0400, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Bonus_Life ) ) + PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:5,6") PORT_DIPSETTING( 0x3000, "30k 80k 160k" ) - PORT_DIPSETTING( 0x1000, "50k 120k 190k" ) - PORT_DIPSETTING( 0x2000, "100k 200k 300k" ) + PORT_DIPSETTING( 0x2000, "50k 120k 190k" ) + PORT_DIPSETTING( 0x1000, "100k 200k 300k" ) PORT_DIPSETTING( 0x0000, "150k 300k 450k" ) - PORT_DIPNAME( 0x4000, 0x0000, DEF_STR( Allow_Continue ) ) + PORT_DIPNAME( 0x4000, 0x0000, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW2:7") PORT_DIPSETTING( 0x4000, DEF_STR( No ) ) PORT_DIPSETTING( 0x0000, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unused ) ) // Always OFF - PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPUNUSED_DIPLOC( 0x8000, 0x8000, "SW1:8" ) // Always OFF PORT_START("AN0") /* player 1 12-way rotary control - converted in controls_r() */ PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_CODE_DEC(KEYCODE_Z) PORT_CODE_INC(KEYCODE_X) PORT_REVERSE @@ -496,41 +496,36 @@ static INPUT_PORTS_START( birdtry ) PORT_START("DSW") DEC0_COIN_SETTING - PORT_SERVICE( 0x0010, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Demo_Sounds ) ) + PORT_SERVICE( 0x0010, IP_ACTIVE_LOW ) PORT_DIPLOCATION("SW1:5") + PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:6") PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0020, DEF_STR( On ) ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) ) + PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:7") PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPUNUSED_DIPLOC( 0x0080, 0x0080, "SW1:8" ) // Always OFF - PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) ) + PORT_DIPNAME( 0x0300, 0x0300, "Difficulty (Extend)" ) PORT_DIPLOCATION("SW2:1,2") + PORT_DIPSETTING( 0x0300, DEF_STR( Normal ) ) + PORT_DIPSETTING( 0x0200, DEF_STR( Easy ) ) + PORT_DIPSETTING( 0x0100, DEF_STR( Hard ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) + PORT_DIPNAME( 0x0c00, 0x0c00, "Difficulty (Course)" ) PORT_DIPLOCATION("SW2:3,4") + PORT_DIPSETTING( 0x0c00, DEF_STR( Normal ) ) + PORT_DIPSETTING( 0x0800, DEF_STR( Easy ) ) + PORT_DIPSETTING( 0x0400, DEF_STR( Hard ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) + PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW2:5") PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x2000, 0x2000, "Timer" ) PORT_DIPLOCATION("SW2:6") + PORT_DIPSETTING( 0x2000, DEF_STR( Normal ) ) + PORT_DIPSETTING( 0x0000, "Fast" ) + PORT_DIPNAME( 0xc000, 0x0000, "Control Panel Type" ) PORT_DIPLOCATION("SW2:7,8") + PORT_DIPSETTING( 0xc000, "Type A - Cocktail" ) + PORT_DIPSETTING( 0x8000, "Type B - Cocktail 2" ) + PORT_DIPSETTING( 0x4000, DEF_STR( Unused ) ) + PORT_DIPSETTING( 0x0000, "Type C - Upright" ) PORT_START("AN0") /* player 1 12-way rotary control - converted in controls_r() */ PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_CODE_DEC(KEYCODE_Z) PORT_CODE_INC(KEYCODE_X) PORT_REVERSE @@ -544,39 +539,31 @@ static INPUT_PORTS_START( baddudes ) PORT_START("DSW") DEC0_COIN_SETTING - PORT_SERVICE( 0x0010, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Demo_Sounds ) ) + PORT_SERVICE( 0x0010, IP_ACTIVE_LOW ) PORT_DIPLOCATION("SW1:5") + PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:6") PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0020, DEF_STR( On ) ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) ) + PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:7") PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) ) // According to some technical sources should be "Cabinet" - PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPUNUSED_DIPLOC( 0x0080, 0x0080, "SW1:8" ) // Always OFF - PORT_DIPNAME( 0x0300, 0x0200, DEF_STR( Lives ) ) + PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1,2") + PORT_DIPSETTING( 0x0200, "5" ) + PORT_DIPSETTING( 0x0300, "3" ) PORT_DIPSETTING( 0x0100, "1" ) - PORT_DIPSETTING( 0x0300, "2" ) - PORT_DIPSETTING( 0x0200, "3" ) PORT_DIPSETTING( 0x0000, "Infinite (Cheat)") - PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) ) + PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:3,4") PORT_DIPSETTING( 0x0800, DEF_STR( Easy ) ) PORT_DIPSETTING( 0x0c00, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x0400, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( No ) ) - PORT_DIPSETTING( 0x1000, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unused ) ) // Always OFF - PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unused ) ) // Always OFF - PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unused ) ) // Always OFF - PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW2:5") + PORT_DIPSETTING( 0x1000, DEF_STR( No ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( Yes ) ) + PORT_DIPUNUSED_DIPLOC( 0x2000, 0x2000, "SW2:6" ) // Always OFF + PORT_DIPUNUSED_DIPLOC( 0x4000, 0x4000, "SW2:7" ) // Always OFF + PORT_DIPUNUSED_DIPLOC( 0x8000, 0x8000, "SW2:8" ) // Always OFF PORT_START("AN0") /* player 1 12-way rotary control - converted in controls_r() */ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* unused */ @@ -590,41 +577,37 @@ static INPUT_PORTS_START( robocop ) PORT_START("DSW") DEC0_COIN_SETTING - PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unused ) ) // Always OFF - PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Demo_Sounds ) ) + PORT_DIPUNUSED_DIPLOC( 0x0010, 0x0010, "SW1:5" ) // Always OFF + PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:6") PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0020, DEF_STR( On ) ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) ) + PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:7") PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0000, DEF_STR( Cabinet ) ) + PORT_DIPNAME( 0x0080, 0x0000, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:8") PORT_DIPSETTING( 0x0000, DEF_STR( Upright ) ) PORT_DIPSETTING( 0x0080, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x0300, 0x0300, "Player Energy" ) + PORT_DIPNAME( 0x0300, 0x0300, "Player Energy" ) PORT_DIPLOCATION("SW2:1,2") PORT_DIPSETTING( 0x0100, DEF_STR( Low ) ) PORT_DIPSETTING( 0x0300, DEF_STR( Medium ) ) PORT_DIPSETTING( 0x0200, DEF_STR( High ) ) PORT_DIPSETTING( 0x0000, DEF_STR( Very_High ) ) - PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) ) + PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:3,4") PORT_DIPSETTING( 0x0800, DEF_STR( Easy ) ) PORT_DIPSETTING( 0x0c00, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x0400, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Allow_Continue ) ) + PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW2:5") PORT_DIPSETTING( 0x0000, DEF_STR( No ) ) PORT_DIPSETTING( 0x1000, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x2000, 0x2000, "Bonus Stage Energy" ) + PORT_DIPNAME( 0x2000, 0x2000, "Bonus Stage Energy" ) PORT_DIPLOCATION("SW2:6") PORT_DIPSETTING( 0x0000, DEF_STR( Low ) ) PORT_DIPSETTING( 0x2000, DEF_STR( High ) ) PORT_DIPNAME( 0x4000, 0x4000, "Brink Time" ) - PORT_DIPSETTING( 0x4000, DEF_STR( Normal ) ) + PORT_DIPSETTING( 0x4000, DEF_STR( Normal ) ) PORT_DIPLOCATION("SW2:7") /* not mentioned in manual */ PORT_DIPSETTING( 0x0000, "Less" ) - PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unused ) ) // Always OFF - PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPUNUSED_DIPLOC( 0x8000, 0x8000, "SW2:8" ) // Always OFF INPUT_PORTS_END static INPUT_PORTS_START( hippodrm ) @@ -632,40 +615,34 @@ static INPUT_PORTS_START( hippodrm ) PORT_START("DSW") DEC0_COIN_SETTING - PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unused ) ) // Always OFF - PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Demo_Sounds ) ) + PORT_DIPUNUSED_DIPLOC( 0x0010, 0x0010, "SW1:5" ) // Always OFF + PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:6") PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0020, DEF_STR( On ) ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) ) + PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:7") PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unused ) ) // Always OFF - PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPUNUSED_DIPLOC( 0x0080, 0x0080, "SW1:8" ) // Always OFF - PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) ) + PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1,2") PORT_DIPSETTING( 0x0100, "1" ) PORT_DIPSETTING( 0x0300, "2" ) PORT_DIPSETTING( 0x0200, "3" ) PORT_DIPSETTING( 0x0000, "5" ) - PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) ) + PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:3,4") PORT_DIPSETTING( 0x0800, DEF_STR( Easy ) ) PORT_DIPSETTING( 0x0c00, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x0400, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x3000, 0x3000, "Player & Enemy Energy" ) - PORT_DIPSETTING( 0x1000, DEF_STR( Low ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x3000, DEF_STR( High ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Very_High ) ) - PORT_DIPNAME( 0x4000, 0x4000, "Enemy Power on Continue" ) - PORT_DIPSETTING( 0x4000, "3 Dots" ) // 3 Dots less - PORT_DIPSETTING( 0x0000, "2 Dots" ) // 2 Dots less - PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unused ) ) // Always OFF - PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x3000, 0x3000, "Player & Enemy Energy" ) PORT_DIPLOCATION("SW2:5,6") + PORT_DIPSETTING( 0x3000, DEF_STR( Medium ) ) + PORT_DIPSETTING( 0x2000, DEF_STR( Low ) ) + PORT_DIPSETTING( 0x1000, DEF_STR( Very_Low ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( High ) ) + PORT_DIPNAME( 0x4000, 0x4000, "Enemy Power Decrease on Continue" ) PORT_DIPLOCATION("SW2:7") + PORT_DIPSETTING( 0x4000, "2 Dots" ) // 2 Dots less + PORT_DIPSETTING( 0x0000, "3 Dots" ) // 3 Dots less + PORT_DIPUNUSED_DIPLOC( 0x8000, 0x8000, "SW2:8" ) // Always OFF PORT_START("VBLANK") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_VBLANK ) @@ -677,39 +654,33 @@ static INPUT_PORTS_START( slyspy ) PORT_START("DSW") DEC0_COIN_SETTING - PORT_SERVICE( 0x0010, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Demo_Sounds ) ) + PORT_SERVICE( 0x0010, IP_ACTIVE_LOW ) PORT_DIPLOCATION("SW1:5") + PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:6") PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0020, DEF_STR( On ) ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) ) + PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:7") PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0000, DEF_STR( Cabinet ) ) + PORT_DIPNAME( 0x0080, 0x0000, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:8") PORT_DIPSETTING( 0x0000, DEF_STR( Upright ) ) PORT_DIPSETTING( 0x0080, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x0300, 0x0300, "Energy" ) - PORT_DIPSETTING( 0x0200, DEF_STR( Low ) ) - PORT_DIPSETTING( 0x0300, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( High ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Very_High ) ) - PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) ) + PORT_DIPNAME( 0x0300, 0x0300, "Energy" ) PORT_DIPLOCATION("SW2:1,2") + PORT_DIPSETTING( 0x0200, "Low - 8 bars" ) + PORT_DIPSETTING( 0x0300, "Medium - 10 bars" ) + PORT_DIPSETTING( 0x0100, "High - 12 bars" ) + PORT_DIPSETTING( 0x0000, "Very High - 14 bars" ) + PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:3,4") /* not mentioned in manual */ PORT_DIPSETTING( 0x0800, DEF_STR( Easy ) ) PORT_DIPSETTING( 0x0c00, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x0400, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Allow_Continue ) ) + PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW2:5") PORT_DIPSETTING( 0x0000, DEF_STR( No ) ) PORT_DIPSETTING( 0x1000, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unused ) ) // Always OFF - PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unused ) ) // Always OFF - PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unused ) ) // Always OFF - PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPUNUSED_DIPLOC( 0x2000, 0x2000, "SW2:6" ) // Always OFF + PORT_DIPUNUSED_DIPLOC( 0x4000, 0x4000, "SW2:7" ) // Always OFF + PORT_DIPUNUSED_DIPLOC( 0x8000, 0x8000, "SW2:8" ) // Always OFF INPUT_PORTS_END static INPUT_PORTS_START( midres ) @@ -717,41 +688,35 @@ static INPUT_PORTS_START( midres ) PORT_START("DSW") DEC0_COIN_SETTING - PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unused ) ) // Always OFF - PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Demo_Sounds ) ) + PORT_DIPUNUSED_DIPLOC( 0x0010, 0x0010, "SW1:5" ) // Always OFF + PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:6") PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0020, DEF_STR( On ) ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) ) + PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:7") PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unused ) ) // Always OFF - PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPUNUSED_DIPLOC( 0x0080, 0x0080, "SW1:8" ) // Always OFF - PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0100, "1" ) + PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1,2") PORT_DIPSETTING( 0x0300, "3" ) - PORT_DIPSETTING( 0x0200, "5" ) + PORT_DIPSETTING( 0x0200, "4" ) + PORT_DIPSETTING( 0x0100, "5" ) PORT_DIPSETTING( 0x0000, "Infinite (Cheat)") - PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) ) + PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:3,4") PORT_DIPSETTING( 0x0800, DEF_STR( Easy ) ) PORT_DIPSETTING( 0x0c00, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x0400, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) ) // Extra Lives? + PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:5") /* manual mentions Extra Lives - Default OFF */ PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) ) // Extra Lives? + PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:6") /* manual mentions Extra Lives - Default OFF */ PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x4000, 0x0000, DEF_STR( Allow_Continue ) ) + PORT_DIPNAME( 0x4000, 0x0000, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW2:7") PORT_DIPSETTING( 0x4000, DEF_STR( No ) ) PORT_DIPSETTING( 0x0000, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unused ) ) // Always OFF - PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPUNUSED_DIPLOC( 0x8000, 0x8000, "SW2:8" ) // Always OFF PORT_START("AN0") /* player 1 12-way rotary control - converted in controls_r() */ PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_CODE_DEC(KEYCODE_Z) PORT_CODE_INC(KEYCODE_X) PORT_REVERSE @@ -768,7 +733,7 @@ static INPUT_PORTS_START( bouldash ) PORT_START("DSW") /* Different Coinage. Just a few combinations from manual, the rest was figured out */ - PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) ) + PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2,3") PORT_DIPSETTING( 0x0000, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x0001, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x0007, DEF_STR( 1C_1C ) ) @@ -777,7 +742,7 @@ static INPUT_PORTS_START( bouldash ) PORT_DIPSETTING( 0x0004, DEF_STR( 1C_4C ) ) PORT_DIPSETTING( 0x0003, DEF_STR( 1C_5C ) ) PORT_DIPSETTING( 0x0002, DEF_STR( 1C_6C ) ) - PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) ) + PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:4,5,6") PORT_DIPSETTING( 0x0000, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x0008, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x0038, DEF_STR( 1C_1C ) ) @@ -786,33 +751,31 @@ static INPUT_PORTS_START( bouldash ) PORT_DIPSETTING( 0x0020, DEF_STR( 1C_4C ) ) PORT_DIPSETTING( 0x0018, DEF_STR( 1C_5C ) ) PORT_DIPSETTING( 0x0010, DEF_STR( 1C_6C ) ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) ) + PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:7") PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0000, DEF_STR( Cabinet ) ) + PORT_DIPNAME( 0x0080, 0x0000, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:8") PORT_DIPSETTING( 0x0000, DEF_STR( Upright ) ) PORT_DIPSETTING( 0x0080, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) ) + PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1,2") PORT_DIPSETTING( 0x0000, "2" ) PORT_DIPSETTING( 0x0300, "3" ) PORT_DIPSETTING( 0x0200, "4" ) PORT_DIPSETTING( 0x0100, "5" ) - PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) ) + PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:3,4") PORT_DIPSETTING( 0x0800, DEF_STR( Easy ) ) PORT_DIPSETTING( 0x0c00, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x0400, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unused ) ) // Always OFF - PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x2000, 0x2000, "Game Change Mode" ) + PORT_DIPUNUSED_DIPLOC( 0x1000, 0x1000, "SW2:5" ) // Always OFF + PORT_DIPNAME( 0x2000, 0x2000, "Game Change Mode" ) PORT_DIPLOCATION("SW2:6") PORT_DIPSETTING( 0x2000, "Part 1" ) PORT_DIPSETTING( 0x0000, "Part 2" ) - PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Allow_Continue ) ) + PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW2:7") PORT_DIPSETTING( 0x0000, DEF_STR( No ) ) PORT_DIPSETTING( 0x4000, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x8000, 0x0000, DEF_STR( Demo_Sounds ) ) + PORT_DIPNAME( 0x8000, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:8") PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) INPUT_PORTS_END