From 69474619826e1347b21beabc3a3318b42f4efbd6 Mon Sep 17 00:00:00 2001 From: Angelo Salese Date: Sun, 23 Oct 2011 14:33:01 +0000 Subject: [PATCH] I've told you more reverts ... --- src/mame/drivers/djmain.c | 1697 +++++++++++++++-------------------- src/mame/drivers/toaplan1.c | 1643 ++++++++++++++------------------- src/mame/drivers/twincobr.c | 317 +++---- src/mame/drivers/wardner.c | 149 +-- 4 files changed, 1587 insertions(+), 2219 deletions(-) diff --git a/src/mame/drivers/djmain.c b/src/mame/drivers/djmain.c index 2598b259747..8c7af5562c2 100644 --- a/src/mame/drivers/djmain.c +++ b/src/mame/drivers/djmain.c @@ -71,132 +71,12 @@ hard drive 3.5 adapter long 3.5 IDE cable 3.5 adapter PCB #include "includes/djmain.h" + + + #define DISABLE_VB_INT (!(state->m_v_ctrl & 0x8000)) -/***************************** debugging flags ******************************/ - -#define DEBUG_FREE_ALL_DIPSW FALSE -#define DEBUG_DONT_HIDE_DUP_DIPSETTING TRUE - /* Set TRUE and you may find unknown easter eggs */ - -#if DEBUG_DONT_HIDE_DUP_DIPSETTING - #define HIDE_DUP(_para) _para -#else - #define HIDE_DIP(_para) /* null */ -#endif - - -/***************************** frequent strings *****************************/ - -// coinage - beatmania -static const char frqstr_coinage_8c_16c_8c[] = "1P 8C / 2P 16C / Continue 8C"; -static const char frqstr_coinage_8c_16c_7c[] = "1P 8C / 2P 16C / Continue 7C"; -static const char frqstr_coinage_8c_16c_6c[] = "1P 8C / 2P 16C / Continue 6C"; -static const char frqstr_coinage_7c_14c_7c[] = "1P 7C / 2P 14C / Continue 7C"; -static const char frqstr_coinage_7c_14c_6c[] = "1P 7C / 2P 14C / Continue 6C"; -static const char frqstr_coinage_7c_14c_5c[] = "1P 7C / 2P 14C / Continue 5C"; -static const char frqstr_coinage_6c_12c_6c[] = "1P 6C / 2P 12C / Continue 6C"; -static const char frqstr_coinage_6c_12c_5c[] = "1P 6C / 2P 12C / Continue 5C"; -static const char frqstr_coinage_6c_12c_4c[] = "1P 6C / 2P 12C / Continue 4C"; -static const char frqstr_coinage_5c_10c_5c[] = "1P 5C / 2P 10C / Continue 5C"; -static const char frqstr_coinage_5c_10c_3c[] = "1P 5C / 2P 10C / Continue 3C"; -static const char frqstr_coinage_5c_10c_4c[] = "1P 5C / 2P 10C / Continue 4C"; -static const char frqstr_coinage_4c_8c_4c[] = "1P 4C / 2P 8C / Continue 4C"; -static const char frqstr_coinage_4c_8c_3c[] = "1P 4C / 2P 8C / Continue 3C"; -static const char frqstr_coinage_4c_8c_2c[] = "1P 4C / 2P 8C / Continue 2C"; -static const char frqstr_coinage_3c_6c_3c[] = "1P 3C / 2P 6C / Continue 3C"; -static const char frqstr_coinage_3c_6c_2c[] = "1P 3C / 2P 6C / Continue 2C"; -static const char frqstr_coinage_3c_6c_1c[] = "1P 3C / 2P 6C / Continue 1C"; -static const char frqstr_coinage_3c_4c_3c[] = "1P 3C / 2P 4C / Continue 3C"; -static const char frqstr_coinage_3c_4c_2c[] = "1P 3C / 2P 4C / Continue 2C"; -static const char frqstr_coinage_3c_4c_1c[] = "1P 3C / 2P 4C / Continue 1C"; -static const char frqstr_coinage_3c_3c_3c[] = "1P 3C / 2P 3C / Continue 3C"; -static const char frqstr_coinage_3c_3c_2c[] = "1P 3C / 2P 3C / Continue 2C"; -static const char frqstr_coinage_3c_3c_1c[] = "1P 3C / 2P 3C / Continue 1C"; -static const char frqstr_coinage_2c_3c_2c[] = "1P 2C / 2P 3C / Continue 2C"; -static const char frqstr_coinage_2c_3c_1c[] = "1P 2C / 2P 3C / Continue 1C"; -static const char frqstr_coinage_2c_4c_2c[] = "1P 2C / 2P 4C / Continue 2C"; -static const char frqstr_coinage_2c_4c_1c[] = "1P 2C / 2P 4C / Continue 1C"; -static const char frqstr_coinage_2c_2c_2c[] = "1P 2C / 2P 2C / Continue 2C"; -static const char frqstr_coinage_2c_2c_1c[] = "1P 2C / 2P 2C / Continue 1C"; -static const char frqstr_coinage_1c_2c_1c[] = "1P 1C / 2P 2C / Continue 1C"; -static const char frqstr_coinage_1c_1c_1c[] = "1P 1C / 2P 1C / Continue 1C"; -// coinage - popnmusic, popnstage -static const char frqstr_coinage_8c_8c[] = "1P 8C / Continue 8C"; -static const char frqstr_coinage_8c_7c[] = "1P 8C / Continue 7C"; -static const char frqstr_coinage_8c_6c[] = "1P 8C / Continue 6C"; -static const char frqstr_coinage_8c_5c[] = "1P 8C / Continue 5C"; -static const char frqstr_coinage_8c_4c[] = "1P 8C / Continue 4C"; -static const char frqstr_coinage_8c_3c[] = "1P 8C / Continue 3C"; -static const char frqstr_coinage_7c_7c[] = "1P 7C / Continue 7C"; -static const char frqstr_coinage_7c_6c[] = "1P 7C / Continue 6C"; -static const char frqstr_coinage_7c_5c[] = "1P 7C / Continue 5C"; -static const char frqstr_coinage_7c_4c[] = "1P 7C / Continue 4C"; -static const char frqstr_coinage_7c_3c[] = "1P 7C / Continue 3C"; -static const char frqstr_coinage_6c_6c[] = "1P 6C / Continue 6C"; -static const char frqstr_coinage_6c_5c[] = "1P 6C / Continue 5C"; -static const char frqstr_coinage_6c_4c[] = "1P 6C / Continue 4C"; -static const char frqstr_coinage_6c_3c[] = "1P 6C / Continue 3C"; -static const char frqstr_coinage_6c_2c[] = "1P 6C / Continue 2C"; -static const char frqstr_coinage_5c_5c[] = "1P 5C / Continue 5C"; -static const char frqstr_coinage_5c_4c[] = "1P 5C / Continue 4C"; -static const char frqstr_coinage_5c_3c[] = "1P 5C / Continue 3C"; -static const char frqstr_coinage_5c_2c[] = "1P 5C / Continue 2C"; -static const char frqstr_coinage_5c_1c[] = "1P 5C / Continue 1C"; -static const char frqstr_coinage_4c_4c[] = "1P 4C / Continue 4C"; -static const char frqstr_coinage_4c_3c[] = "1P 4C / Continue 3C"; -static const char frqstr_coinage_4c_2c[] = "1P 4C / Continue 2C"; -static const char frqstr_coinage_4c_1c[] = "1P 4C / Continue 1C"; -static const char frqstr_coinage_3c_3c[] = "1P 3C / Continue 3C"; -static const char frqstr_coinage_3c_2c[] = "1P 3C / Continue 2C"; -static const char frqstr_coinage_3c_1c[] = "1P 3C / Continue 1C"; -static const char frqstr_coinage_2c_2c[] = "1P 2C / Continue 2C"; -static const char frqstr_coinage_2c_1c[] = "1P 2C / Continue 1C"; -static const char frqstr_coinage_1c_1c[] = "1P 1C / Continue 1C"; - -// difficulty -static const char frqstr_basic_hard_mode_difficulty[] = "Basic / Hard Mode Difficulty"; -static const char frqstr_expert_mode_difficulty[] = "Expert Mode Difficulty"; -static const char frqstr_normal_maniac_mode_difficulty[] = "Normal / Maniac Mode Difficulty"; -static const char frqstr_monkey_live_mode_difficulty[] = "Monkey Live Mode Difficulty"; -static const char frqstr_normal_hard_mode_difficulty[] = "Normal / Hard Mode Difficulty"; -static const char frqstr_normal_free_mode_difficulty[] = "Normal / Free Mode Difficulty"; -static const char frqstr_level_0[] = "Level 0"; -static const char frqstr_level_1[] = "Level 1"; -static const char frqstr_level_2[] = "Level 2"; -static const char frqstr_level_3[] = "Level 3"; -static const char frqstr_level_4[] = "Level 4"; -static const char frqstr_level_5[] = "Level 5"; -static const char frqstr_level_6[] = "Level 6"; -static const char frqstr_level_7[] = "Level 7"; -static const char frqstr_level_8[] = "Level 8"; -static const char frqstr_level_9[] = "Level 9"; -static const char frqstr_level_10[] = "Level 10"; -static const char frqstr_level_11[] = "Level 11"; -static const char frqstr_level_12[] = "Level 12"; -static const char frqstr_level_13[] = "Level 13"; -static const char frqstr_level_14[] = "Level 14"; -static const char frqstr_level_15[] = "Level 15"; - -// stages -static const char frqstr_normal_mode_stages[] = "Normal Mode Stages"; -static const char frqstr_event_mode_stages[] = "Event Mode Stages"; -static const char frqstr_basic_hard_mode_stages[] = "Basic / Hard Mode Stages"; -static const char frqstr_normal_maniac_mode_stages[] = "Normal / Maniac Mode Stages"; -static const char frqstr_normal_hard_mode_stages[] = "Normal / Hard Mode Stages"; -static const char frqstr_normal_free_mode_stages[] = "Normal / Free Mode Stages"; -static const char frqstr_stage_1[] = "1 Stage"; -static const char frqstr_stage_2[] = "2 Stages"; -static const char frqstr_stage_3[] = "3 Stages"; -static const char frqstr_stage_4[] = "4 Stages"; -static const char frqstr_stage_5[] = "5 Stages"; -static const char frqstr_stage_3_3[] = "3 / 3 Stages"; -static const char frqstr_stage_4_4[] = "4 / 4 Stages"; -static const char frqstr_stage_5_5[] = "5 / 5 Stages"; -static const char frqstr_stage_3_2[] = "3 / 2 Stages"; -static const char frqstr_stage_4_3[] = "4 / 3 Stages"; -static const char frqstr_stage_5_3[] = "5 / 3 Stages"; /************************************* * @@ -623,6 +503,8 @@ ADDRESS_MAP_END * *************************************/ +// #define PRIORITY_EASINESS_TO_PLAY + //--------- beatmania static INPUT_PORTS_START( beatmania_btn ) // and turntables @@ -647,595 +529,548 @@ static INPUT_PORTS_START( beatmania_btn ) // and turntables PORT_START("BTN3") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_CODE(KEYCODE_F2) /* TEST SW */ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Service") /* SERVICE */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Reset") /* RESET SW */ + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Reset") /* RESET SW */ PORT_BIT( 0xf8, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_START("DSW1") - PORT_DIPUNUSED_DIPLOC( 0x80, IP_ACTIVE_LOW, "SW1:1" ) - PORT_DIPUNUSED_DIPLOC( 0x40, IP_ACTIVE_LOW, "SW1:2" ) - PORT_DIPUNUSED_DIPLOC( 0x20, IP_ACTIVE_LOW, "SW1:3" ) - PORT_DIPUNUSED_DIPLOC( 0x10, IP_ACTIVE_LOW, "SW1:4" ) - PORT_DIPUNUSED_DIPLOC( 0x08, IP_ACTIVE_LOW, "SW1:5" ) - PORT_DIPUNUSED_DIPLOC( 0x04, IP_ACTIVE_LOW, "SW1:6" ) - PORT_DIPUNUSED_DIPLOC( 0x02, IP_ACTIVE_LOW, "SW1:7" ) - PORT_DIPUNUSED_DIPLOC( 0x01, IP_ACTIVE_LOW, "SW1:8" ) - PORT_START("DSW2") - PORT_DIPUNUSED_DIPLOC( 0x80, IP_ACTIVE_LOW, "SW2:1" ) - PORT_DIPUNUSED_DIPLOC( 0x40, IP_ACTIVE_LOW, "SW2:2" ) - PORT_DIPUNUSED_DIPLOC( 0x20, IP_ACTIVE_LOW, "SW2:3" ) - PORT_DIPUNUSED_DIPLOC( 0x10, IP_ACTIVE_LOW, "SW2:4" ) - PORT_DIPUNUSED_DIPLOC( 0x08, IP_ACTIVE_LOW, "SW2:5" ) - PORT_DIPUNUSED_DIPLOC( 0x04, IP_ACTIVE_LOW, "SW2:6" ) - PORT_DIPUNUSED_DIPLOC( 0x02, IP_ACTIVE_LOW, "SW2:7" ) - PORT_DIPUNUSED_DIPLOC( 0x01, IP_ACTIVE_LOW, "SW2:8" ) - PORT_START("DSW3") - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* bit 7,6 don't exist */ - PORT_DIPUNUSED_DIPLOC( 0x20, IP_ACTIVE_LOW, "SW3:1" ) - PORT_DIPUNUSED_DIPLOC( 0x10, IP_ACTIVE_LOW, "SW3:2" ) - PORT_DIPUNUSED_DIPLOC( 0x08, IP_ACTIVE_LOW, "SW3:3" ) - PORT_DIPUNUSED_DIPLOC( 0x04, IP_ACTIVE_LOW, "SW3:4" ) - PORT_DIPUNUSED_DIPLOC( 0x02, IP_ACTIVE_LOW, "SW3:5" ) - PORT_DIPUNUSED_DIPLOC( 0x01, IP_ACTIVE_LOW, "SW3:6" ) PORT_START("UNK1") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("UNK2") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("TT1") /* turn table 1P */ PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(30) PORT_KEYDELTA(15) PORT_PLAYER(1) PORT_START("TT2") /* turn table 2P */ PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(30) PORT_KEYDELTA(15) PORT_PLAYER(2) INPUT_PORTS_END -#if ! DEBUG_FREE_ALL_DIPSW - -static INPUT_PORTS_START( beatmania_coinage_1st ) - PORT_MODIFY("DSW1") - PORT_DIPNAME( 0x1f, 0x1f, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:8,7,6,5,4") - PORT_DIPSETTING( 0x1e, frqstr_coinage_3c_6c_3c ) - PORT_DIPSETTING( 0x01, frqstr_coinage_3c_6c_2c ) - PORT_DIPSETTING( 0x11, frqstr_coinage_3c_6c_1c ) - PORT_DIPSETTING( 0x15, frqstr_coinage_3c_3c_3c ) - PORT_DIPSETTING( 0x0d, frqstr_coinage_3c_3c_2c ) - PORT_DIPSETTING( 0x1d, frqstr_coinage_3c_3c_1c ) - PORT_DIPSETTING( 0x09, frqstr_coinage_3c_4c_3c ) - PORT_DIPSETTING( 0x19, frqstr_coinage_3c_4c_2c ) - PORT_DIPSETTING( 0x05, frqstr_coinage_3c_4c_1c ) - PORT_DIPSETTING( 0x03, frqstr_coinage_2c_4c_2c ) - PORT_DIPSETTING( 0x1f, frqstr_coinage_2c_4c_1c ) - PORT_DIPSETTING( 0x0b, frqstr_coinage_2c_3c_2c ) - PORT_DIPSETTING( 0x1b, frqstr_coinage_2c_3c_1c ) - PORT_DIPSETTING( 0x07, frqstr_coinage_2c_2c_2c ) - PORT_DIPSETTING( 0x17, frqstr_coinage_2c_2c_1c ) - PORT_DIPSETTING( 0x0f, frqstr_coinage_1c_2c_1c ) - PORT_DIPSETTING( 0x13, frqstr_coinage_1c_1c_1c ) - HIDE_DUP( PORT_DIPSETTING( 0x0e, DEF_STR( Free_Play ) ) ) - HIDE_DUP( PORT_DIPSETTING( 0x16, DEF_STR( Free_Play ) ) ) - HIDE_DUP( PORT_DIPSETTING( 0x06, DEF_STR( Free_Play ) ) ) - HIDE_DUP( PORT_DIPSETTING( 0x1a, DEF_STR( Free_Play ) ) ) - HIDE_DUP( PORT_DIPSETTING( 0x0a, DEF_STR( Free_Play ) ) ) - HIDE_DUP( PORT_DIPSETTING( 0x12, DEF_STR( Free_Play ) ) ) - HIDE_DUP( PORT_DIPSETTING( 0x02, DEF_STR( Free_Play ) ) ) - HIDE_DUP( PORT_DIPSETTING( 0x1c, DEF_STR( Free_Play ) ) ) - HIDE_DUP( PORT_DIPSETTING( 0x0c, DEF_STR( Free_Play ) ) ) - HIDE_DUP( PORT_DIPSETTING( 0x14, DEF_STR( Free_Play ) ) ) - HIDE_DUP( PORT_DIPSETTING( 0x04, DEF_STR( Free_Play ) ) ) - HIDE_DUP( PORT_DIPSETTING( 0x18, DEF_STR( Free_Play ) ) ) - HIDE_DUP( PORT_DIPSETTING( 0x08, DEF_STR( Free_Play ) ) ) - HIDE_DUP( PORT_DIPSETTING( 0x10, DEF_STR( Free_Play ) ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) -INPUT_PORTS_END - -static INPUT_PORTS_START( beatmania_coinage_2nd_final ) - PORT_MODIFY("DSW1") - PORT_DIPNAME( 0x20, 0x20, "Free Play (Ignore Coinage)" ) PORT_DIPLOCATION("SW1:3") - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x1f, 0x1f, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:8,7,6,5,4") - PORT_DIPSETTING( 0x00, frqstr_coinage_8c_16c_8c ) - PORT_DIPSETTING( 0x01, frqstr_coinage_8c_16c_7c ) - PORT_DIPSETTING( 0x02, frqstr_coinage_8c_16c_6c ) - PORT_DIPSETTING( 0x03, frqstr_coinage_7c_14c_7c ) - PORT_DIPSETTING( 0x04, frqstr_coinage_7c_14c_6c ) - PORT_DIPSETTING( 0x05, frqstr_coinage_7c_14c_5c ) - PORT_DIPSETTING( 0x06, frqstr_coinage_6c_12c_6c ) - PORT_DIPSETTING( 0x07, frqstr_coinage_6c_12c_5c ) - PORT_DIPSETTING( 0x08, frqstr_coinage_6c_12c_4c ) - PORT_DIPSETTING( 0x09, frqstr_coinage_5c_10c_5c ) - PORT_DIPSETTING( 0x0b, frqstr_coinage_5c_10c_3c ) - PORT_DIPSETTING( 0x0a, frqstr_coinage_5c_10c_4c ) - PORT_DIPSETTING( 0x0c, frqstr_coinage_4c_8c_4c ) - PORT_DIPSETTING( 0x0d, frqstr_coinage_4c_8c_3c ) - PORT_DIPSETTING( 0x0e, frqstr_coinage_4c_8c_2c ) - PORT_DIPSETTING( 0x0f, frqstr_coinage_3c_6c_3c ) - PORT_DIPSETTING( 0x10, frqstr_coinage_3c_6c_2c ) - PORT_DIPSETTING( 0x11, frqstr_coinage_3c_6c_1c ) - PORT_DIPSETTING( 0x12, frqstr_coinage_3c_4c_3c ) - PORT_DIPSETTING( 0x13, frqstr_coinage_3c_4c_2c ) - PORT_DIPSETTING( 0x14, frqstr_coinage_3c_4c_1c ) - PORT_DIPSETTING( 0x15, frqstr_coinage_3c_3c_3c ) - PORT_DIPSETTING( 0x16, frqstr_coinage_3c_3c_2c ) - PORT_DIPSETTING( 0x17, frqstr_coinage_3c_3c_1c ) - PORT_DIPSETTING( 0x1a, frqstr_coinage_2c_3c_2c ) - PORT_DIPSETTING( 0x1b, frqstr_coinage_2c_3c_1c ) - PORT_DIPSETTING( 0x18, frqstr_coinage_2c_4c_2c ) - PORT_DIPSETTING( 0x1f, frqstr_coinage_2c_4c_1c ) - PORT_DIPSETTING( 0x1c, frqstr_coinage_2c_2c_2c ) - PORT_DIPSETTING( 0x1d, frqstr_coinage_2c_2c_1c ) - PORT_DIPSETTING( 0x1e, frqstr_coinage_1c_2c_1c ) - PORT_DIPSETTING( 0x19, frqstr_coinage_1c_1c_1c ) -INPUT_PORTS_END - -static INPUT_PORTS_START( beatmania_expertmode_1st ) - PORT_MODIFY("DSW2") - PORT_DIPNAME( 0x80, 0x80, "Enable Expert Mode" ) PORT_DIPLOCATION("SW2:1") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Yes ) ) -INPUT_PORTS_END - -static INPUT_PORTS_START( beatmania_demosounds_1st_final ) - PORT_MODIFY("DSW2") - PORT_DIPNAME( 0x60, 0x60, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:3,2") - PORT_DIPSETTING( 0x60, "Loud" ) - PORT_DIPSETTING( 0x20, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Low ) ) - PORT_DIPSETTING( 0x00, "Silent" ) -INPUT_PORTS_END - -static INPUT_PORTS_START( beatmania_scoredisplay_2nd_final ) - PORT_MODIFY("DSW2") - PORT_DIPNAME( 0x80, 0x80, "Score Display" ) PORT_DIPLOCATION("SW2:1") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) -INPUT_PORTS_END - -static INPUT_PORTS_START( beatmania_difficulty_2nd_comp1 ) - PORT_MODIFY("DSW2") - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:8,7,6,5") - PORT_DIPSETTING( 0x0a, frqstr_level_0 ) - PORT_DIPSETTING( 0x0e, frqstr_level_1 ) - PORT_DIPSETTING( 0x0d, frqstr_level_2 ) - PORT_DIPSETTING( 0x0c, frqstr_level_3 ) - PORT_DIPSETTING( 0x0b, frqstr_level_4 ) - PORT_DIPSETTING( 0x0f, frqstr_level_5 ) - PORT_DIPSETTING( 0x09, frqstr_level_6 ) - PORT_DIPSETTING( 0x08, frqstr_level_7 ) - PORT_DIPSETTING( 0x07, frqstr_level_8 ) - PORT_DIPSETTING( 0x06, frqstr_level_9 ) - PORT_DIPSETTING( 0x05, frqstr_level_10 ) - PORT_DIPSETTING( 0x04, frqstr_level_11 ) - PORT_DIPSETTING( 0x03, frqstr_level_12 ) - PORT_DIPSETTING( 0x02, frqstr_level_13 ) - PORT_DIPSETTING( 0x01, frqstr_level_14 ) - PORT_DIPSETTING( 0x00, frqstr_level_15 ) -INPUT_PORTS_END - -static INPUT_PORTS_START( beatmania_leveldisplay_4th_final ) - PORT_MODIFY("DSW2") - PORT_DIPNAME( 0x10, 0x10, "Level Display" ) PORT_DIPLOCATION("SW2:4") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x10, DEF_STR( On ) ) -INPUT_PORTS_END - -/* -static INPUT_PORTS_START( beatmania_difficulty_4th_final( str, str2 ) ) - PORT_MODIFY("DSW2") - PORT_DIPNAME( 0x0c, 0x0c, str ) PORT_DIPLOCATION("SW2:6,5") - PORT_DIPSETTING( 0x08, frqstr_level_0 ) - PORT_DIPSETTING( 0x0c, frqstr_level_1 ) - PORT_DIPSETTING( 0x04, frqstr_level_2 ) - PORT_DIPSETTING( 0x00, frqstr_level_3 ) - PORT_DIPNAME( 0x03, 0x03, str2 ) PORT_DIPLOCATION("SW2:8,7") - PORT_DIPSETTING( 0x02, frqstr_level_0 ) - PORT_DIPSETTING( 0x03, frqstr_level_1 ) - PORT_DIPSETTING( 0x01, frqstr_level_2 ) - PORT_DIPSETTING( 0x00, frqstr_level_3 ) -INPUT_PORTS_END -*/ -#define INPUT_PORTS_MACRO_BEATMANIA_DIFFICULITY_4TH_FINAL( str, str2 ) \ - PORT_MODIFY("DSW2") \ - PORT_DIPNAME( 0x0c, 0x0c, str ) PORT_DIPLOCATION("SW2:6,5") \ - PORT_DIPSETTING( 0x08, frqstr_level_0 ) \ - PORT_DIPSETTING( 0x0c, frqstr_level_1 ) \ - PORT_DIPSETTING( 0x04, frqstr_level_2 ) \ - PORT_DIPSETTING( 0x00, frqstr_level_3 ) \ - PORT_DIPNAME( 0x03, 0x03, str2 ) PORT_DIPLOCATION("SW2:8,7") \ - PORT_DIPSETTING( 0x02, frqstr_level_0 ) \ - PORT_DIPSETTING( 0x03, frqstr_level_1 ) \ - PORT_DIPSETTING( 0x01, frqstr_level_2 ) \ - PORT_DIPSETTING( 0x00, frqstr_level_3 ) - -static INPUT_PORTS_START( beatmania_eventmode_2nd_final ) - PORT_MODIFY("DSW3") - PORT_DIPNAME( 0x20, 0x20, "Event Mode (Ignore Coinage)" ) PORT_DIPLOCATION("SW3:1") - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -static INPUT_PORTS_START( beatmania_stages_3rd_comp1 ) - PORT_MODIFY("DSW3") - PORT_DIPNAME( 0x1c, 0x1c, frqstr_normal_mode_stages ) PORT_CONDITION("DSW3", 0x20, PORTCOND_NOTEQUALS, 0x00) PORT_DIPLOCATION("SW3:4,3,2") - PORT_DIPSETTING( 0x10, frqstr_stage_3 ) - HIDE_DUP( PORT_DIPSETTING( 0x1c, frqstr_stage_4 ) ) - HIDE_DUP( PORT_DIPSETTING( 0x0c, frqstr_stage_4 ) ) - HIDE_DUP( PORT_DIPSETTING( 0x14, frqstr_stage_4 ) ) - HIDE_DUP( PORT_DIPSETTING( 0x04, frqstr_stage_4 ) ) - HIDE_DUP( PORT_DIPSETTING( 0x18, frqstr_stage_4 ) ) - PORT_DIPSETTING( 0x00, frqstr_stage_4 ) - PORT_DIPSETTING( 0x08, frqstr_stage_5 ) - PORT_DIPNAME( 0x1c, 0x1c, frqstr_event_mode_stages ) PORT_CONDITION("DSW3", 0x20, PORTCOND_EQUALS, 0x00) PORT_DIPLOCATION("SW3:4,3,2") - PORT_DIPSETTING( 0x0c, frqstr_stage_1 ) - PORT_DIPSETTING( 0x14, frqstr_stage_2 ) - PORT_DIPSETTING( 0x10, frqstr_stage_3 ) - HIDE_DUP( PORT_DIPSETTING( 0x1c, frqstr_stage_4 ) ) - HIDE_DUP( PORT_DIPSETTING( 0x04, frqstr_stage_4 ) ) - HIDE_DUP( PORT_DIPSETTING( 0x18, frqstr_stage_4 ) ) - PORT_DIPSETTING( 0x00, frqstr_stage_4 ) - PORT_DIPSETTING( 0x08, frqstr_stage_5 ) -INPUT_PORTS_END - -/* -static INPUT_PORTS_START( beatmania_stages_4th_core( str ) ) - PORT_MODIFY("DSW3") - PORT_DIPNAME( 0x1c, 0x1c, str ) PORT_CONDITION("DSW3", 0x20, PORTCOND_EQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") - PORT_DIPSETTING( 0x10, frqstr_stage_3_3 ) - HIDE_DUP( PORT_DIPSETTING( 0x1c, frqstr_stage_4_4 ) ) - HIDE_DUP( PORT_DIPSETTING( 0x0c, frqstr_stage_4_4 ) ) - HIDE_DUP( PORT_DIPSETTING( 0x14, frqstr_stage_4_4 ) ) - HIDE_DUP( PORT_DIPSETTING( 0x04, frqstr_stage_4_4 ) ) - HIDE_DUP( PORT_DIPSETTING( 0x18, frqstr_stage_4_4 ) ) - PORT_DIPSETTING( 0x00, frqstr_stage_4_4 ) - PORT_DIPSETTING( 0x08, frqstr_stage_5_5 ) - PORT_DIPNAME( 0x1c, 0x1c, frqstr_event_mode_stages ) PORT_CONDITION("DSW3", 0x20, PORTCOND_NOTEQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") - PORT_DIPSETTING( 0x0c, frqstr_stage_1 ) - PORT_DIPSETTING( 0x14, frqstr_stage_2 ) - PORT_DIPSETTING( 0x10, frqstr_stage_3 ) - HIDE_DUP( PORT_DIPSETTING( 0x1c, frqstr_stage_4 ) ) - HIDE_DUP( PORT_DIPSETTING( 0x04, frqstr_stage_4 ) ) - HIDE_DUP( PORT_DIPSETTING( 0x18, frqstr_stage_4 ) ) - PORT_DIPSETTING( 0x00, frqstr_stage_4 ) - PORT_DIPSETTING( 0x08, frqstr_stage_5 ) -INPUT_PORTS_END -*/ -#define INPUT_PORTS_MACRO_BEATMANIA_STAGES_4TH_CORE( str ) \ - PORT_MODIFY("DSW3") \ - PORT_DIPNAME( 0x1c, 0x1c, str ) PORT_CONDITION("DSW3", 0x20, PORTCOND_EQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \ - PORT_DIPSETTING( 0x10, frqstr_stage_3_3 ) \ - HIDE_DUP( PORT_DIPSETTING( 0x1c, frqstr_stage_4_4 ) ) \ - HIDE_DUP( PORT_DIPSETTING( 0x0c, frqstr_stage_4_4 ) ) \ - HIDE_DUP( PORT_DIPSETTING( 0x14, frqstr_stage_4_4 ) ) \ - HIDE_DUP( PORT_DIPSETTING( 0x04, frqstr_stage_4_4 ) ) \ - HIDE_DUP( PORT_DIPSETTING( 0x18, frqstr_stage_4_4 ) ) \ - PORT_DIPSETTING( 0x00, frqstr_stage_4_4 ) \ - PORT_DIPSETTING( 0x08, frqstr_stage_5_5 ) \ - PORT_DIPNAME( 0x1c, 0x1c, frqstr_event_mode_stages ) PORT_CONDITION("DSW3", 0x20, PORTCOND_NOTEQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \ - PORT_DIPSETTING( 0x0c, frqstr_stage_1 ) \ - PORT_DIPSETTING( 0x14, frqstr_stage_2 ) \ - PORT_DIPSETTING( 0x10, frqstr_stage_3 ) \ - HIDE_DUP( PORT_DIPSETTING( 0x1c, frqstr_stage_4 ) ) \ - HIDE_DUP( PORT_DIPSETTING( 0x04, frqstr_stage_4 ) ) \ - HIDE_DUP( PORT_DIPSETTING( 0x18, frqstr_stage_4 ) ) \ - PORT_DIPSETTING( 0x00, frqstr_stage_4 ) \ - PORT_DIPSETTING( 0x08, frqstr_stage_5 ) - -/* -static INPUT_PORTS_START( beatmania_stages_6th_final( str ) ) - PORT_MODIFY("DSW3") - PORT_DIPNAME( 0x1c, 0x1c, str ) PORT_CONDITION("DSW3", 0x20, PORTCOND_EQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") - PORT_DIPSETTING( 0x10, frqstr_stage_3_2 ) - HIDE_DUP( PORT_DIPSETTING( 0x1c, frqstr_stage_4_3 ) ) - HIDE_DUP( PORT_DIPSETTING( 0x0c, frqstr_stage_4_3 ) ) - HIDE_DUP( PORT_DIPSETTING( 0x14, frqstr_stage_4_3 ) ) - HIDE_DUP( PORT_DIPSETTING( 0x04, frqstr_stage_4_3 ) ) - HIDE_DUP( PORT_DIPSETTING( 0x18, frqstr_stage_4_3 ) ) - PORT_DIPSETTING( 0x00, frqstr_stage_4_3 ) - PORT_DIPSETTING( 0x08, frqstr_stage_5_3 ) - PORT_DIPNAME( 0x1c, 0x1c, frqstr_event_mode_stages ) PORT_CONDITION("DSW3", 0x20, PORTCOND_NOTEQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") - PORT_DIPSETTING( 0x0c, frqstr_stage_1 ) - PORT_DIPSETTING( 0x14, frqstr_stage_2 ) - PORT_DIPSETTING( 0x10, frqstr_stage_3 ) - HIDE_DUP( PORT_DIPSETTING( 0x1c, frqstr_stage_4 ) ) - HIDE_DUP( PORT_DIPSETTING( 0x04, frqstr_stage_4 ) ) - HIDE_DUP( PORT_DIPSETTING( 0x18, frqstr_stage_4 ) ) - PORT_DIPSETTING( 0x00, frqstr_stage_4 ) - PORT_DIPSETTING( 0x08, frqstr_stage_5 ) -INPUT_PORTS_END -*/ -#define INPUT_PORTS_MACRO_BEATMANIA_STAGES_6TH_FINAL( str ) \ - PORT_MODIFY("DSW3") \ - PORT_DIPNAME( 0x1c, 0x1c, str ) PORT_CONDITION("DSW3", 0x20, PORTCOND_EQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \ - PORT_DIPSETTING( 0x10, frqstr_stage_3_2 ) \ - HIDE_DUP( PORT_DIPSETTING( 0x1c, frqstr_stage_4_3 ) ) \ - HIDE_DUP( PORT_DIPSETTING( 0x0c, frqstr_stage_4_3 ) ) \ - HIDE_DUP( PORT_DIPSETTING( 0x14, frqstr_stage_4_3 ) ) \ - HIDE_DUP( PORT_DIPSETTING( 0x04, frqstr_stage_4_3 ) ) \ - HIDE_DUP( PORT_DIPSETTING( 0x18, frqstr_stage_4_3 ) ) \ - PORT_DIPSETTING( 0x00, frqstr_stage_4_3 ) \ - PORT_DIPSETTING( 0x08, frqstr_stage_5_3 ) \ - PORT_DIPNAME( 0x1c, 0x1c, frqstr_event_mode_stages ) PORT_CONDITION("DSW3", 0x20, PORTCOND_NOTEQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \ - PORT_DIPSETTING( 0x0c, frqstr_stage_1 ) \ - PORT_DIPSETTING( 0x14, frqstr_stage_2 ) \ - PORT_DIPSETTING( 0x10, frqstr_stage_3 ) \ - HIDE_DUP( PORT_DIPSETTING( 0x1c, frqstr_stage_4 ) ) \ - HIDE_DUP( PORT_DIPSETTING( 0x04, frqstr_stage_4 ) ) \ - HIDE_DUP( PORT_DIPSETTING( 0x18, frqstr_stage_4 ) ) \ - PORT_DIPSETTING( 0x00, frqstr_stage_4 ) \ - PORT_DIPSETTING( 0x08, frqstr_stage_5 ) - -/* -static INPUT_PORTS_START( beatmania_stages_dct( str ) ) - PORT_MODIFY("DSW3") - PORT_DIPNAME( 0x1c, 0x1c, str ) PORT_CONDITION("DSW3", 0x20, PORTCOND_EQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") - PORT_DIPSETTING( 0x1c, frqstr_stage_3_3 ) - HIDE_DUP( PORT_DIPSETTING( 0x0c, frqstr_stage_3_3 ) ) - HIDE_DUP( PORT_DIPSETTING( 0x14, frqstr_stage_3_3 ) ) - HIDE_DUP( PORT_DIPSETTING( 0x04, frqstr_stage_3_3 ) ) - HIDE_DUP( PORT_DIPSETTING( 0x18, frqstr_stage_3_3 ) ) - HIDE_DUP( PORT_DIPSETTING( 0x08, frqstr_stage_3_3 ) ) - HIDE_DUP( PORT_DIPSETTING( 0x00, frqstr_stage_3_3 ) ) - PORT_DIPSETTING( 0x10, frqstr_stage_4_4 ) - PORT_DIPNAME( 0x1c, 0x1c, frqstr_event_mode_stages ) PORT_CONDITION("DSW3", 0x20, PORTCOND_NOTEQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") - PORT_DIPSETTING( 0x0c, frqstr_stage_1 ) - PORT_DIPSETTING( 0x14, frqstr_stage_2 ) - PORT_DIPSETTING( 0x10, frqstr_stage_3 ) - PORT_DIPSETTING( 0x1c, frqstr_stage_4 ) - HIDE_DUP( PORT_DIPSETTING( 0x04, frqstr_stage_4 ) ) - HIDE_DUP( PORT_DIPSETTING( 0x18, frqstr_stage_4 ) ) - HIDE_DUP( PORT_DIPSETTING( 0x00, frqstr_stage_4 ) ) - PORT_DIPSETTING( 0x08, frqstr_stage_5 ) -INPUT_PORTS_END -*/ -#define INPUT_PORTS_MACRO_BEATMANIA_STAGES_DCT( str ) \ - PORT_MODIFY("DSW3") \ - PORT_DIPNAME( 0x1c, 0x1c, str ) PORT_CONDITION("DSW3", 0x20, PORTCOND_EQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \ - PORT_DIPSETTING( 0x1c, frqstr_stage_3_3 ) \ - HIDE_DUP( PORT_DIPSETTING( 0x0c, frqstr_stage_3_3 ) ) \ - HIDE_DUP( PORT_DIPSETTING( 0x14, frqstr_stage_3_3 ) ) \ - HIDE_DUP( PORT_DIPSETTING( 0x04, frqstr_stage_3_3 ) ) \ - HIDE_DUP( PORT_DIPSETTING( 0x18, frqstr_stage_3_3 ) ) \ - HIDE_DUP( PORT_DIPSETTING( 0x08, frqstr_stage_3_3 ) ) \ - HIDE_DUP( PORT_DIPSETTING( 0x00, frqstr_stage_3_3 ) ) \ - PORT_DIPSETTING( 0x10, frqstr_stage_4_4 ) \ - PORT_DIPNAME( 0x1c, 0x1c, frqstr_event_mode_stages ) PORT_CONDITION("DSW3", 0x20, PORTCOND_NOTEQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \ - PORT_DIPSETTING( 0x0c, frqstr_stage_1 ) \ - PORT_DIPSETTING( 0x14, frqstr_stage_2 ) \ - PORT_DIPSETTING( 0x10, frqstr_stage_3 ) \ - PORT_DIPSETTING( 0x1c, frqstr_stage_4 ) \ - HIDE_DUP( PORT_DIPSETTING( 0x04, frqstr_stage_4 ) ) \ - HIDE_DUP( PORT_DIPSETTING( 0x18, frqstr_stage_4 ) ) \ - HIDE_DUP( PORT_DIPSETTING( 0x00, frqstr_stage_4 ) ) \ - PORT_DIPSETTING( 0x08, frqstr_stage_5 ) - -static INPUT_PORTS_START( beatmania_dipsw_common_2nd_comp1 ) - //unused // sw1:2,1 - PORT_INCLUDE( beatmania_coinage_2nd_final ) // sw1:8,7,6,5,4,3 - PORT_INCLUDE( beatmania_scoredisplay_2nd_final ) // sw2:1 - PORT_INCLUDE( beatmania_demosounds_1st_final ) // sw2:3,2 - //unused // sw2:4 - //uncommon // sw2:8,7,6,5 - PORT_INCLUDE( beatmania_eventmode_2nd_final ) // sw3:1 - //uncommon // sw3:4,3,2 - //unused // sw3:6,5 -INPUT_PORTS_END - -static INPUT_PORTS_START( beatmania_dipsw_common_4th_final ) - PORT_INCLUDE( beatmania_dipsw_common_2nd_comp1 ) -// //unused // sw1:2,1 -// PORT_INCLUDE( beatmania_coinage_2nd_final ) // sw1:8,7,6,5,4,3 -// PORT_INCLUDE( beatmania_scoredisplay_2nd_final ) // sw2:1 -// PORT_INCLUDE( beatmania_demosounds_1st_final ) // sw2:3,2 - PORT_INCLUDE( beatmania_leveldisplay_4th_final ) // sw2:4 -// //uncommon // sw2:8,7,6,5 -// PORT_INCLUDE( beatmania_eventmode_2nd_final ) // sw3:1 -// //uncommon // sw3:4,3,2 -// //unused // sw3:6,5 -INPUT_PORTS_END - +#ifdef PRIORITY_EASINESS_TO_PLAY + #define BEATMANIA_DSW1_COINAGE_OLD \ + PORT_DIPNAME( 0x1f, 0x1f, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:8,7,6,5,4") \ + PORT_DIPSETTING( 0x1e, "1P 3C / 2P 6C / Continue 3C" ) \ + PORT_DIPSETTING( 0x01, "1P 3C / 2P 6C / Continue 2C" ) \ + PORT_DIPSETTING( 0x11, "1P 3C / 2P 6C / Continue 1C" ) \ + PORT_DIPSETTING( 0x15, "1P 3C / 2P 3C / Continue 3C" ) \ + PORT_DIPSETTING( 0x0d, "1P 3C / 2P 3C / Continue 2C" ) \ + PORT_DIPSETTING( 0x1d, "1P 3C / 2P 3C / Continue 1C" ) \ + PORT_DIPSETTING( 0x09, "1P 3C / 2P 4C / Continue 3C" ) \ + PORT_DIPSETTING( 0x19, "1P 3C / 2P 4C / Continue 2C" ) \ + PORT_DIPSETTING( 0x05, "1P 3C / 2P 4C / Continue 1C" ) \ + PORT_DIPSETTING( 0x03, "1P 2C / 2P 4C / Continue 2C" ) \ + PORT_DIPSETTING( 0x1f, "1P 2C / 2P 4C / Continue 1C" ) \ + PORT_DIPSETTING( 0x0b, "1P 2C / 2P 3C / Continue 2C" ) \ + PORT_DIPSETTING( 0x1b, "1P 2C / 2P 3C / Continue 1C" ) \ + PORT_DIPSETTING( 0x07, "1P 2C / 2P 2C / Continue 2C" ) \ + PORT_DIPSETTING( 0x17, "1P 2C / 2P 2C / Continue 1C" ) \ + PORT_DIPSETTING( 0x0f, "1P 1C / 2P 2C / Continue 1C" ) \ + PORT_DIPSETTING( 0x13, "1P 1C / 2P 1C / Continue 1C" ) \ + PORT_DIPSETTING( 0x00, "Free_Play" ) +#else + #define BEATMANIA_DSW1_COINAGE_OLD \ + PORT_DIPNAME( 0x1f, 0x1f, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:8,7,6,5,4") \ + PORT_DIPSETTING( 0x1e, "1P 3C / 2P 6C / Continue 3C" ) \ + PORT_DIPSETTING( 0x01, "1P 3C / 2P 6C / Continue 2C" ) \ + PORT_DIPSETTING( 0x11, "1P 3C / 2P 6C / Continue 1C" ) \ + PORT_DIPSETTING( 0x15, "1P 3C / 2P 3C / Continue 3C" ) \ + PORT_DIPSETTING( 0x0d, "1P 3C / 2P 3C / Continue 2C" ) \ + PORT_DIPSETTING( 0x1d, "1P 3C / 2P 3C / Continue 1C" ) \ + PORT_DIPSETTING( 0x09, "1P 3C / 2P 4C / Continue 3C" ) \ + PORT_DIPSETTING( 0x19, "1P 3C / 2P 4C / Continue 2C" ) \ + PORT_DIPSETTING( 0x05, "1P 3C / 2P 4C / Continue 1C" ) \ + PORT_DIPSETTING( 0x03, "1P 2C / 2P 4C / Continue 2C" ) \ + PORT_DIPSETTING( 0x1f, "1P 2C / 2P 4C / Continue 1C" ) \ + PORT_DIPSETTING( 0x0b, "1P 2C / 2P 3C / Continue 2C" ) \ + PORT_DIPSETTING( 0x1b, "1P 2C / 2P 3C / Continue 1C" ) \ + PORT_DIPSETTING( 0x07, "1P 2C / 2P 2C / Continue 2C" ) \ + PORT_DIPSETTING( 0x17, "1P 2C / 2P 2C / Continue 1C" ) \ + PORT_DIPSETTING( 0x0f, "1P 1C / 2P 2C / Continue 1C" ) \ + PORT_DIPSETTING( 0x13, "1P 1C / 2P 1C / Continue 1C" ) \ + PORT_DIPSETTING( 0x0e, "Free_Play" ) /* duplicated setting */ \ + PORT_DIPSETTING( 0x16, "Free_Play" ) /* duplicated setting */ \ + PORT_DIPSETTING( 0x06, "Free_Play" ) /* duplicated setting */ \ + PORT_DIPSETTING( 0x1a, "Free_Play" ) /* duplicated setting */ \ + PORT_DIPSETTING( 0x0a, "Free_Play" ) /* duplicated setting */ \ + PORT_DIPSETTING( 0x12, "Free_Play" ) /* duplicated setting */ \ + PORT_DIPSETTING( 0x02, "Free_Play" ) /* duplicated setting */ \ + PORT_DIPSETTING( 0x1c, "Free_Play" ) /* duplicated setting */ \ + PORT_DIPSETTING( 0x0c, "Free_Play" ) /* duplicated setting */ \ + PORT_DIPSETTING( 0x14, "Free_Play" ) /* duplicated setting */ \ + PORT_DIPSETTING( 0x04, "Free_Play" ) /* duplicated setting */ \ + PORT_DIPSETTING( 0x18, "Free_Play" ) /* duplicated setting */ \ + PORT_DIPSETTING( 0x08, "Free_Play" ) /* duplicated setting */ \ + PORT_DIPSETTING( 0x10, "Free_Play" ) /* duplicated setting */ \ + PORT_DIPSETTING( 0x00, "Free_Play" ) #endif +#define BEATMANIA_DSW1_COINAGE_NEW \ + PORT_DIPNAME( 0x20, 0x20, "Free Play (Ignore Coinage)" ) PORT_DIPLOCATION("SW1:3") \ + PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) \ + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) \ + PORT_DIPNAME( 0x1f, 0x1f, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:8,7,6,5,4") \ + PORT_DIPSETTING( 0x00, "1P 8C / 2P 16C / Continue 8C" ) \ + PORT_DIPSETTING( 0x01, "1P 8C / 2P 16C / Continue 7C" ) \ + PORT_DIPSETTING( 0x02, "1P 8C / 2P 16C / Continue 6C" ) \ + PORT_DIPSETTING( 0x03, "1P 7C / 2P 14C / Continue 7C" ) \ + PORT_DIPSETTING( 0x04, "1P 7C / 2P 14C / Continue 6C" ) \ + PORT_DIPSETTING( 0x05, "1P 7C / 2P 14C / Continue 5C" ) \ + PORT_DIPSETTING( 0x06, "1P 6C / 2P 12C / Continue 6C" ) \ + PORT_DIPSETTING( 0x07, "1P 6C / 2P 12C / Continue 5C" ) \ + PORT_DIPSETTING( 0x08, "1P 6C / 2P 12C / Continue 4C" ) \ + PORT_DIPSETTING( 0x09, "1P 5C / 2P 10C / Continue 5C" ) \ + PORT_DIPSETTING( 0x0b, "1P 5C / 2P 10C / Continue 3C" ) \ + PORT_DIPSETTING( 0x0a, "1P 5C / 2P 10C / Continue 4C" ) \ + PORT_DIPSETTING( 0x0c, "1P 4C / 2P 8C / Continue 4C" ) \ + PORT_DIPSETTING( 0x0d, "1P 4C / 2P 8C / Continue 3C" ) \ + PORT_DIPSETTING( 0x0e, "1P 4C / 2P 8C / Continue 2C" ) \ + PORT_DIPSETTING( 0x0f, "1P 3C / 2P 6C / Continue 3C" ) \ + PORT_DIPSETTING( 0x10, "1P 3C / 2P 6C / Continue 2C" ) \ + PORT_DIPSETTING( 0x11, "1P 3C / 2P 6C / Continue 1C" ) \ + PORT_DIPSETTING( 0x12, "1P 3C / 2P 4C / Continue 3C" ) \ + PORT_DIPSETTING( 0x13, "1P 3C / 2P 4C / Continue 2C" ) \ + PORT_DIPSETTING( 0x14, "1P 3C / 2P 4C / Continue 1C" ) \ + PORT_DIPSETTING( 0x15, "1P 3C / 2P 3C / Continue 3C" ) \ + PORT_DIPSETTING( 0x16, "1P 3C / 2P 3C / Continue 2C" ) \ + PORT_DIPSETTING( 0x17, "1P 3C / 2P 3C / Continue 1C" ) \ + PORT_DIPSETTING( 0x1a, "1P 2C / 2P 3C / Continue 2C" ) \ + PORT_DIPSETTING( 0x1b, "1P 2C / 2P 3C / Continue 1C" ) \ + PORT_DIPSETTING( 0x18, "1P 2C / 2P 4C / Continue 2C" ) \ + PORT_DIPSETTING( 0x1f, "1P 2C / 2P 4C / Continue 1C" ) \ + PORT_DIPSETTING( 0x1c, "1P 2C / 2P 2C / Continue 2C" ) \ + PORT_DIPSETTING( 0x1d, "1P 2C / 2P 2C / Continue 1C" ) \ + PORT_DIPSETTING( 0x1e, "1P 1C / 2P 2C / Continue 1C" ) \ + PORT_DIPSETTING( 0x19, "1P 1C / 2P 1C / Continue 1C" ) + +#define BEATMANIA_DSW2_SCOREDISPLAY \ + PORT_DIPNAME( 0x80, 0x80, "Score Display" ) PORT_DIPLOCATION("SW2:1") \ + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) \ + PORT_DIPSETTING( 0x80, DEF_STR( On ) ) + +#define BEATMANIA_DSW2_DEMOSOUNDS \ + PORT_DIPNAME( 0x60, 0x60, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:3,2") \ + PORT_DIPSETTING( 0x60, "Loud" ) \ + PORT_DIPSETTING( 0x20, DEF_STR( Medium ) ) \ + PORT_DIPSETTING( 0x40, DEF_STR( Low ) ) \ + PORT_DIPSETTING( 0x00, "Silent" ) + +#define BEATMANIA_DSW2_LEVELDISPLAY \ + PORT_DIPNAME( 0x10, 0x10, "Level Display" ) PORT_DIPLOCATION("SW2:4") \ + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) \ + PORT_DIPSETTING( 0x10, DEF_STR( On ) ) + +#define BEATMANIA_DSW2_DIFFICULITY_OLD \ + PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:8,7,6,5") \ + PORT_DIPSETTING( 0x0a, "Level 0" ) \ + PORT_DIPSETTING( 0x0e, "Level 1" ) \ + PORT_DIPSETTING( 0x0d, "Level 2" ) \ + PORT_DIPSETTING( 0x0c, "Level 3" ) \ + PORT_DIPSETTING( 0x0b, "Level 4" ) \ + PORT_DIPSETTING( 0x0f, "Level 5" ) \ + PORT_DIPSETTING( 0x09, "Level 6" ) \ + PORT_DIPSETTING( 0x08, "Level 7" ) \ + PORT_DIPSETTING( 0x07, "Level 8" ) \ + PORT_DIPSETTING( 0x06, "Level 9" ) \ + PORT_DIPSETTING( 0x05, "Level 10" ) \ + PORT_DIPSETTING( 0x04, "Level 11" ) \ + PORT_DIPSETTING( 0x03, "Level 12" ) \ + PORT_DIPSETTING( 0x02, "Level 13" ) \ + PORT_DIPSETTING( 0x01, "Level 14" ) \ + PORT_DIPSETTING( 0x00, "Level 15" ) + +#define BEATMANIA_DSW2_DIFFICULITY_NEW( str, str2 ) \ + PORT_DIPNAME( 0x0c, 0x0c, str ) PORT_DIPLOCATION("SW2:6,5") \ + PORT_DIPSETTING( 0x08, "Level 0" ) \ + PORT_DIPSETTING( 0x0c, "Level 1" ) \ + PORT_DIPSETTING( 0x04, "Level 2" ) \ + PORT_DIPSETTING( 0x00, "Level 3" ) \ + PORT_DIPNAME( 0x03, 0x03, str2 ) PORT_DIPLOCATION("SW2:8,7") \ + PORT_DIPSETTING( 0x02, "Level 0" ) \ + PORT_DIPSETTING( 0x03, "Level 1" ) \ + PORT_DIPSETTING( 0x01, "Level 2" ) \ + PORT_DIPSETTING( 0x00, "Level 3" ) + +#define BEATMANIA_DSW3_EVENTMODE \ + PORT_DIPNAME( 0x20, 0x20, "Event Mode (Ignore Coinage)" ) PORT_DIPLOCATION("SW3:1") \ + PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) \ + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + +#ifdef PRIORITY_EASINESS_TO_PLAY + #define BEATMANIA_DSW3_STAGES_OLD \ + PORT_DIPNAME( 0x1c, 0x1c, "Normal Mode Stages" ) PORT_CONDITION("DSW3", 0x20, PORTCOND_EQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \ + PORT_DIPSETTING( 0x10, "3 Stages" ) \ + PORT_DIPSETTING( 0x00, "4 Stages" ) \ + PORT_DIPSETTING( 0x08, "5 Stages" ) \ + PORT_DIPNAME( 0x1c, 0x1c, "Event Mode Stages" ) PORT_CONDITION("DSW3", 0x20, PORTCOND_NOTEQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \ + PORT_DIPSETTING( 0x0c, "1 Stage" ) \ + PORT_DIPSETTING( 0x14, "2 Stages" ) \ + PORT_DIPSETTING( 0x10, "3 Stages" ) \ + PORT_DIPSETTING( 0x00, "4 Stages" ) \ + PORT_DIPSETTING( 0x08, "5 Stages" ) +#else + #define BEATMANIA_DSW3_STAGES_OLD \ + PORT_DIPNAME( 0x1c, 0x1c, "Normal Mode Stages" ) PORT_CONDITION("DSW3", 0x20, PORTCOND_EQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \ + PORT_DIPSETTING( 0x10, "3 Stages" ) \ + PORT_DIPSETTING( 0x1c, "4 Stages" ) /* duplicated setting */ \ + PORT_DIPSETTING( 0x0c, "4 Stages" ) /* duplicated setting */ \ + PORT_DIPSETTING( 0x14, "4 Stages" ) /* duplicated setting */ \ + PORT_DIPSETTING( 0x04, "4 Stages" ) /* duplicated setting */ \ + PORT_DIPSETTING( 0x18, "4 Stages" ) /* duplicated setting */ \ + PORT_DIPSETTING( 0x00, "4 Stages" ) \ + PORT_DIPSETTING( 0x08, "5 Stages" ) \ + PORT_DIPNAME( 0x1c, 0x1c, "Event Mode Stages" ) PORT_CONDITION("DSW3", 0x20, PORTCOND_NOTEQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \ + PORT_DIPSETTING( 0x0c, "1 Stage" ) \ + PORT_DIPSETTING( 0x14, "2 Stages" ) \ + PORT_DIPSETTING( 0x10, "3 Stages" ) \ + PORT_DIPSETTING( 0x1c, "4 Stages" ) /* duplicated setting */ \ + PORT_DIPSETTING( 0x04, "4 Stages" ) /* duplicated setting */ \ + PORT_DIPSETTING( 0x18, "4 Stages" ) /* duplicated setting */ \ + PORT_DIPSETTING( 0x00, "4 Stages" ) \ + PORT_DIPSETTING( 0x08, "5 Stages" ) +#endif + +#ifdef PRIORITY_EASINESS_TO_PLAY + #define BEATMANIA_DSW3_STAGES_MIDDLE( str ) \ + PORT_DIPNAME( 0x1c, 0x1c, str ) PORT_CONDITION("DSW3", 0x20, PORTCOND_EQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \ + PORT_DIPSETTING( 0x10, "3 / 3 Stages" ) \ + PORT_DIPSETTING( 0x00, "4 / 4 Stages" ) \ + PORT_DIPSETTING( 0x08, "5 / 5 Stages" ) \ + PORT_DIPNAME( 0x1c, 0x1c, "Event Mode Stages" ) PORT_CONDITION("DSW3", 0x20, PORTCOND_NOTEQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \ + PORT_DIPSETTING( 0x0c, "1 Stage" ) \ + PORT_DIPSETTING( 0x14, "2 Stages" ) \ + PORT_DIPSETTING( 0x10, "3 Stages" ) \ + PORT_DIPSETTING( 0x00, "4 Stages" ) \ + PORT_DIPSETTING( 0x08, "5 Stages" ) +#else + #define BEATMANIA_DSW3_STAGES_MIDDLE( str ) \ + PORT_DIPNAME( 0x1c, 0x1c, str ) PORT_CONDITION("DSW3", 0x20, PORTCOND_EQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \ + PORT_DIPSETTING( 0x10, "3 / 3 Stages" ) \ + PORT_DIPSETTING( 0x1c, "4 / 4 Stages" ) /* duplicated setting */ \ + PORT_DIPSETTING( 0x0c, "4 / 4 Stages" ) /* duplicated setting */ \ + PORT_DIPSETTING( 0x14, "4 / 4 Stages" ) /* duplicated setting */ \ + PORT_DIPSETTING( 0x04, "4 / 4 Stages" ) /* duplicated setting */ \ + PORT_DIPSETTING( 0x18, "4 / 4 Stages" ) /* duplicated setting */ \ + PORT_DIPSETTING( 0x00, "4 / 4 Stages" ) \ + PORT_DIPSETTING( 0x08, "5 / 5 Stages" ) \ + PORT_DIPNAME( 0x1c, 0x1c, "Event Mode Stages" ) PORT_CONDITION("DSW3", 0x20, PORTCOND_NOTEQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \ + PORT_DIPSETTING( 0x0c, "1 Stage" ) \ + PORT_DIPSETTING( 0x14, "2 Stages" ) \ + PORT_DIPSETTING( 0x10, "3 Stages" ) \ + PORT_DIPSETTING( 0x1c, "4 Stages" ) /* duplicated setting */ \ + PORT_DIPSETTING( 0x04, "4 Stages" ) /* duplicated setting */ \ + PORT_DIPSETTING( 0x18, "4 Stages" ) /* duplicated setting */ \ + PORT_DIPSETTING( 0x00, "4 Stages" ) \ + PORT_DIPSETTING( 0x08, "5 Stages" ) +#endif + +#ifdef PRIORITY_EASINESS_TO_PLAY + #define BEATMANIA_DSW3_STAGES_NEW( str ) \ + PORT_DIPNAME( 0x1c, 0x1c, str ) PORT_CONDITION("DSW3", 0x20, PORTCOND_EQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \ + PORT_DIPSETTING( 0x10, "3 / 2 Stages" ) \ + PORT_DIPSETTING( 0x00, "4 / 3 Stages" ) \ + PORT_DIPSETTING( 0x08, "5 / 3 Stages" ) \ + PORT_DIPNAME( 0x1c, 0x1c, "Event Mode Stages" ) PORT_CONDITION("DSW3", 0x20, PORTCOND_NOTEQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \ + PORT_DIPSETTING( 0x0c, "1 Stage" ) \ + PORT_DIPSETTING( 0x14, "2 Stages" ) \ + PORT_DIPSETTING( 0x10, "3 Stages" ) \ + PORT_DIPSETTING( 0x00, "4 Stages" ) \ + PORT_DIPSETTING( 0x08, "5 Stages" ) +#else + #define BEATMANIA_DSW3_STAGES_NEW( str ) \ + PORT_DIPNAME( 0x1c, 0x1c, str ) PORT_CONDITION("DSW3", 0x20, PORTCOND_EQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \ + PORT_DIPSETTING( 0x10, "3 / 2 Stages" ) \ + PORT_DIPSETTING( 0x1c, "4 / 3 Stages" ) /* duplicated setting */ \ + PORT_DIPSETTING( 0x0c, "4 / 3 Stages" ) /* duplicated setting */ \ + PORT_DIPSETTING( 0x14, "4 / 3 Stages" ) /* duplicated setting */ \ + PORT_DIPSETTING( 0x04, "4 / 3 Stages" ) /* duplicated setting */ \ + PORT_DIPSETTING( 0x18, "4 / 3 Stages" ) /* duplicated setting */ \ + PORT_DIPSETTING( 0x00, "4 / 3 Stages" ) \ + PORT_DIPSETTING( 0x08, "5 / 3 Stages" ) \ + PORT_DIPNAME( 0x1c, 0x1c, "Event Mode Stages" ) PORT_CONDITION("DSW3", 0x20, PORTCOND_NOTEQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \ + PORT_DIPSETTING( 0x0c, "1 Stage" ) \ + PORT_DIPSETTING( 0x14, "2 Stages" ) \ + PORT_DIPSETTING( 0x10, "3 Stages" ) \ + PORT_DIPSETTING( 0x1c, "4 Stages" ) /* duplicated setting */ \ + PORT_DIPSETTING( 0x04, "4 Stages" ) /* duplicated setting */ \ + PORT_DIPSETTING( 0x18, "4 Stages" ) /* duplicated setting */ \ + PORT_DIPSETTING( 0x00, "4 Stages" ) \ + PORT_DIPSETTING( 0x08, "5 Stages" ) +#endif + +#define BM1STMIX_DSW1 \ + PORT_START("DSW1") \ + PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x80, "SW1:1" ) \ + PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x40, "SW1:2" ) \ + PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW1:3" ) \ + BEATMANIA_DSW1_COINAGE_OLD /* SW1:8,7,6,5,4 */ + +#define BM1STMIX_DSW2 \ + PORT_START("DSW2") \ + PORT_DIPNAME( 0x80, 0x80, "Enable Expert Mode" ) PORT_DIPLOCATION("SW2:1") \ + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) \ + PORT_DIPSETTING( 0x80, DEF_STR( Yes ) ) \ + BEATMANIA_DSW2_DEMOSOUNDS /* SW2:3,2 */ \ + PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW2:4" ) \ + PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW2:5" ) \ + PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SW2:6" ) \ + PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW2:7" ) \ + PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW2:8" ) + +#define BM1STMIX_DSW3 \ + PORT_START("DSW3") \ + PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) /* bit 7,6 don't exist */ \ + PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW3:1" ) \ + PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW3:2" ) \ + PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW3:3" ) \ + PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SW3:4" ) \ + PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW3:5" ) \ + PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW3:6" ) + +#define BM2NDMIX_DSW1 \ + PORT_START("DSW1") \ + PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x80, "SW1:1" ) \ + PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x40, "SW1:2" ) \ + BEATMANIA_DSW1_COINAGE_NEW /* SW1:8,7,6,5,4,3 */ + +#define BM2NDMIX_DSW2 \ + PORT_START("DSW2") \ + BEATMANIA_DSW2_SCOREDISPLAY /* SW2:1 */ \ + BEATMANIA_DSW2_DEMOSOUNDS /* SW2:3,2 */ \ + PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW2:4" ) \ + BEATMANIA_DSW2_DIFFICULITY_OLD /* SW2:3,8,7,6,5 */ + +#define BM2NDMIX_DSW3 \ + PORT_START("DSW3") \ + PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) /* bit 7,6 don't exist */ \ + BEATMANIA_DSW3_EVENTMODE /* SW3:1 */ \ + PORT_DIPNAME( 0x18, 0x18, "Event Mode Stages" ) PORT_DIPLOCATION("SW3:3,2") \ + PORT_DIPSETTING( 0x18, "1 Stage" ) \ + PORT_DIPSETTING( 0x08, "2 Stages" ) \ + PORT_DIPSETTING( 0x10, "3 Stages" ) \ + PORT_DIPSETTING( 0x00, "4 Stages" ) \ + PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SW3:4" ) \ + PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW3:5" ) \ + PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW3:6" ) + +#define BM3RDMIX_DSW3 \ + PORT_START("DSW3") \ + PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) /* bit 7,6 don't exist */ \ + BEATMANIA_DSW3_EVENTMODE /* SW3:1 */ \ + BEATMANIA_DSW3_STAGES_OLD /* SW3:4,3,2 */ \ + PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW3:5" ) \ + PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW3:6" ) + +#define BM4THMIX_DSW2( str, str2 ) \ + PORT_START("DSW2") \ + BEATMANIA_DSW2_SCOREDISPLAY /* SW2:1 */ \ + BEATMANIA_DSW2_DEMOSOUNDS /* SW2:3,2 */ \ + BEATMANIA_DSW2_LEVELDISPLAY /* SW2:4 */ \ + BEATMANIA_DSW2_DIFFICULITY_NEW( str, str2 ) /* SW2:8,7,6,5 */ + +#define BM4THMIX_DSW3( str ) \ + PORT_START("DSW3") \ + PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) /* bit 7,6 don't exist */ \ + BEATMANIA_DSW3_EVENTMODE /* SW3:1 */ \ + BEATMANIA_DSW3_STAGES_MIDDLE( str ) /* SW3:4,3,2 */ \ + PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW3:5" ) \ + PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW3:6" ) + +#define HMCOMPM2_DSW3( str ) \ + PORT_START("DSW3") \ + PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) /* bit 7,6 don't exist */ \ + BEATMANIA_DSW3_EVENTMODE /* SW3:1 */ \ + BEATMANIA_DSW3_STAGES_MIDDLE( str ) /* SW3:4,3,2 */ \ + PORT_DIPNAME( 0x02, 0x02, "Game Over Mode" ) PORT_DIPLOCATION("SW3:5") \ + PORT_DIPSETTING( 0x02, "On Stage Middle" ) \ + PORT_DIPSETTING( 0x00, "On Stage Last" ) \ + PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW3:6" ) + +#ifdef PRIORITY_EASINESS_TO_PLAY + #define BMDCT_DSW3( str ) \ + PORT_START("DSW3") \ + PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) /* bit 7,6 don't exist */ \ + BEATMANIA_DSW3_EVENTMODE /* SW3:1 */ \ + PORT_DIPNAME( 0x1c, 0x1c, str ) PORT_CONDITION("DSW3", 0x20, PORTCOND_EQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \ + PORT_DIPSETTING( 0x1c, "3 / 3 Stages" ) \ + PORT_DIPSETTING( 0x10, "4 / 4 Stages" ) \ + PORT_DIPNAME( 0x1c, 0x1c, "Event Mode Stages" ) PORT_CONDITION("DSW3", 0x20, PORTCOND_NOTEQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \ + PORT_DIPSETTING( 0x0c, "1 Stage" ) \ + PORT_DIPSETTING( 0x14, "2 Stages" ) \ + PORT_DIPSETTING( 0x10, "3 Stages" ) \ + PORT_DIPSETTING( 0x1c, "4 Stages" ) \ + PORT_DIPSETTING( 0x08, "5 Stages" ) \ + PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW3:5" ) \ + PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW3:6" ) +#else + #define BMDCT_DSW3( str ) \ + PORT_START("DSW3") \ + PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) /* bit 7,6 don't exist */ \ + BEATMANIA_DSW3_EVENTMODE /* SW3:1 */ \ + PORT_DIPNAME( 0x1c, 0x1c, str ) PORT_CONDITION("DSW3", 0x20, PORTCOND_EQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \ + PORT_DIPSETTING( 0x1c, "3 / 3 Stages" ) \ + PORT_DIPSETTING( 0x0c, "3 / 3 Stages" ) /* duplicated setting */ \ + PORT_DIPSETTING( 0x14, "3 / 3 Stages" ) /* duplicated setting */ \ + PORT_DIPSETTING( 0x04, "3 / 3 Stages" ) /* duplicated setting */ \ + PORT_DIPSETTING( 0x18, "3 / 3 Stages" ) /* duplicated setting */ \ + PORT_DIPSETTING( 0x08, "3 / 3 Stages" ) /* duplicated setting */ \ + PORT_DIPSETTING( 0x00, "3 / 3 Stages" ) /* duplicated setting */ \ + PORT_DIPSETTING( 0x10, "4 / 4 Stages" ) \ + PORT_DIPNAME( 0x1c, 0x1c, "Event Mode Stages" ) PORT_CONDITION("DSW3", 0x20, PORTCOND_NOTEQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \ + PORT_DIPSETTING( 0x0c, "1 Stage" ) \ + PORT_DIPSETTING( 0x14, "2 Stages" ) \ + PORT_DIPSETTING( 0x10, "3 Stages" ) \ + PORT_DIPSETTING( 0x1c, "4 Stages" ) \ + PORT_DIPSETTING( 0x04, "4 Stages" ) /* duplicated setting */ \ + PORT_DIPSETTING( 0x18, "4 Stages" ) /* duplicated setting */ \ + PORT_DIPSETTING( 0x00, "4 Stages" ) /* duplicated setting */ \ + PORT_DIPSETTING( 0x08, "5 Stages" ) \ + PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW3:5" ) \ + PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW3:6" ) +#endif + +#define BM6THMIX_DSW3( str ) \ + PORT_START("DSW3") \ + PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) /* bit 7,6 don't exist */ \ + BEATMANIA_DSW3_EVENTMODE /* SW3:1 */ \ + BEATMANIA_DSW3_STAGES_NEW( str ) /* SW3:4,3,2 */ \ + PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW3:5" ) \ + PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW3:6" ) + static INPUT_PORTS_START( bm1stmix ) PORT_INCLUDE( beatmania_btn ) - #if ! DEBUG_FREE_ALL_DIPSW - //unused // sw1:3,2,1 - PORT_INCLUDE( beatmania_coinage_1st ) // sw1:8,7,6,5,4 - PORT_INCLUDE( beatmania_expertmode_1st ) // sw2:1 - PORT_INCLUDE( beatmania_demosounds_1st_final ) // sw2:3,2 - //unused // sw2:8,7,6,5,4 - //unused // sw3:6,5,4,3,2,1 - #endif + BM1STMIX_DSW1 + BM1STMIX_DSW2 + BM1STMIX_DSW3 INPUT_PORTS_END static INPUT_PORTS_START( bm2ndmix ) PORT_INCLUDE( beatmania_btn ) - #if ! DEBUG_FREE_ALL_DIPSW - PORT_INCLUDE( beatmania_dipsw_common_2nd_comp1 ) -// //unused // sw1:2,1 -// PORT_INCLUDE( beatmania_coinage_2nd_final ) // sw1:8,7,6,5,4,3 -// PORT_INCLUDE( beatmania_scoredisplay_2nd_final ) // sw2:1 -// PORT_INCLUDE( beatmania_demosounds_1st_final ) // sw2:3,2 -// //unused // sw2:4 - PORT_INCLUDE( beatmania_difficulty_2nd_comp1 ) // sw2:8,7,6,5 -// PORT_INCLUDE( beatmania_eventmode_2nd_final ) // sw3:1 - //special // sw3:3,2 - //unused // sw3:5,4 - //special // sw3:6 - /* "Free Hidden Songs" 3-3=On 3-6=On */ - PORT_MODIFY("DSW3") - PORT_DIPNAME( 0x10, 0x10, "Unused (Used if Event Mode)" ) PORT_CONDITION("DSW3", 0x20, PORTCOND_NOTEQUALS, 0x00) PORT_DIPLOCATION("SW3:2") - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, "Free Hidden Songs (step1of2)" ) PORT_CONDITION("DSW3", 0x20, PORTCOND_NOTEQUALS, 0x00) PORT_DIPLOCATION("SW3:3") - PORT_DIPSETTING( 0x08, "No (Off)" ) - PORT_DIPSETTING( 0x00, "Yes (On)" ) - PORT_DIPNAME( 0x18, 0x18, frqstr_event_mode_stages ) PORT_CONDITION("DSW3", 0x20, PORTCOND_EQUALS, 0x00) PORT_DIPLOCATION("SW3:3,2") - PORT_DIPSETTING( 0x18, frqstr_stage_1 ) - PORT_DIPSETTING( 0x08, frqstr_stage_2 ) - PORT_DIPSETTING( 0x10, frqstr_stage_3 ) - PORT_DIPSETTING( 0x00, frqstr_stage_4 ) - PORT_DIPNAME( 0x01, 0x01, "Free Hidden Songs (step2of2)" ) PORT_CONDITION("DSW3", 0x20, PORTCOND_NOTEQUALS, 0x00) PORT_DIPLOCATION("SW3:6") - PORT_DIPSETTING( 0x01, "No (Off)" ) - PORT_DIPSETTING( 0x00, "Yes (On)" ) - PORT_DIPNAME( 0x01, 0x01, "Unused (Used if not Event Mode)" ) PORT_CONDITION("DSW3", 0x20, PORTCOND_EQUALS, 0x00) PORT_DIPLOCATION("SW3:6") - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - /* "Free Hidden Songs" 3-3=On 3-6=On */ - #endif + BM2NDMIX_DSW1 + BM2NDMIX_DSW2 + BM2NDMIX_DSW3 + /* "Free Hidden Songs" 3-3=On 3-6=On */ + PORT_MODIFY("DSW3") + BEATMANIA_DSW3_EVENTMODE /* SW3:1 */ + PORT_DIPNAME( 0x10, 0x10, "Unused (Used if Event Mode)" ) PORT_CONDITION("DSW3", 0x20, PORTCOND_EQUALS, 0x20) PORT_DIPLOCATION("SW3:2") + PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x08, "Free Hidden Songs (step1of2)" ) PORT_CONDITION("DSW3", 0x20, PORTCOND_EQUALS, 0x20) PORT_DIPLOCATION("SW3:3") + PORT_DIPSETTING( 0x08, "No (Off)" ) + PORT_DIPSETTING( 0x00, "Yes (On)" ) + PORT_DIPNAME( 0x18, 0x18, "Event Mode Stages" ) PORT_CONDITION("DSW3", 0x20, PORTCOND_NOTEQUALS, 0x20) PORT_DIPLOCATION("SW3:3,2") + PORT_DIPSETTING( 0x18, "1 Stage" ) + PORT_DIPSETTING( 0x08, "2 Stages" ) + PORT_DIPSETTING( 0x10, "3 Stages" ) + PORT_DIPSETTING( 0x00, "4 Stages" ) + PORT_DIPNAME( 0x01, 0x01, "Free Hidden Songs (step2of2)" ) PORT_CONDITION("DSW3", 0x20, PORTCOND_EQUALS, 0x20) PORT_DIPLOCATION("SW3:6") + PORT_DIPSETTING( 0x01, "No (Off)" ) + PORT_DIPSETTING( 0x00, "Yes (On)" ) + PORT_DIPNAME( 0x01, 0x01, "Unused (Used if not Event Mode)" ) PORT_CONDITION("DSW3", 0x20, PORTCOND_NOTEQUALS, 0x20) PORT_DIPLOCATION("SW3:6") + PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + /* "Free Hidden Songs" 3-3=On 3-6=On */ INPUT_PORTS_END static INPUT_PORTS_START( bm3rdmix ) PORT_INCLUDE( beatmania_btn ) - #if ! DEBUG_FREE_ALL_DIPSW - PORT_INCLUDE( beatmania_dipsw_common_2nd_comp1 ) -// //unused // sw1:2,1 -// PORT_INCLUDE( beatmania_coinage_2nd_final ) // sw1:8,7,6,5,4,3 -// PORT_INCLUDE( beatmania_scoredisplay_2nd_final ) // sw2:1 -// PORT_INCLUDE( beatmania_demosounds_1st_final ) // sw2:3,2 -// //unused // sw2:4 - PORT_INCLUDE( beatmania_difficulty_2nd_comp1 ) // sw2:8,7,6,5 -// PORT_INCLUDE( beatmania_eventmode_2nd_final ) // sw3:1 - PORT_INCLUDE( beatmania_stages_3rd_comp1 ) // sw3:4,3,2 -// //unused // sw3:6,5 - #endif + BM2NDMIX_DSW1 + BM2NDMIX_DSW2 + BM3RDMIX_DSW3 INPUT_PORTS_END static INPUT_PORTS_START( bmcompmx ) - PORT_INCLUDE( bm3rdmix ) - #if ! DEBUG_FREE_ALL_DIPSW - /* "Free Secret Expert Course" 1-1=Off 1-2=On 2-4=On 3-5=Off 3-6=On */ - PORT_MODIFY("DSW1") - PORT_DIPNAME( 0x80, 0x80, "Free Secret Expert Course (step1of5)" ) PORT_DIPLOCATION("SW1:1") - PORT_DIPSETTING( 0x80, "Yes (Off)" ) - PORT_DIPSETTING( 0x00, "No (On)" ) - PORT_DIPNAME( 0x40, 0x40, "Free Secret Expert Course (step2of5)" ) PORT_DIPLOCATION("SW1:2") - PORT_DIPSETTING( 0x40, "No (Off)" ) - PORT_DIPSETTING( 0x00, "Yes (On)" ) - PORT_MODIFY("DSW2") - PORT_DIPNAME( 0x10, 0x10, "Free Secret Expert Course (step3of5)" ) PORT_DIPLOCATION("SW2:4") - PORT_DIPSETTING( 0x10, "No (Off)" ) - PORT_DIPSETTING( 0x00, "Yes (On)" ) - PORT_MODIFY("DSW3") - PORT_DIPNAME( 0x02, 0x02, "Free Secret Expert Course (step4of5)" ) PORT_DIPLOCATION("SW3:5") - PORT_DIPSETTING( 0x02, "Yes (Off)" ) - PORT_DIPSETTING( 0x00, "No (On)" ) - PORT_DIPNAME( 0x01, 0x01, "Free Secret Expert Course (step5of5)" ) PORT_DIPLOCATION("SW3:6") - PORT_DIPSETTING( 0x01, "No (Off)" ) - PORT_DIPSETTING( 0x00, "Yes (On)" ) - /* "Free Secret Expert Course" 1-1=Off 1-2=On 2-4=On 3-5=Off 3-6=On */ - #endif + PORT_INCLUDE( beatmania_btn ) + BM2NDMIX_DSW1 + BM2NDMIX_DSW2 + BM3RDMIX_DSW3 + /* "Free Secret Expert Course" 1-1=Off 1-2=On 2-4=On 3-5=Off 3-6=On */ + PORT_MODIFY("DSW1") + PORT_DIPNAME( 0x80, 0x80, "Free Secret Expert Course (step1of5)" ) PORT_DIPLOCATION("SW1:1") + PORT_DIPSETTING( 0x80, "Yes (Off)" ) + PORT_DIPSETTING( 0x00, "No (On)" ) + PORT_DIPNAME( 0x40, 0x40, "Free Secret Expert Course (step2of5)" ) PORT_DIPLOCATION("SW1:2") + PORT_DIPSETTING( 0x40, "No (Off)" ) + PORT_DIPSETTING( 0x00, "Yes (On)" ) + PORT_MODIFY("DSW2") + PORT_DIPNAME( 0x10, 0x10, "Free Secret Expert Course (step3of5)" ) PORT_DIPLOCATION("SW2:4") + PORT_DIPSETTING( 0x10, "No (Off)" ) + PORT_DIPSETTING( 0x00, "Yes (On)" ) + PORT_MODIFY("DSW3") + PORT_DIPNAME( 0x02, 0x02, "Free Secret Expert Course (step4of5)" ) PORT_DIPLOCATION("SW3:5") + PORT_DIPSETTING( 0x02, "Yes (Off)" ) + PORT_DIPSETTING( 0x00, "No (On)" ) + PORT_DIPNAME( 0x01, 0x01, "Free Secret Expert Course (step5of5)" ) PORT_DIPLOCATION("SW3:6") + PORT_DIPSETTING( 0x01, "No (Off)" ) + PORT_DIPSETTING( 0x00, "Yes (On)" ) + /* "Free Secret Expert Course" 1-1=Off 1-2=On 2-4=On 3-5=Off 3-6=On */ +INPUT_PORTS_END + +static INPUT_PORTS_START( bm4thmix ) + PORT_INCLUDE( beatmania_btn ) + BM2NDMIX_DSW1 + BM4THMIX_DSW2( "Basic / Hard Mode Difficulty", "Expert Mode Difficulty" ) + BM4THMIX_DSW3( "Basic / Hard Mode Stages" ) + /* "Free Secret Expert Course" 1-1=On 1-2=Off 2-1=On 3-5=On */ + PORT_MODIFY("DSW1") + PORT_DIPNAME( 0x80, 0x80, "Free Secret Expert Course (step1of4)" ) PORT_DIPLOCATION("SW1:1") + PORT_DIPSETTING( 0x80, "No (Off)" ) + PORT_DIPSETTING( 0x00, "Yes (On)" ) + PORT_DIPNAME( 0x40, 0x40, "Free Secret Expert Course (step2of4)" ) PORT_DIPLOCATION("SW1:2") + PORT_DIPSETTING( 0x40, "Yes (Off)" ) + PORT_DIPSETTING( 0x00, "No (On)" ) + PORT_MODIFY("DSW2") + PORT_DIPNAME( 0x80, 0x80, "Score Display / Free Secret Expert Course (step3of4)" ) PORT_DIPLOCATION("SW2:1") + PORT_DIPSETTING( 0x80, "On / No (Off)" ) + PORT_DIPSETTING( 0x00, "Off / Yes (On)" ) + PORT_MODIFY("DSW3") + PORT_DIPNAME( 0x02, 0x02, "Free Secret Expert Course (step4of4)" ) PORT_DIPLOCATION("SW3:5") + PORT_DIPSETTING( 0x02, "No (Off)" ) + PORT_DIPSETTING( 0x00, "Yes (On)" ) + PORT_DIPNAME( 0x01, 0x01, "Score Display (if Free Secret Expert Course)" ) PORT_DIPLOCATION("SW3:6") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x01, DEF_STR( On ) ) + /* "Free Secret Expert Course" 1-1=On 1-2=Off 2-1=On 3-5=On */ INPUT_PORTS_END static INPUT_PORTS_START( bm5thmix ) /* and bmcompm2 */ PORT_INCLUDE( beatmania_btn ) - #if ! DEBUG_FREE_ALL_DIPSW - PORT_INCLUDE( beatmania_dipsw_common_4th_final ) -// //unused // sw1:2,1 -// PORT_INCLUDE( beatmania_coinage_2nd_final ) // sw1:8,7,6,5,4,3 -// PORT_INCLUDE( beatmania_scoredisplay_2nd_final ) // sw2:1 -// PORT_INCLUDE( beatmania_demosounds_1st_final ) // sw2:3,2 -// PORT_INCLUDE( beatmania_leveldisplay_4th_final ) // sw2:4 - INPUT_PORTS_MACRO_BEATMANIA_DIFFICULITY_4TH_FINAL( frqstr_basic_hard_mode_difficulty, frqstr_expert_mode_difficulty ) // sw2:8,7,6,5 -// PORT_INCLUDE( beatmania_eventmode_2nd_final ) // sw3:1 - INPUT_PORTS_MACRO_BEATMANIA_STAGES_4TH_CORE( frqstr_basic_hard_mode_stages ) // sw3:4,3,2 -// //unused // sw3:6,5 - #endif -INPUT_PORTS_END - -static INPUT_PORTS_START( bm4thmix ) - PORT_INCLUDE( bm5thmix ) - #if ! DEBUG_FREE_ALL_DIPSW - /* "Free Secret Expert Course" 1-1=On 1-2=Off 2-1=On 3-5=On */ - PORT_MODIFY("DSW1") - PORT_DIPNAME( 0x80, 0x80, "Free Secret Expert Course (step1of4)" ) PORT_DIPLOCATION("SW1:1") - PORT_DIPSETTING( 0x80, "No (Off)" ) - PORT_DIPSETTING( 0x00, "Yes (On)" ) - PORT_DIPNAME( 0x40, 0x40, "Free Secret Expert Course (step2of4)" ) PORT_DIPLOCATION("SW1:2") - PORT_DIPSETTING( 0x40, "Yes (Off)" ) - PORT_DIPSETTING( 0x00, "No (On)" ) - PORT_MODIFY("DSW2") - PORT_DIPNAME( 0x80, 0x80, "Score Display / Free Secret Expert Course (step3of4)" ) PORT_DIPLOCATION("SW2:1") - PORT_DIPSETTING( 0x80, "On / No (Off)" ) - PORT_DIPSETTING( 0x00, "Off / Yes (On)" ) - PORT_MODIFY("DSW3") - PORT_DIPNAME( 0x02, 0x02, "Free Secret Expert Course (step4of4)" ) PORT_DIPLOCATION("SW3:5") - PORT_DIPSETTING( 0x02, "No (Off)" ) - PORT_DIPSETTING( 0x00, "Yes (On)" ) - PORT_DIPNAME( 0x01, 0x01, "Score Display (if Free Secret Expert Course)" ) PORT_DIPLOCATION("SW3:6") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - /* "Free Secret Expert Course" 1-1=On 1-2=Off 2-1=On 3-5=On */ - #endif + BM2NDMIX_DSW1 + BM4THMIX_DSW2( "Basic / Hard Mode Difficulty", "Expert Mode Difficulty" ) + BM4THMIX_DSW3( "Basic / Hard Mode Stages" ) INPUT_PORTS_END static INPUT_PORTS_START( hmcompm2 ) - PORT_INCLUDE( bm5thmix ) - #if ! DEBUG_FREE_ALL_DIPSW - PORT_MODIFY("DSW3") - PORT_DIPNAME( 0x02, 0x02, "Game Over Mode" ) PORT_DIPLOCATION("SW3:5") - PORT_DIPSETTING( 0x02, "On Stage Middle" ) - PORT_DIPSETTING( 0x00, "On Stage Last" ) - #endif + PORT_INCLUDE( beatmania_btn ) + BM2NDMIX_DSW1 + BM4THMIX_DSW2( "Basic / Hard Mode Difficulty", "Expert Mode Difficulty" ) + BM4THMIX_DSW3( "Basic / Hard Mode Stages" ) + PORT_MODIFY("DSW3") + PORT_DIPNAME( 0x02, 0x02, "Game Over Mode" ) PORT_DIPLOCATION("SW3:5") + PORT_DIPSETTING( 0x02, "On Stage Middle" ) + PORT_DIPSETTING( 0x00, "On Stage Last" ) INPUT_PORTS_END static INPUT_PORTS_START( bmclubmx ) PORT_INCLUDE( beatmania_btn ) - #if ! DEBUG_FREE_ALL_DIPSW - PORT_INCLUDE( beatmania_dipsw_common_4th_final ) -// //unused // sw1:2,1 -// PORT_INCLUDE( beatmania_coinage_2nd_final ) // sw1:8,7,6,5,4,3 -// PORT_INCLUDE( beatmania_scoredisplay_2nd_final ) // sw2:1 -// PORT_INCLUDE( beatmania_demosounds_1st_final ) // sw2:3,2 -// PORT_INCLUDE( beatmania_leveldisplay_4th_final ) // sw2:4 - INPUT_PORTS_MACRO_BEATMANIA_DIFFICULITY_4TH_FINAL( frqstr_normal_maniac_mode_difficulty, frqstr_expert_mode_difficulty ) // sw2:8,7,6,5 -// PORT_INCLUDE( beatmania_eventmode_2nd_final ) // sw3:1 - INPUT_PORTS_MACRO_BEATMANIA_STAGES_4TH_CORE( frqstr_normal_maniac_mode_stages ) // sw3:4,3,2 -// //unused // sw3:6,5 - #endif + BM2NDMIX_DSW1 + BM4THMIX_DSW2( "Normal / Maniac Mode Difficulty", "Expert Mode Difficulty" ) + BM4THMIX_DSW3( "Normal / Maniac Mode Stages" ) INPUT_PORTS_END static INPUT_PORTS_START( bmdct ) PORT_INCLUDE( beatmania_btn ) - #if ! DEBUG_FREE_ALL_DIPSW - PORT_INCLUDE( beatmania_dipsw_common_4th_final ) -// //unused // sw1:2,1 -// PORT_INCLUDE( beatmania_coinage_2nd_final ) // sw1:8,7,6,5,4,3 -// PORT_INCLUDE( beatmania_scoredisplay_2nd_final ) // sw2:1 -// PORT_INCLUDE( beatmania_demosounds_1st_final ) // sw2:3,2 -// PORT_INCLUDE( beatmania_leveldisplay_4th_final ) // sw2:4 - INPUT_PORTS_MACRO_BEATMANIA_DIFFICULITY_4TH_FINAL( frqstr_basic_hard_mode_difficulty, frqstr_monkey_live_mode_difficulty ) // sw2:8,7,6,5 -// PORT_INCLUDE( beatmania_eventmode_2nd_final ) // sw3:1 - INPUT_PORTS_MACRO_BEATMANIA_STAGES_DCT( frqstr_basic_hard_mode_stages ) // sw3:4,3,2 -// //unused // sw3:6,5 - #endif + BM2NDMIX_DSW1 + BM4THMIX_DSW2( "Basic / Hard Mode Difficulty", "Monkey Live Mode Difficulty" ) + BMDCT_DSW3( "Basic / Hard Mode Stages" ) INPUT_PORTS_END static INPUT_PORTS_START( bmcorerm ) PORT_INCLUDE( beatmania_btn ) - #if ! DEBUG_FREE_ALL_DIPSW - PORT_INCLUDE( beatmania_dipsw_common_4th_final ) -// //unused // sw1:2,1 -// PORT_INCLUDE( beatmania_coinage_2nd_final ) // sw1:8,7,6,5,4,3 -// PORT_INCLUDE( beatmania_scoredisplay_2nd_final ) // sw2:1 -// PORT_INCLUDE( beatmania_demosounds_1st_final ) // sw2:3,2 -// PORT_INCLUDE( beatmania_leveldisplay_4th_final ) // sw2:4 - INPUT_PORTS_MACRO_BEATMANIA_DIFFICULITY_4TH_FINAL( frqstr_normal_hard_mode_difficulty, frqstr_expert_mode_difficulty ) // sw2:8,7,6,5 -// PORT_INCLUDE( beatmania_eventmode_2nd_final ) // sw3:1 - INPUT_PORTS_MACRO_BEATMANIA_STAGES_4TH_CORE( frqstr_normal_hard_mode_stages ) // sw3:4,3,2 -// //unused // sw3:6,5 - #endif + BM2NDMIX_DSW1 + BM4THMIX_DSW2( "Normal / Hard Mode Difficulty", "Expert Mode Difficulty" ) + BM4THMIX_DSW3( "Normal / Hard Mode Stages" ) INPUT_PORTS_END static INPUT_PORTS_START( bm6thmix ) /* bm7thmix, and bmfinal */ PORT_INCLUDE( beatmania_btn ) - #if ! DEBUG_FREE_ALL_DIPSW - PORT_INCLUDE( beatmania_dipsw_common_4th_final ) -// //unused // sw1:2,1 -// PORT_INCLUDE( beatmania_coinage_2nd_final ) // sw1:8,7,6,5,4,3 -// PORT_INCLUDE( beatmania_scoredisplay_2nd_final ) // sw2:1 -// PORT_INCLUDE( beatmania_demosounds_1st_final ) // sw2:3,2 -// PORT_INCLUDE( beatmania_leveldisplay_4th_final ) // sw2:4 - INPUT_PORTS_MACRO_BEATMANIA_DIFFICULITY_4TH_FINAL( frqstr_normal_free_mode_difficulty, frqstr_expert_mode_difficulty ) // sw2:8,7,6,5 -// PORT_INCLUDE( beatmania_eventmode_2nd_final ) // sw3:1 - INPUT_PORTS_MACRO_BEATMANIA_STAGES_6TH_FINAL( frqstr_normal_free_mode_stages ) // sw3:4,3,2 -// //unused // sw3:6,5 - #endif + BM2NDMIX_DSW1 + BM4THMIX_DSW2( "Normal / Free Mode Difficulty", "Expert Mode Difficulty" ) + BM6THMIX_DSW3( "Normal / Free Mode Stages" ) INPUT_PORTS_END @@ -1254,215 +1089,183 @@ static INPUT_PORTS_START( popnmusic_btn ) PORT_START("BTN2") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON8 ) PORT_PLAYER(1) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON9 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) /* Used by beatmania as P2 BUTTON 5 */ + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Used by beatmania as P2 BUTTON 5 */ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) /* Used by beatmania as P1 START */ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) /* Used by beatmania as P2 START */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) /* Used by beatmania as EFFECT */ + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Used by beatmania as P1 START */ + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Used by beatmania as P2 START */ + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Used by beatmania as EFFECT */ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_START("BTN3") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_CODE(KEYCODE_F2) /* TEST SW */ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Service") /* SERVICE */ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Reset") /* RESET SW */ PORT_BIT( 0xf8, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_START("DSW1") - PORT_DIPUNUSED_DIPLOC( 0x80, IP_ACTIVE_LOW, "SW1:1" ) - PORT_DIPUNUSED_DIPLOC( 0x40, IP_ACTIVE_LOW, "SW1:2" ) - PORT_DIPUNUSED_DIPLOC( 0x20, IP_ACTIVE_LOW, "SW1:3" ) - PORT_DIPUNUSED_DIPLOC( 0x10, IP_ACTIVE_LOW, "SW1:4" ) - PORT_DIPUNUSED_DIPLOC( 0x08, IP_ACTIVE_LOW, "SW1:5" ) - PORT_DIPUNUSED_DIPLOC( 0x04, IP_ACTIVE_LOW, "SW1:6" ) - PORT_DIPUNUSED_DIPLOC( 0x02, IP_ACTIVE_LOW, "SW1:7" ) - PORT_DIPUNUSED_DIPLOC( 0x01, IP_ACTIVE_LOW, "SW1:8" ) - PORT_START("DSW2") - PORT_DIPUNUSED_DIPLOC( 0x80, IP_ACTIVE_LOW, "SW2:1" ) - PORT_DIPUNUSED_DIPLOC( 0x40, IP_ACTIVE_LOW, "SW2:2" ) - PORT_DIPUNUSED_DIPLOC( 0x20, IP_ACTIVE_LOW, "SW2:3" ) - PORT_DIPUNUSED_DIPLOC( 0x10, IP_ACTIVE_LOW, "SW2:4" ) - PORT_DIPUNUSED_DIPLOC( 0x08, IP_ACTIVE_LOW, "SW2:5" ) - PORT_DIPUNUSED_DIPLOC( 0x04, IP_ACTIVE_LOW, "SW2:6" ) - PORT_DIPUNUSED_DIPLOC( 0x02, IP_ACTIVE_LOW, "SW2:7" ) - PORT_DIPUNUSED_DIPLOC( 0x01, IP_ACTIVE_LOW, "SW2:8" ) - PORT_START("DSW3") - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* bit 7,6 don't exist */ - PORT_DIPUNUSED_DIPLOC( 0x20, IP_ACTIVE_LOW, "SW3:1" ) - PORT_DIPUNUSED_DIPLOC( 0x10, IP_ACTIVE_LOW, "SW3:2" ) - PORT_DIPUNUSED_DIPLOC( 0x08, IP_ACTIVE_LOW, "SW3:3" ) - PORT_DIPUNUSED_DIPLOC( 0x04, IP_ACTIVE_LOW, "SW3:4" ) - PORT_DIPUNUSED_DIPLOC( 0x02, IP_ACTIVE_LOW, "SW3:5" ) - PORT_DIPUNUSED_DIPLOC( 0x01, IP_ACTIVE_LOW, "SW3:6" ) PORT_START("UNK1") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("UNK2") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) //PORT_START("TT1") /* turn table 1P */ //PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(30) PORT_KEYDELTA(15) PORT_PLAYER(1) //PORT_START("TT2") /* turn table 2P */ //PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(30) PORT_KEYDELTA(15) PORT_PLAYER(2) INPUT_PORTS_END -#if ! DEBUG_FREE_ALL_DIPSW +#define POPN_DSW1_COINAGE_OLD \ + PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:8,7,6,5") \ + PORT_DIPSETTING( 0x01, "1P 5C / Continue 5C" ) \ + PORT_DIPSETTING( 0x02, "1P 5C / Continue 4C" ) \ + PORT_DIPSETTING( 0x03, "1P 5C / Continue 3C" ) \ + PORT_DIPSETTING( 0x04, "1P 5C / Continue 2C" ) \ + PORT_DIPSETTING( 0x05, "1P 5C / Continue 1C" ) \ + PORT_DIPSETTING( 0x06, "1P 4C / Continue 4C" ) \ + PORT_DIPSETTING( 0x07, "1P 4C / Continue 3C" ) \ + PORT_DIPSETTING( 0x08, "1P 4C / Continue 2C" ) \ + PORT_DIPSETTING( 0x09, "1P 4C / Continue 1C" ) \ + PORT_DIPSETTING( 0x0a, "1P 3C / Continue 3C" ) \ + PORT_DIPSETTING( 0x0b, "1P 3C / Continue 2C" ) \ + PORT_DIPSETTING( 0x0c, "1P 3C / Continue 1C" ) \ + PORT_DIPSETTING( 0x0d, "1P 2C / Continue 2C" ) \ + PORT_DIPSETTING( 0x0f, "1P 2C / Continue 1C" ) \ + PORT_DIPSETTING( 0x0e, "1P 1C / Continue 1C" ) \ + PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) -static INPUT_PORTS_START( popnmusic_jamminggauge_1st_3rd ) - PORT_MODIFY("DSW1") - PORT_DIPNAME( 0xc0, 0xc0, "Jamming Gauge Blocks" ) PORT_DIPLOCATION("SW1:2,1") - PORT_DIPSETTING( 0x80, "5" ) - PORT_DIPSETTING( 0xc0, "6" ) - PORT_DIPSETTING( 0x40, "7" ) +#define POPN_DSW1_COINAGE_NEW \ + PORT_DIPNAME( 0x1f, 0x1f, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:8,7,6,5,4") \ + PORT_DIPSETTING( 0x01, "1P 8C / Continue 8C" ) \ + PORT_DIPSETTING( 0x02, "1P 8C / Continue 7C" ) \ + PORT_DIPSETTING( 0x03, "1P 8C / Continue 6C" ) \ + PORT_DIPSETTING( 0x04, "1P 8C / Continue 5C" ) \ + PORT_DIPSETTING( 0x05, "1P 8C / Continue 4C" ) \ + PORT_DIPSETTING( 0x06, "1P 8C / Continue 3C" ) \ + PORT_DIPSETTING( 0x07, "1P 7C / Continue 7C" ) \ + PORT_DIPSETTING( 0x08, "1P 7C / Continue 6C" ) \ + PORT_DIPSETTING( 0x09, "1P 7C / Continue 5C" ) \ + PORT_DIPSETTING( 0x0a, "1P 7C / Continue 4C" ) \ + PORT_DIPSETTING( 0x0b, "1P 7C / Continue 3C" ) \ + PORT_DIPSETTING( 0x0c, "1P 6C / Continue 6C" ) \ + PORT_DIPSETTING( 0x0d, "1P 6C / Continue 5C" ) \ + PORT_DIPSETTING( 0x0e, "1P 6C / Continue 4C" ) \ + PORT_DIPSETTING( 0x0f, "1P 6C / Continue 3C" ) \ + PORT_DIPSETTING( 0x10, "1P 6C / Continue 2C" ) \ + PORT_DIPSETTING( 0x11, "1P 5C / Continue 5C" ) \ + PORT_DIPSETTING( 0x12, "1P 5C / Continue 4C" ) \ + PORT_DIPSETTING( 0x13, "1P 5C / Continue 3C" ) \ + PORT_DIPSETTING( 0x14, "1P 5C / Continue 2C" ) \ + PORT_DIPSETTING( 0x15, "1P 5C / Continue 1C" ) \ + PORT_DIPSETTING( 0x16, "1P 4C / Continue 4C" ) \ + PORT_DIPSETTING( 0x17, "1P 4C / Continue 3C" ) \ + PORT_DIPSETTING( 0x18, "1P 4C / Continue 2C" ) \ + PORT_DIPSETTING( 0x19, "1P 4C / Continue 1C" ) \ + PORT_DIPSETTING( 0x1a, "1P 3C / Continue 3C" ) \ + PORT_DIPSETTING( 0x1b, "1P 3C / Continue 2C" ) \ + PORT_DIPSETTING( 0x1c, "1P 3C / Continue 1C" ) \ + PORT_DIPSETTING( 0x1d, "1P 2C / Continue 2C" ) \ + PORT_DIPSETTING( 0x1f, "1P 2C / Continue 1C" ) \ + PORT_DIPSETTING( 0x1e, "1P 1C / Continue 1C" ) \ + PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) + +#define POPN_DSW1_JAMMINGGAUGE \ + PORT_DIPNAME( 0xc0, 0xc0, "Jamming Gauge Blocks" ) PORT_DIPLOCATION("SW1:2,1") \ + PORT_DIPSETTING( 0x80, "5" ) \ + PORT_DIPSETTING( 0xc0, "6" ) \ + PORT_DIPSETTING( 0x40, "7" ) \ PORT_DIPSETTING( 0x00, "8" ) -INPUT_PORTS_END -#ifdef UNUSED_DEFINITION -static INPUT_PORTS_START( popnmusic_coinage_1st ) - PORT_MODIFY("DSW1") - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:8,7,6,5") - PORT_DIPSETTING( 0x01, frqstr_coinage_5c_5c ) - PORT_DIPSETTING( 0x02, frqstr_coinage_5c_4c ) - PORT_DIPSETTING( 0x03, frqstr_coinage_5c_3c ) - PORT_DIPSETTING( 0x04, frqstr_coinage_5c_2c ) - PORT_DIPSETTING( 0x05, frqstr_coinage_5c_1c ) - PORT_DIPSETTING( 0x06, frqstr_coinage_4c_4c ) - PORT_DIPSETTING( 0x07, frqstr_coinage_4c_3c ) - PORT_DIPSETTING( 0x08, frqstr_coinage_4c_2c ) - PORT_DIPSETTING( 0x09, frqstr_coinage_4c_1c ) - PORT_DIPSETTING( 0x0a, frqstr_coinage_3c_3c ) - PORT_DIPSETTING( 0x0b, frqstr_coinage_3c_2c ) - PORT_DIPSETTING( 0x0c, frqstr_coinage_3c_1c ) - PORT_DIPSETTING( 0x0d, frqstr_coinage_2c_2c ) - PORT_DIPSETTING( 0x0f, frqstr_coinage_2c_1c ) - PORT_DIPSETTING( 0x0e, frqstr_coinage_1c_1c ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) -INPUT_PORTS_END -#endif +#define POPN_DSW2_GAUGEDECREMENT \ + PORT_DIPNAME( 0x0c, 0x0c, "Gauge Decrement Level" ) PORT_DIPLOCATION("SW2:6,5") \ + PORT_DIPSETTING( 0x04, "0" ) \ + PORT_DIPSETTING( 0x0c, "1" ) \ + PORT_DIPSETTING( 0x08, "2" ) \ + PORT_DIPSETTING( 0x00, "3" ) -static INPUT_PORTS_START( popnmusic_coinage_2nd_3rd ) - PORT_MODIFY("DSW1") - PORT_DIPNAME( 0x1f, 0x1f, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:8,7,6,5,4") - PORT_DIPSETTING( 0x01, frqstr_coinage_8c_8c ) - PORT_DIPSETTING( 0x02, frqstr_coinage_8c_7c ) - PORT_DIPSETTING( 0x03, frqstr_coinage_8c_6c ) - PORT_DIPSETTING( 0x04, frqstr_coinage_8c_5c ) - PORT_DIPSETTING( 0x05, frqstr_coinage_8c_4c ) - PORT_DIPSETTING( 0x06, frqstr_coinage_8c_3c ) - PORT_DIPSETTING( 0x07, frqstr_coinage_7c_7c ) - PORT_DIPSETTING( 0x08, frqstr_coinage_7c_6c ) - PORT_DIPSETTING( 0x09, frqstr_coinage_7c_5c ) - PORT_DIPSETTING( 0x0a, frqstr_coinage_7c_4c ) - PORT_DIPSETTING( 0x0b, frqstr_coinage_7c_3c ) - PORT_DIPSETTING( 0x0c, frqstr_coinage_6c_6c ) - PORT_DIPSETTING( 0x0d, frqstr_coinage_6c_5c ) - PORT_DIPSETTING( 0x0e, frqstr_coinage_6c_4c ) - PORT_DIPSETTING( 0x0f, frqstr_coinage_6c_3c ) - PORT_DIPSETTING( 0x10, frqstr_coinage_6c_2c ) - PORT_DIPSETTING( 0x11, frqstr_coinage_5c_5c ) - PORT_DIPSETTING( 0x12, frqstr_coinage_5c_4c ) - PORT_DIPSETTING( 0x13, frqstr_coinage_5c_3c ) - PORT_DIPSETTING( 0x14, frqstr_coinage_5c_2c ) - PORT_DIPSETTING( 0x15, frqstr_coinage_5c_1c ) - PORT_DIPSETTING( 0x16, frqstr_coinage_4c_4c ) - PORT_DIPSETTING( 0x17, frqstr_coinage_4c_3c ) - PORT_DIPSETTING( 0x18, frqstr_coinage_4c_2c ) - PORT_DIPSETTING( 0x19, frqstr_coinage_4c_1c ) - PORT_DIPSETTING( 0x1a, frqstr_coinage_3c_3c ) - PORT_DIPSETTING( 0x1b, frqstr_coinage_3c_2c ) - PORT_DIPSETTING( 0x1c, frqstr_coinage_3c_1c ) - PORT_DIPSETTING( 0x1d, frqstr_coinage_2c_2c ) - PORT_DIPSETTING( 0x1f, frqstr_coinage_2c_1c ) - PORT_DIPSETTING( 0x1e, frqstr_coinage_1c_1c ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) -INPUT_PORTS_END +#define POPN_DSW2_GAUGEINCREMENT \ + PORT_DIPNAME( 0x03, 0x03, "Gauge Increment Level" ) PORT_DIPLOCATION("SW2:8,7") \ + PORT_DIPSETTING( 0x01, "0" ) \ + PORT_DIPSETTING( 0x03, "1" ) \ + PORT_DIPSETTING( 0x02, "2" ) \ + PORT_DIPSETTING( 0x00, "3" ) -#ifdef UNUSED_DEFINITION -static INPUT_PORTS_START( popnmusic_jamming_1st ) - PORT_MODIFY("DSW2") - PORT_DIPNAME( 0x10, 0x10, "Normal Mode Jamming" ) PORT_DIPLOCATION("SW2:4") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x10, DEF_STR( On ) ) -INPUT_PORTS_END -#endif +#define POPN1_DSW1 \ + PORT_START("DSW1") \ + POPN_DSW1_JAMMINGGAUGE \ + PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW1:3" ) \ + PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW1:4" ) \ + POPN_DSW1_COINAGE_OLD -static INPUT_PORTS_START( popnmusic_jamming_2nd_3rd ) - PORT_MODIFY("DSW1") - PORT_DIPNAME( 0x20, 0x20, "Normal Mode Jamming" ) PORT_DIPLOCATION("SW1:3") - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) +#define POPN2_DSW1 \ + PORT_START("DSW1") \ + POPN_DSW1_JAMMINGGAUGE \ + PORT_DIPNAME( 0x20, 0x20, "Normal Mode Jamming" ) PORT_DIPLOCATION("SW1:3") \ + PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) \ + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) \ + POPN_DSW1_COINAGE_NEW + +#define POPN1_DSW2 \ + PORT_START("DSW2") \ + BEATMANIA_DSW2_SCOREDISPLAY /* same as BEATMANIA */ \ + BEATMANIA_DSW2_DEMOSOUNDS /* same as BEATMANIA */ \ + PORT_DIPNAME( 0x10, 0x10, "Normal Mode Jamming" ) PORT_DIPLOCATION("SW2:4") \ + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) \ + PORT_DIPSETTING( 0x10, DEF_STR( On ) ) \ + POPN_DSW2_GAUGEDECREMENT \ + POPN_DSW2_GAUGEINCREMENT + +#define POPN2_DSW2 \ + PORT_START("DSW2") \ + BEATMANIA_DSW2_SCOREDISPLAY /* same as BEATMANIA */ \ + BEATMANIA_DSW2_DEMOSOUNDS /* same as BEATMANIA */ \ + PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW2:4" ) \ + POPN_DSW2_GAUGEDECREMENT \ + POPN_DSW2_GAUGEINCREMENT + +#define POPN1_DSW3 \ + PORT_START("DSW3") \ + PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) /* bit 7,6 don't exist */ \ + PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW3:1" ) \ + PORT_DIPNAME( 0x10, 0x10, "All Song Mode [*A]" ) PORT_DIPLOCATION("SW3:2") \ + PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) \ + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) \ + PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW3:3" ) \ + PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SW3:4" ) \ + PORT_DIPNAME( 0x02, 0x02, "Enable \"RAVE\" (with *A=On) [*B]" ) PORT_DIPLOCATION("SW3:5") \ + PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) \ + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) \ + PORT_DIPNAME( 0x01, 0x01, "Enable \"Bonus Track\" (with *A=On and *B=On )" ) PORT_DIPLOCATION("SW3:6") \ + PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) \ PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END + /* "All Song Mode" 3-2=On */ + /* "Enable RAVE" 3-2=On 3-5=On */ + /* "Enable BONUS TRACK" 3-2=On 3-5=On 3-6=On */ -static INPUT_PORTS_START( popnmusic_gaugedecrement_1st_3rd ) - PORT_MODIFY("DSW2") - PORT_DIPNAME( 0x0c, 0x0c, "Gauge Decrement Level" ) PORT_DIPLOCATION("SW2:6,5") - PORT_DIPSETTING( 0x04, "0" ) - PORT_DIPSETTING( 0x0c, "1" ) - PORT_DIPSETTING( 0x08, "2" ) - PORT_DIPSETTING( 0x00, "3" ) -INPUT_PORTS_END - -static INPUT_PORTS_START( popnmusic_gaugeincrement_1st_3rd ) - PORT_MODIFY("DSW2") - PORT_DIPNAME( 0x03, 0x03, "Gauge Increment Level" ) PORT_DIPLOCATION("SW2:8,7") - PORT_DIPSETTING( 0x01, "0" ) - PORT_DIPSETTING( 0x03, "1" ) - PORT_DIPSETTING( 0x02, "2" ) - PORT_DIPSETTING( 0x00, "3" ) -INPUT_PORTS_END - -#endif +#define POPN2_DSW3 \ + PORT_START("DSW3") \ + PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) /* bit 7,6 don't exist */ \ + PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW3:1" ) \ + PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW3:2" ) \ + PORT_DIPNAME( 0x08, 0x08, "All Song Mode" ) PORT_DIPLOCATION("SW3:3") \ + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) \ + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) \ + PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SW3:4" ) \ + PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW3:5" ) \ + PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW3:6" ) + /* "All Song Mode" 3-3=On */ #ifdef UNUSED_DEFINITION static INPUT_PORTS_START( popn1 ) - PORT_INCLUDE( popnmusic_btn ) // button, system - #if ! DEBUG_FREE_ALL_DIPSW - PORT_INCLUDE( popnmusic_jamminggauge_1st_3rd ) // sw1:2,1 - //unused // sw1:4,3 - PORT_INCLUDE( popnmusic_coinage_1st ) // sw1:8,7,6,5 - PORT_INCLUDE( beatmania_scoredisplay_2nd_final ) // sw2:1 // same as BEATMANIA - PORT_INCLUDE( beatmania_demosounds_1st_final ) // sw2:3,2 // same as BEATMANIA - PORT_INCLUDE( popnmusic_jamming_1st ) // sw2:4 - PORT_INCLUDE( popnmusic_gaugedecrement_1st_3rd ) // sw2:6,5 - PORT_INCLUDE( popnmusic_gaugeincrement_1st_3rd ) // sw2:8,7 - - PORT_MODIFY("DSW3") - //unused // sw3:1 - PORT_DIPNAME( 0x10, 0x10, "All Song Mode [*A]" ) PORT_DIPLOCATION("SW3:2") - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - //unused // sw3:4,3 - PORT_DIPNAME( 0x02, 0x02, "Enable \"RAVE\" (with *A=On) [*B]" ) PORT_DIPLOCATION("SW3:5") - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x01, 0x01, "Enable \"Bonus Track\" (with *A=On and *B=On )" ) PORT_DIPLOCATION("SW3:6") - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - /* "All Song Mode" 3-2=On */ - /* "Enable RAVE" 3-2=On 3-5=On */ - /* "Enable BONUS TRACK" 3-2=On 3-5=On 3-6=On */ - #endif + PORT_INCLUDE( popnmusic_btn ) + POPN1_DSW1 + POPN1_DSW2 + POPN1_DSW3 INPUT_PORTS_END #endif static INPUT_PORTS_START( popnmusic ) /* popn2 and popn3 */ - PORT_INCLUDE( popnmusic_btn ) // button, system - #if ! DEBUG_FREE_ALL_DIPSW - PORT_INCLUDE( popnmusic_jamminggauge_1st_3rd ) // sw1:2,1 - PORT_INCLUDE( popnmusic_jamming_2nd_3rd ) // sw1:3 - PORT_INCLUDE( popnmusic_coinage_2nd_3rd ) // sw1:8,7,6,5,4 - PORT_INCLUDE( beatmania_scoredisplay_2nd_final ) // sw2:1 // same as BEATMANIA - PORT_INCLUDE( beatmania_demosounds_1st_final ) // sw2:3,2 // same as BEATMANIA - //unused // sw2:4 - PORT_INCLUDE( popnmusic_gaugedecrement_1st_3rd ) // sw2:6,5 - PORT_INCLUDE( popnmusic_gaugeincrement_1st_3rd ) // sw2:8,7 - - PORT_MODIFY("DSW3") - //unused // sw3:2,1 - PORT_DIPNAME( 0x08, 0x08, "All Song Mode" ) PORT_DIPLOCATION("SW3:3") - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - //unused // sw3:6,5,4 - /* "All Song Mode" 3-3=On */ - #endif + PORT_INCLUDE( popnmusic_btn ) + POPN2_DSW1 + POPN2_DSW2 + POPN2_DSW3 INPUT_PORTS_END - //--------- Pop'n Stage #ifdef UNUSED_DEFINITION @@ -1488,119 +1291,92 @@ static INPUT_PORTS_START( popnstage ) PORT_START("BTN3") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_CODE(KEYCODE_F2) /* TEST SW */ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Service") /* SERVICE */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) /* Used by beatmania as RESET SW */ + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Used by beatmania as RESET SW */ PORT_BIT( 0xf8, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_START("DSW1") - PORT_DIPUNUSED_DIPLOC( 0x80, IP_ACTIVE_LOW, "SW1:1" ) - PORT_DIPUNUSED_DIPLOC( 0x40, IP_ACTIVE_LOW, "SW1:2" ) - PORT_DIPUNUSED_DIPLOC( 0x20, IP_ACTIVE_LOW, "SW1:3" ) - PORT_DIPUNUSED_DIPLOC( 0x10, IP_ACTIVE_LOW, "SW1:4" ) - PORT_DIPUNUSED_DIPLOC( 0x08, IP_ACTIVE_LOW, "SW1:5" ) - PORT_DIPUNUSED_DIPLOC( 0x04, IP_ACTIVE_LOW, "SW1:6" ) - PORT_DIPUNUSED_DIPLOC( 0x02, IP_ACTIVE_LOW, "SW1:7" ) - PORT_DIPUNUSED_DIPLOC( 0x01, IP_ACTIVE_LOW, "SW1:8" ) - PORT_START("DSW2") - PORT_DIPUNUSED_DIPLOC( 0x80, IP_ACTIVE_LOW, "SW2:1" ) - PORT_DIPUNUSED_DIPLOC( 0x40, IP_ACTIVE_LOW, "SW2:2" ) - PORT_DIPUNUSED_DIPLOC( 0x20, IP_ACTIVE_LOW, "SW2:3" ) - PORT_DIPUNUSED_DIPLOC( 0x10, IP_ACTIVE_LOW, "SW2:4" ) - PORT_DIPUNUSED_DIPLOC( 0x08, IP_ACTIVE_LOW, "SW2:5" ) - PORT_DIPUNUSED_DIPLOC( 0x04, IP_ACTIVE_LOW, "SW2:6" ) - PORT_DIPUNUSED_DIPLOC( 0x02, IP_ACTIVE_LOW, "SW2:7" ) - PORT_DIPUNUSED_DIPLOC( 0x01, IP_ACTIVE_LOW, "SW2:8" ) - PORT_START("DSW3") - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* bit 7,6 don't exist */ - PORT_DIPUNUSED_DIPLOC( 0x20, IP_ACTIVE_LOW, "SW3:1" ) - PORT_DIPUNUSED_DIPLOC( 0x10, IP_ACTIVE_LOW, "SW3:2" ) - PORT_DIPUNUSED_DIPLOC( 0x08, IP_ACTIVE_LOW, "SW3:3" ) - PORT_DIPUNUSED_DIPLOC( 0x04, IP_ACTIVE_LOW, "SW3:4" ) - PORT_DIPUNUSED_DIPLOC( 0x02, IP_ACTIVE_LOW, "SW3:5" ) - PORT_DIPUNUSED_DIPLOC( 0x01, IP_ACTIVE_LOW, "SW3:6" ) PORT_START("UNK1") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("UNK2") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) //PORT_START("TT1") /* turn table 1P */ //PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(30) PORT_KEYDELTA(15) PORT_PLAYER(1) //PORT_START("TT2") /* turn table 2P */ //PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(30) PORT_KEYDELTA(15) PORT_PLAYER(2) - #if ! DEBUG_FREE_ALL_DIPSW - PORT_MODIFY("DSW1") - PORT_DIPNAME( 0xe0, 0xe0, "Coinage (6 Panels)" ) PORT_DIPLOCATION("SW1:3,2,1") - PORT_DIPSETTING( 0x20, frqstr_coinage_4c_2c ) - PORT_DIPSETTING( 0x40, frqstr_coinage_3c_3c ) - PORT_DIPSETTING( 0x60, frqstr_coinage_3c_2c ) - PORT_DIPSETTING( 0x80, frqstr_coinage_3c_1c ) - PORT_DIPSETTING( 0xa0, frqstr_coinage_2c_2c ) - PORT_DIPSETTING( 0xe0, frqstr_coinage_2c_1c ) - PORT_DIPSETTING( 0xc0, frqstr_coinage_1c_1c ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0x1e, 0x1e, "Coinage (10 Panels)" ) PORT_DIPLOCATION("SW1:7,6,5,4") - PORT_DIPSETTING( 0x02, frqstr_coinage_5c_5c ) - PORT_DIPSETTING( 0x04, frqstr_coinage_5c_4c ) - PORT_DIPSETTING( 0x06, frqstr_coinage_5c_3c ) - PORT_DIPSETTING( 0x08, frqstr_coinage_5c_2c ) - PORT_DIPSETTING( 0x0c, frqstr_coinage_5c_1c ) - PORT_DIPSETTING( 0x0a, frqstr_coinage_4c_4c ) - PORT_DIPSETTING( 0x0e, frqstr_coinage_4c_3c ) - PORT_DIPSETTING( 0x10, frqstr_coinage_4c_2c ) - PORT_DIPSETTING( 0x12, frqstr_coinage_4c_1c ) - PORT_DIPSETTING( 0x14, frqstr_coinage_3c_3c ) - PORT_DIPSETTING( 0x1e, frqstr_coinage_3c_2c ) - PORT_DIPSETTING( 0x16, frqstr_coinage_3c_1c ) - PORT_DIPSETTING( 0x18, frqstr_coinage_2c_2c ) - PORT_DIPSETTING( 0x1a, frqstr_coinage_2c_1c ) - PORT_DIPSETTING( 0x1c, frqstr_coinage_1c_1c ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - //unused // sw1:8 + PORT_START("DSW1") + PORT_DIPNAME( 0xe0, 0xe0, "Coinage (6 Buttons)" ) PORT_DIPLOCATION("SW1:3,2,1") + PORT_DIPSETTING( 0x20, "1P 4C / Continue 2C" ) + PORT_DIPSETTING( 0x40, "1P 3C / Continue 3C" ) + PORT_DIPSETTING( 0x60, "1P 3C / Continue 2C" ) + PORT_DIPSETTING( 0x80, "1P 3C / Continue 1C" ) + PORT_DIPSETTING( 0xa0, "1P 2C / Continue 2C" ) + PORT_DIPSETTING( 0xe0, "1P 2C / Continue 1C" ) + PORT_DIPSETTING( 0xc0, "1P 1C / Continue 1C" ) + PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) + PORT_DIPNAME( 0x1e, 0x1e, "Coinage (10 Buttons)" ) PORT_DIPLOCATION("SW1:7,6,5,4") + PORT_DIPSETTING( 0x02, "1P 5C / Continue 5C" ) + PORT_DIPSETTING( 0x04, "1P 5C / Continue 4C" ) + PORT_DIPSETTING( 0x06, "1P 5C / Continue 3C" ) + PORT_DIPSETTING( 0x08, "1P 5C / Continue 2C" ) + PORT_DIPSETTING( 0x0c, "1P 5C / Continue 1C" ) + PORT_DIPSETTING( 0x0a, "1P 4C / Continue 4C" ) + PORT_DIPSETTING( 0x0e, "1P 4C / Continue 3C" ) + PORT_DIPSETTING( 0x10, "1P 4C / Continue 2C" ) + PORT_DIPSETTING( 0x12, "1P 4C / Continue 1C" ) + PORT_DIPSETTING( 0x14, "1P 3C / Continue 3C" ) + PORT_DIPSETTING( 0x1e, "1P 3C / Continue 2C" ) + PORT_DIPSETTING( 0x16, "1P 3C / Continue 1C" ) + PORT_DIPSETTING( 0x18, "1P 2C / Continue 2C" ) + PORT_DIPSETTING( 0x1a, "1P 2C / Continue 1C" ) + PORT_DIPSETTING( 0x1c, "1P 1C / Continue 1C" ) + PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) + PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW1:8" ) - PORT_MODIFY("DSW2") - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:2,1") - PORT_DIPSETTING( 0xc0, "Loud" ) - PORT_DIPSETTING( 0x80, DEF_STR ( Medium ) ) - PORT_DIPSETTING( 0x40, DEF_STR ( Low ) ) - PORT_DIPSETTING( 0x00, "Silent" ) - PORT_DIPNAME( 0x30, 0x30, "Gauge Decrement Level" ) PORT_DIPLOCATION("SW2:4,3") - PORT_DIPSETTING( 0x20, "0" ) - PORT_DIPSETTING( 0x30, "1" ) - PORT_DIPSETTING( 0x10, "2" ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPNAME( 0x0c, 0x0c, "Gauge Increment Level" ) PORT_DIPLOCATION("SW2:6,5") - PORT_DIPSETTING( 0x08, "0" ) - PORT_DIPSETTING( 0x0c, "1" ) - PORT_DIPSETTING( 0x04, "2" ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPNAME( 0x02, 0x02, "Score Display" ) PORT_DIPLOCATION("SW2:7") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - //unused // sw2:8 + PORT_START("DSW2") + PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:2,1") + PORT_DIPSETTING( 0xc0, "Loud" ) + PORT_DIPSETTING( 0x80, DEF_STR ( Medium ) ) + PORT_DIPSETTING( 0x40, DEF_STR ( Low ) ) + PORT_DIPSETTING( 0x00, "Silent" ) + PORT_DIPNAME( 0x30, 0x30, "Gauge Decrement Level" ) PORT_DIPLOCATION("SW1:4,3") + PORT_DIPSETTING( 0x20, "0" ) + PORT_DIPSETTING( 0x30, "1" ) + PORT_DIPSETTING( 0x10, "2" ) + PORT_DIPSETTING( 0x00, "3" ) + PORT_DIPNAME( 0x0c, 0x0c, "Gauge Increment Level" ) PORT_DIPLOCATION("SW1:6,5") + PORT_DIPSETTING( 0x08, "0" ) + PORT_DIPSETTING( 0x0c, "1" ) + PORT_DIPSETTING( 0x04, "2" ) + PORT_DIPSETTING( 0x00, "3" ) + PORT_DIPNAME( 0x02, 0x02, "Score Display" ) PORT_DIPLOCATION("SW1:7") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x02, DEF_STR( On ) ) + PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW2:8" ) - //PORT_MODIFY("DSW3") - //unused // sw3:6,5,4,3,2,1 - #endif + PORT_START("DSW3") + PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) /* bit 7,6 don't exist */ + PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW3:1" ) + PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW3:2" ) + PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW3:3" ) + PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SW3:4" ) + PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW3:5" ) + PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW3:6" ) INPUT_PORTS_END #endif #ifdef UNUSED_DEFINITION static INPUT_PORTS_START( popnstex ) PORT_INCLUDE( popnstage ) - #if ! DEBUG_FREE_ALL_DIPSW - PORT_MODIFY("DSW3") - PORT_DIPNAME( 0x20, 0x20, "Enable Secret Mode (step1of3)" ) PORT_DIPLOCATION("SW3:1") - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - //unused // sw3:2 - PORT_DIPNAME( 0x08, 0x08, "Enable Secret Mode (step2of3)" ) PORT_DIPLOCATION("SW3:3") - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - //unused // sw3:4 - PORT_DIPNAME( 0x02, 0x02, "Enable Secret Mode (step3of3)" ) PORT_DIPLOCATION("SW3:5") - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - //unused // sw3:6 - /* "Enable Secret Mode" 3-1=On 3-3=On 3-5=On */ - #endif + PORT_MODIFY("DSW3") + PORT_DIPNAME( 0x20, 0x20, "Enable Secret Mode (step1of3)" ) PORT_DIPLOCATION("SW3:1") + PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x08, "Enable Secret Mode (step2of3)" ) PORT_DIPLOCATION("SW3:3") + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x02, 0x02, "Enable Secret Mode (step3of3)" ) PORT_DIPLOCATION("SW3:5") + PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + /* "Enable Secret Mode" 3-1=On 3-3=On 3-5=On */ INPUT_PORTS_END #endif @@ -2475,32 +2251,31 @@ static DRIVER_INIT( bmfinal ) // commented out games should also run on this driver -// YEAR, NAME, PARENT, MACHINE,INPUT, INIT, MONITOR,COMPANY,FULLNAME,FLAGS -GAME( 1997, bm1stmix, 0, djmain, bm1stmix, beatmania, ROT0, "Konami", "beatmania (ver JA-B)", 0 ) -GAME( 1998, bm2ndmix, 0, djmain, bm2ndmix, beatmania, ROT0, "Konami", "beatmania 2nd MIX (ver JA-B)", 0 ) -GAME( 1998, bm2ndmxa, bm2ndmix, djmain, bm2ndmix, beatmania, ROT0, "Konami", "beatmania 2nd MIX (ver JA-A)", 0 ) -GAME( 1998, bm3rdmix, 0, djmain, bm3rdmix, beatmania, ROT0, "Konami", "beatmania 3rd MIX (ver JA-A)", 0 ) -GAME( 1999, bmcompmx, 0, djmain, bmcompmx, beatmania, ROT0, "Konami", "beatmania complete MIX (ver JA-B)", 0 ) -GAME( 1999, hmcompmx, bmcompmx, djmain, bmcompmx, hmcompmx, ROT0, "Konami", "hiphopmania complete MIX (ver UA-B)", 0 ) -GAME( 1999, bm4thmix, 0, djmain, bm4thmix, bm4thmix, ROT0, "Konami", "beatmania 4th MIX (ver JA-A)", 0 ) -GAME( 1999, bm5thmix, 0, djmain, bm5thmix, bm5thmix, ROT0, "Konami", "beatmania 5th MIX (ver JA-A)", 0 ) -GAME( 2000, bmcompm2, 0, djmain, bm5thmix, bmcompm2, ROT0, "Konami", "beatmania complete MIX 2 (ver JA-A)", 0 ) -GAME( 2000, hmcompm2, bmcompm2, djmain, hmcompm2, hmcompm2, ROT0, "Konami", "hiphopmania complete MIX 2 (ver UA-A)", 0 ) -GAME( 2000, bmclubmx, 0, djmain, bmclubmx, bmclubmx, ROT0, "Konami", "beatmania Club MIX (ver JA-A)", 0 ) -GAME( 2000, bmdct, 0, djmain, bmdct, bmdct, ROT0, "Konami", "beatmania featuring Dreams Come True (ver JA-A)", 0 ) -GAME( 2000, bmcorerm, 0, djmain, bmcorerm, bmcorerm, ROT0, "Konami", "beatmania CORE REMIX (ver JA-A)", 0 ) -GAME( 2001, bm6thmix, 0, djmain, bm6thmix, bm6thmix, ROT0, "Konami", "beatmania 6th MIX (ver JA-A)", 0 ) -GAME( 2001, bm7thmix, 0, djmain, bm6thmix, bm7thmix, ROT0, "Konami", "beatmania 7th MIX (ver JA-B)", 0 ) -GAME( 2002, bmfinal, 0, djmain, bm6thmix, bmfinal, ROT0, "Konami", "beatmania THE FINAL (ver JA-A)", 0 ) +GAME( 1997, bm1stmix, 0, djmain, bm1stmix, beatmania, ROT0, "Konami", "beatmania (ver JA-B)", 0 ) +GAME( 1998, bm2ndmix, 0, djmain, bm2ndmix, beatmania, ROT0, "Konami", "beatmania 2nd MIX (ver JA-B)", 0 ) +GAME( 1998, bm2ndmxa, bm2ndmix, djmain, bm2ndmix, beatmania, ROT0, "Konami", "beatmania 2nd MIX (ver JA-A)", 0 ) +GAME( 1998, bm3rdmix, 0, djmain, bm3rdmix, beatmania, ROT0, "Konami", "beatmania 3rd MIX (ver JA-A)", 0 ) +GAME( 1999, bmcompmx, 0, djmain, bmcompmx, beatmania, ROT0, "Konami", "beatmania complete MIX (ver JA-B)", 0 ) +GAME( 1999, hmcompmx, bmcompmx, djmain, bmcompmx, hmcompmx, ROT0, "Konami", "hiphopmania complete MIX (ver UA-B)", 0 ) +GAME( 1999, bm4thmix, 0, djmain, bm4thmix, bm4thmix, ROT0, "Konami", "beatmania 4th MIX (ver JA-A)", 0 ) +GAME( 1999, bm5thmix, 0, djmain, bm5thmix, bm5thmix, ROT0, "Konami", "beatmania 5th MIX (ver JA-A)", 0 ) +GAME( 2000, bmcompm2, 0, djmain, bm5thmix, bmcompm2, ROT0, "Konami", "beatmania complete MIX 2 (ver JA-A)", 0 ) +GAME( 2000, hmcompm2, bmcompm2, djmain, hmcompm2, hmcompm2, ROT0, "Konami", "hiphopmania complete MIX 2 (ver UA-A)", 0 ) +GAME( 2000, bmclubmx, 0, djmain, bmclubmx, bmclubmx, ROT0, "Konami", "beatmania Club MIX (ver JA-A)", 0 ) +GAME( 2000, bmdct, 0, djmain, bmdct, bmdct, ROT0, "Konami", "beatmania featuring Dreams Come True (ver JA-A)", 0 ) +GAME( 2000, bmcorerm, 0, djmain, bmcorerm, bmcorerm, ROT0, "Konami", "beatmania CORE REMIX (ver JA-A)", 0 ) +GAME( 2001, bm6thmix, 0, djmain, bm6thmix, bm6thmix, ROT0, "Konami", "beatmania 6th MIX (ver JA-A)", 0 ) +GAME( 2001, bm7thmix, 0, djmain, bm6thmix, bm7thmix, ROT0, "Konami", "beatmania 7th MIX (ver JA-B)", 0 ) +GAME( 2002, bmfinal, 0, djmain, bm6thmix, bmfinal, ROT0, "Konami", "beatmania THE FINAL (ver JA-A)", 0 ) -GAME( 1998, popn2, 0, djmain, popnmusic, beatmania, ROT0, "Konami", "Pop'n Music 2 (ver JA-A)", 0 ) +GAME( 1998, popn2, 0, djmain, popnmusic, beatmania, ROT0, "Konami", "Pop'n Music 2 (ver JA-A)", 0 ) #if 0 // for reference, these sets have not been verified -GAME( 1998, bm3rdmxb, bm3rdmix, djmain, bm3rdmix, beatmania, ROT0, "Konami", "beatmania 3rd MIX (ver JA-B)", 0 ) +GAME( 1998, bm3rdmxb, bm3rdmix, djmain, bm3rdmix, beatmania, ROT0, "Konami", "beatmania 3rd MIX (ver JA-B)", 0 ) -GAME( 1998, popn1, 0, djmain, popn1, beatmania, ROT0, "Konami", "Pop'n Music 1 (ver JA-A)", 0 ) -GAME( 1999, popn3, 0, djmain, popnmusic, beatmania, ROT0, "Konami", "Pop'n Music 3 (ver JA-A)", 0 ) +GAME( 1998, popn1, 0, djmain, popn1, beatmania, ROT0, "Konami", "Pop'n Music 1 (ver JA-A)", 0 ) +GAME( 1999, popn3, 0, djmain, popnmusic, beatmania, ROT0, "Konami", "Pop'n Music 3 (ver JA-A)", 0 ) -GAME( 1999, popnstex, 0, djmain, popnstex, beatmania, ROT0, "Konami", "Pop'n Stage EX (ver JB-A)", 0 ) +GAME( 1999, popnstex, 0, djmain, popnstex, beatmania, ROT0, "Konami", "Pop'n Stage EX (ver JB-A)", 0 ) #endif diff --git a/src/mame/drivers/toaplan1.c b/src/mame/drivers/toaplan1.c index 79d2a60ccba..1e93e3f5e3a 100644 --- a/src/mame/drivers/toaplan1.c +++ b/src/mame/drivers/toaplan1.c @@ -16,9 +16,8 @@ Supported games: rallybik TP-O12 Rally Bike/Dash Yarou truxton TP-O13B Truxton/Tatsujin hellfire B90 HellFire (2 Player version) Uses Taito rom ID number - hellfir1 B90 HellFire (1 Player, ealier version) Uses Taito rom ID number + hellfir1 B90 HellFire (1 Player version) Uses Taito rom ID number hellfir2 B90 HellFire (2 Player, ealier version) Uses Taito rom ID number - hellfir3 B90 HellFire (1 Player version) Uses Taito rom ID number zerowing TP-O15 Zero Wing zerowing2 TP-O15 Zero Wing (2 player simultaneous version, Williams Electronics Games, Inc) demonwld TP-O16 Demon's World/Horror Story [1990] @@ -61,8 +60,8 @@ Stephh's notes (based on the games M68000 and Z80 code and some tests) : - Region read from DSWB (port 0x50 in CPU1) then stored at 0x8004 (CPU1 shared RAM) = 0x180008.w (CPU0 shared RAM) then stored at 0x0804f4.w . - Coinage relies on bits 4 and 5 of the region (code at 0x0ccc in CPU1) : - * ..10.... : TOAPLAN_COINAGE_EUROPE (tables at 0x0c35 (COIN1) and 0x0c3d (COIN2) in CPU1) - * else : TOAPLAN_COINAGE_JAPAN (table at 0x0c25 (COIN1 AND COIN2) in CPU1) + * ..10.... : TOAPLAN_COINAGE_WORLD (tables at 0x0c35 (COIN1) and 0x0c3d (COIN2) in CPU1) + * else : TOAPLAN_COINAGE_JAPAN_OLD (table at 0x0c25 (COIN1 AND COIN2) in CPU1) - Title screen relies on bits 4 and 5 of the region (code at 0x00220e) : * ..00.... : "Dash Yarou" * else : "Rally Bike" @@ -94,10 +93,10 @@ Stephh's notes (based on the games M68000 and Z80 code and some tests) : - Region read from Territory Jumper (port 0x70 in CPU1) then stored at 0x8005 (CPU1 shared RAM) = 0x18000a.w (CPU0 shared RAM) then stored at 0x081b7c.w . - Coinage relies on bits 0 and 1 of the region (code at 0x0ccc in CPU1) : - * ......00 : TOAPLAN_COINAGE_JAPAN (table at 0x0d21 (COIN1 AND COIN2) in CPU1) - * ......01 : TOAPLAN_COINAGE_JAPAN (table at 0x0d29 (COIN1 AND COIN2) in CPU1) - * ......10 : TOAPLAN_COINAGE_EUROPE (tables at 0x0d31 (COIN1) and 0x0d39 (COIN2) in CPU1) - * ......11 : TOAPLAN_COINAGE_JAPAN (table at 0x0d21 (COIN1 AND COIN2) in CPU1) + * ......00 : TOAPLAN_COINAGE_JAPAN_OLD (table at 0x0d21 (COIN1 AND COIN2) in CPU1) + * ......01 : TOAPLAN_COINAGE_JAPAN_OLD (table at 0x0d29 (COIN1 AND COIN2) in CPU1) + * ......10 : TOAPLAN_COINAGE_WORLD (tables at 0x0d31 (COIN1) and 0x0d39 (COIN2) in CPU1) + * ......11 : TOAPLAN_COINAGE_JAPAN_OLD (table at 0x0d21 (COIN1 AND COIN2) in CPU1) - Title screen relies on bits 0 to 2 of the region (code at 0x002c58) : * .....000 : "Tatsujin" * else : "Truxton" @@ -139,9 +138,9 @@ Stephh's notes (based on the games M68000 and Z80 code and some tests) : - Region read from Territory Jumper (port 0x70 in CPU1) then stored at 0x8005 (CPU1 shared RAM) = 0x44000a.w (CPU0 shared RAM) then stored at 0x081810.w . - Coinage relies on bits 0 and 1 of the region (code at 0x0c59 in CPU1) : - * ......00 : TOAPLAN_COINAGE_JAPAN (table at 0x0cae (COIN1 AND COIN2) in CPU1) - * ......01 : TOAPLAN_COINAGE_JAPAN (table at 0x0cb6 (COIN1 AND COIN2) in CPU1) - * ......1. : TOAPLAN_COINAGE_EUROPE (tables at 0x0cbe (COIN1) and 0x0cb6 (COIN2) in CPU1) + * ......00 : TOAPLAN_COINAGE_JAPAN_OLD (table at 0x0cae (COIN1 AND COIN2) in CPU1) + * ......01 : TOAPLAN_COINAGE_JAPAN_OLD (table at 0x0cb6 (COIN1 AND COIN2) in CPU1) + * ......1. : TOAPLAN_COINAGE_WORLD (tables at 0x0cbe (COIN1) and 0x0cb6 (COIN2) in CPU1) - Notice screen relies on bit 0 of the region (code at 0x000564) : * .......0 : "FOR USE IN JAPAN ONLY" * .......1 : "FOR USE IN U.S.A. ONLY" @@ -230,8 +229,8 @@ Stephh's notes (based on the games M68000 and Z80 code and some tests) : - Region read from Territory Jumper (0x440011.b). - Coinage relies on bits 0 to 3 of the region : - * ....0010 : TOAPLAN_COINAGE_EUROPE - * else : TOAPLAN_COINAGE_JAPAN + * ....0010 : TOAPLAN_COINAGE_WORLD + * else : TOAPLAN_COINAGE_JAPAN_OLD This a guess based on the "test mode" (code at 0x01a804) because of the missing Z180 CPU. - Notice screen relies on bits 0 to 3 of the region (code at 0x018bf2 - table at 0x019736) : * ....0000 : "JAPAN ONLY" @@ -303,10 +302,10 @@ Stephh's notes (based on the games M68000 and Z80 code and some tests) : * press START2 to pause game * press START1 to unpause game * when START1 and START2 are pressed, the game enters in "slow motion" mode - - When "Invulnerability" Dip Switch is ON, you can press the unused 3rd button of player 1 - to advance quickly to your desired area. + - When "Invulnerability" Dip Switch is ON, you can press F1 ("Fast Scrolling", in fact + the unused 3rd button of player 1) to advance quickly to your desired area. - When "Invulnerability" Dip Switch is ON, you can press the unused 3rd button of player 2, - but as its effect is completely unknown (code at 0x0010aa), + but as its effect is completely unknown (code at 0x0010aa), I've decided not to map it for now. - It's hard to tell which regions can be used for this set and which one is the default one. However, as the text at the "end" (after the "CONGRATULATIONS" message) is in English, I've decided to disable the ones related to Japan (0x00 and 0x0f). @@ -324,7 +323,6 @@ Stephh's notes (based on the games M68000 and Z80 code and some tests) : - The only difference I've noticed with 'vimana' is the text at the "end" is in Japanese. This is why I've disabled all regions which aren't related to Japan. - -> Changed enabled all regions !! - Sound routines at 0x01792c and 0x0179ba. @@ -336,36 +334,6 @@ To Do: In the meantime, it can be interesting to simulate the basic communications (coinage and credits) between the M68000 and the Z180. [stephh] - -Easter Eggs (using switches in cabinet): - - rallybik - While "TEST" Switch is held ON, you can play invulnerable mode game. - - While playing invulnerable mode, press both "P1 button 1" and "P1 button 2" at the same time. - No matter which player is playing. - Then you can go to next stage soon. Score reverts. And when 2 players play, they alternate. - - truxton - To enter the "sound check", press START2 when the grid is displayed. - - While playing, when "Service Mode" Dip Switch is ON, you can not enter the grid screen, - but can play invulnerable mode game. - You can not play invulnerable mode game by pressing JAMMA "Test" Switch. - It is a difference between "Service Mode" Dip Switch and JAMMA "Test" Switch. - - hellfire - (not yet found) - - zerowing - (not yet found) - - demonwld - (not yet found) - - fireshrk - While playing invulnerable mode, press "Service coin" to scroll fast. - - outzone - (not yet found) - - vimana - While playing invulnerable mode, press "P1 button 3" to scroll fast. - No matter which player is playing. - - While playing invulnerable mode, press "P2 button 3" to go to next stage. - No matter which player is playing. - - ***************************************************************************/ #include "emu.h" @@ -378,82 +346,6 @@ Easter Eggs (using switches in cabinet): #include "sound/3812intf.h" -/***************************** debugging flags ******************************/ - -#define DEBUG_FREE_ALL_DIPSW FALSE -#define DEBUG_DONT_HIDE_DUP_DIPSETTING TRUE - /* Set TRUE and you may find unknown easter eggs */ - -#if DEBUG_DONT_HIDE_DUP_DIPSETTING - #define HIDE_DUP(_para) _para -#else - #define HIDE_DIP(_para) /* null */ -#endif - - -/**************************** customizing flags *****************************/ - -#define RALLYBIK_TEST_DESCRIBE_LEVEL 1 - /* Rallybik's "Test" has an easter egg. */ - /* If you want to rename it, set 1 or 2. - 0 = "Test" or "Test (Toggle Switch)" - 1 = "Test (Invulnerability)" or "Test (Toggle Switch) (Invulnerability)" - 2 = "(Invulnerability)" or "(Toggle Switch) (Invulnerability)" */ -#define RALLYBIK_TEST_TOGGLE TRUE - /* If you want to connect toggle switch, set TRUE. */ -#define RALLYBIK_TEST_MOVE_TO_F1 FALSE - /* If you want to move it to "F1", set TRUE. */ - - -#define FIRESHRK_SERVICE_1_DESCRIBE_LEVEL 1 - /* Fireshrk's "Service 1" has an easter egg. */ - /* If you want to rename it, set 1 or 2. - 0 = "Service 1" - 1 = "Service 1 (Fast Scrolling If Invulnerable)" - 2 = "(Fast Scrolling If Invulnerable)" */ -#define FIRESHRK_SERVICE_1_MOVE_TO_F1 FALSE - /* If you want to move it to "F1", set TRUE. */ - - -#define VIMANA_P1_BUTTON_3_DESCRIBE_LEVEL 2 - /* Vimana's "P1 Button 3" has an easter egg. */ - /* If you want to rename it, set 1 or 2. - 0 = "Spare (P1 Button 3)" - 1 = "Spare (P1 Button 3) (Fast Scrolling If Invulnerable)" - 2 = "(Fast Scrolling If Invulnerable)" */ -#define VIMANA_P1_BUTTON_3_MOVE_TO_F1 FALSE - /* If you want to move it to "F1", set TRUE. */ - -#define VIMANA_P2_BUTTON_3_DESCRIBE_LEVEL 2 - /* Vimana's "P2 Button 3" has an easter egg. */ - /* If you want to rename it, set 1 or 2. - 0 = "Spare (P2 Button 3)" - 1 = "Spare (P2 Button 3) (Go To Next Stage If Invulnerable)" - 2 = "(Go To Next Stage If Invulnerable)" */ -#define VIMANA_P2_BUTTON_3_MOVE_TO_F1 FALSE - /* If you want to move it to "F1", set TRUE. */ - - #if VIMANA_P1_BUTTON_3_MOVE_TO_F1 && VIMANA_P2_BUTTON_3_MOVE_TO_F1 - ERROR !! : You can set zero or one TRUE, but you set two. - #endif - - -/***************************** frequent strings *****************************/ - -static const char frqstr_europe_nova[] = "Europe (" /*"Licensed to "*/ "Nova Apparate GMBH & Co)"; -static const char frqstr_europe_taitojapan[] = "Europe (" /*"Licensed to "*/ "Taito Japan)"; -static const char frqstr_usa_romstar[] = "USA (" /*"Licensed to "*/ "Romstar)"; -static const char frqstr_usa_romstarinc[] = "USA (" /*"Licensed to "*/ "Romstar Inc)"; -static const char frqstr_usa_taitoamerica[] = "USA (" /*"Licensed to "*/ "Taito America)"; -static const char frqstr_japan_taitocorp[] = "Japan (" /*"Licensed to "*/ "Taito Corp)"; -static const char frqstr_japan_tecmo[] = "Japan (" /*"Distributed by "*/ "Tecmo)"; -static const char frqstr_hongkong[] = "Hong Kong"; -static const char frqstr_hongkong_honest[] = "Hong Kong (" /*"Licensed to "*/ "Honest Trading Co)"; -static const char frqstr_hongkongchina_honest[] = "Hong Kong & China (" /*"Licensed to "*/ "Honest Trading Co)"; -static const char frqstr_korea[] = "Korea"; -static const char frqstr_taiwan[] = "Taiwan"; -static const char frqstr_taiwan_spacy[] = "Taiwan (" /*"Licensed to "*/ "Spacy Co Ltd)"; -static const char frqstr_no_country[] = "No Country"; /***************************** 68000 Memory Map *****************************/ @@ -760,99 +652,66 @@ ADDRESS_MAP_END /***************************************************************************** Generic Input Port definitions *****************************************************************************/ - -/* type1 */ - -static INPUT_PORTS_START( toaplan1_type1 ) - /* rallybik truxton zerowing vimana */ - +static INPUT_PORTS_START( toaplan1_2b ) PORT_START("P1") - TOAPLAN_JOY_UDLR_2_BUTTONS(1) + TOAPLAN_JOY_UDLR_2_BUTTONS( 1 ) PORT_START("P2") - TOAPLAN_JOY_UDLR_2_BUTTONS(2) + TOAPLAN_JOY_UDLR_2_BUTTONS( 2 ) PORT_START("SYSTEM") - TOAPLAN_SYSTEM_INPUT_WITHOUT_VBLANK - // ^^^^^^^ only one differnce between toaplan1_type1 and toaplan1_type2 + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_TILT ) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* "TEST" switch - see notes */ + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN1 ) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN2 ) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START1 ) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START2 ) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_START("VBLANK") - TOAPLAN_VBLANK_INPUT_16BITS - - PORT_START("DSWA") /* DIP SW 1 */ - TOAPLAN_DIP_1_SPARE(SW1) - TOAPLAN_DIP_2_SPARE(SW1) - TOAPLAN_DIP_3_SPARE(SW1) - TOAPLAN_DIP_4_SPARE(SW1) - TOAPLAN_DIP_5_SPARE(SW1) - TOAPLAN_DIP_6_SPARE(SW1) - TOAPLAN_DIP_7_SPARE(SW1) - TOAPLAN_DIP_8_SPARE(SW1) - - PORT_START("DSWB") /* DIP SW 2 */ - TOAPLAN_DIP_1_SPARE(SW2) - TOAPLAN_DIP_2_SPARE(SW2) - TOAPLAN_DIP_3_SPARE(SW2) - TOAPLAN_DIP_4_SPARE(SW2) - TOAPLAN_DIP_5_SPARE(SW2) - TOAPLAN_DIP_6_SPARE(SW2) - TOAPLAN_DIP_7_SPARE(SW2) - TOAPLAN_DIP_8_SPARE(SW2) - - PORT_START("TJUMP") /* Territory Jumper Block */ - TOAPLAN_JMPR_4_SPARE(JP) /* reverse order to DIP SW */ - TOAPLAN_JMPR_3_SPARE(JP) - TOAPLAN_JMPR_2_SPARE(JP) - TOAPLAN_JMPR_1_SPARE(JP) - TOAPLAN_INPUT_GENERIC_FILL_UNKNOWN(0xf0) /* Unknown/Unused */ - + PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_VBLANK ) + PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNKNOWN ) INPUT_PORTS_END -/* type2 */ +#ifdef UNREFERENCED_CODE +static INPUT_PORTS_START( toaplan1_3b ) + PORT_INCLUDE( toaplan1_2b ) -static INPUT_PORTS_START( toaplan1_type2 ) - /* hellfire demonwld fireshrk outzone */ + PORT_MODIFY("P1") + TOAPLAN_JOY_UDLR_3_BUTTONS( 1 ) - PORT_START("VBLANK") - TOAPLAN_VBLANK_INPUT_16BITS - - PORT_START("P1") - TOAPLAN_JOY_UDLR_2_BUTTONS(1) - - PORT_START("P2") - TOAPLAN_JOY_UDLR_2_BUTTONS(2) - - PORT_START("DSWA") /* DIP SW 1 */ - TOAPLAN_DIP_1_SPARE(SW1) - TOAPLAN_DIP_2_SPARE(SW1) - TOAPLAN_DIP_3_SPARE(SW1) - TOAPLAN_DIP_4_SPARE(SW1) - TOAPLAN_DIP_5_SPARE(SW1) - TOAPLAN_DIP_6_SPARE(SW1) - TOAPLAN_DIP_7_SPARE(SW1) - TOAPLAN_DIP_8_SPARE(SW1) - - PORT_START("DSWB") /* DIP SW 2 */ - TOAPLAN_DIP_1_SPARE(SW2) - TOAPLAN_DIP_2_SPARE(SW2) - TOAPLAN_DIP_3_SPARE(SW2) - TOAPLAN_DIP_4_SPARE(SW2) - TOAPLAN_DIP_5_SPARE(SW2) - TOAPLAN_DIP_6_SPARE(SW2) - TOAPLAN_DIP_7_SPARE(SW2) - TOAPLAN_DIP_8_SPARE(SW2) - - PORT_START("SYSTEM") - TOAPLAN_SYSTEM_INPUT_WITH_VBLANK - // ^^^^ only one differnce between toaplan1_type1 and toaplan1_type2 - - PORT_START("TJUMP") /* Territory Jumper Block */ - TOAPLAN_JMPR_4_SPARE(JP) /* reverse order to DIP SW */ - TOAPLAN_JMPR_3_SPARE(JP) - TOAPLAN_JMPR_2_SPARE(JP) - TOAPLAN_JMPR_1_SPARE(JP) - TOAPLAN_INPUT_GENERIC_FILL_UNKNOWN(0xf0) /* Unknown/Unused */ + PORT_MODIFY("P2") + TOAPLAN_JOY_UDLR_3_BUTTONS( 2 ) INPUT_PORTS_END +#endif + +#define TOAPLAN1_PLAYER_INPUT( player, button3, options ) \ + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(player) options PORT_8WAY \ + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(player) options PORT_8WAY \ + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(player) options PORT_8WAY \ + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(player) options PORT_8WAY \ + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(player) options \ + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(player) options \ + PORT_BIT( 0x40, IP_ACTIVE_HIGH, button3 ) PORT_PLAYER(player) options \ + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) + +#define TOAPLAN1_SYSTEM_INPUTS \ + PORT_START("SYSTEM") \ + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) \ + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_TILT ) \ + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) \ + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN1 ) \ + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN2 ) \ + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START1 ) \ + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START2 ) \ + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK ) + +#define TOAPLAN1_VBLANK_INPUT \ + PORT_START("VBLANK") \ + PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_VBLANK ) \ + PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNKNOWN ) + /***************************************************************************** Game-specific Input Port definitions @@ -860,61 +719,39 @@ INPUT_PORTS_END /* verified from M68000 and Z80 code */ static INPUT_PORTS_START( rallybik ) - PORT_INCLUDE( toaplan1_type1 ) + PORT_INCLUDE( toaplan1_2b ) - #if ! DEBUG_FREE_ALL_DIPSW - /* in 0x40 (CPU1) -> 0x8003 (CPU1 shared RAM) = 0x180006.w (CPU0 shared RAM) -> 0x0804f2.w */ - PORT_MODIFY("DSWA") - TOAPLAN_DIP_A1_CABINET(SW1) - TOAPLAN_DIP_A2_FLIP_SCREEN(SW1) - TOAPLAN_DIP_A3_SERVICE_MODE(SW1) - TOAPLAN_DIP_A4_DEMO_SOUNDS(SW1) - TOAPLAN_DIP_A5678_COINAGE_DUAL(DSWB, 0x30, 0x20, SW1) // mask{0x03} & value{0x02} -> Europe + /* in 0x40 (CPU1) -> 0x8003 (CPU1 shared RAM) = 0x180006.w (CPU0 shared RAM) -> 0x0804f2.w */ + PORT_START("DSWA") + TOAPLAN_MACHINE_COCKTAIL + TOAPLAN_COINAGE_DUAL(DSWB, 0x30, 0x20) /* see notes */ - /* in 0x50 (CPU1) -> 0x8004 (CPU1 shared RAM) = 0x180008.w (CPU0 shared RAM) -> 0x0804f4.w */ - PORT_MODIFY("DSWB") - TOAPLAN_DIP_B12_DIFFICULTY(SW2) - //DIP_B34_SPARE (divert from 'toaplan1_type1') - // region verified 'rallybik' (MAME 0.143u7) - // listed as unused in the Dip Switches screen // |Game |Service| | | | - PORT_DIPNAME( 0x30, 0x20, DEF_STR( Region ) ) // |Mode |Mode | | | | - PORT_DIPLOCATION("SW2:!5,!6") // Title |Coinage|Coinage|Notice|Copyright |License|Initials - PORT_DIPSETTING( 0x20, DEF_STR( Europe ) ) // Rally Bike|Europe |Europe |Off |TAITO CORP. JAPAN |- |3 letters - PORT_DIPSETTING( 0x10, DEF_STR( USA ) ) // Rally Bike|Japan |Japan |Off |TAITO AMERICA CORP.|- |3 letters - PORT_DIPSETTING( 0x30, frqstr_usa_romstar ) // Rally Bike|Japan |Japan |Off |TAITO AMERICA CORP.|ROMSTAR|3 letters - PORT_DIPSETTING( 0x00, DEF_STR( Japan ) ) // Dash Yarou|Japan |Japan |On |TAITO CORPORATION |- |6 letters - TOAPLAN_DIP_B7_SHOW_DIPSW_SETTINGS(SW2) - TOAPLAN_DIP_B8_ALLOW_CONTINUE_OFF_YES(SW2) // not on race 1 - #endif + /* in 0x50 (CPU1) -> 0x8004 (CPU1 shared RAM) = 0x180008.w (CPU0 shared RAM) -> 0x0804f4.w */ + PORT_START("DSWB") + TOAPLAN_DIFFICULTY + PORT_DIPUNUSED( 0x04, IP_ACTIVE_HIGH ) + PORT_DIPUNUSED( 0x08, IP_ACTIVE_HIGH ) + PORT_DIPNAME( 0x30, 0x20, "Territory" ) /* bits 4 and 5 listed as unused in the Dip Switches screen */ + PORT_DIPSETTING( 0x20, DEF_STR( Europe ) ) /* Taito Corp. Japan */ + PORT_DIPSETTING( 0x10, DEF_STR( USA ) ) /* Taito America Corp. */ + PORT_DIPSETTING( 0x30, "USA (Romstar license)" ) /* Taito America Corp. */ + PORT_DIPSETTING( 0x00, DEF_STR( Japan ) ) /* Taito Corporation */ + PORT_DIPNAME( 0x40, 0x00, "Show Dip Switches Settings" ) + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x40, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x80, 0x00, DEF_STR( Allow_Continue ) ) /* not on race 1 */ + PORT_DIPSETTING( 0x80, DEF_STR( No ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_MODIFY("TJUMP") // (not present ? this port isn't even read) - TOAPLAN_INPUT_GENERIC_FILL_UNKNOWN(0x0f) + PORT_START("TJUMP") /* Territory Jumper Block (not present ? this port isn't even read) */ + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) /* P1 : in 0x00 (CPU1) -> 0x8006 (CPU1 shared RAM) = 0x18000c.w (CPU0 shared RAM) */ /* P2 : in 0x10 (CPU1) -> 0x8007 (CPU1 shared RAM) = 0x18000e.w (CPU0 shared RAM) */ /* in 0x20 (CPU1) -> 0x8005 (CPU1 shared RAM) = 0x18000a.w (CPU0 shared RAM) -> 0x0804f4.w */ PORT_MODIFY("SYSTEM") - #if ! RALLYBIK_TEST_TOGGLE - #if RALLYBIK_TEST_DESCRIBE_LEVEL == 1 - TOAPLAN_TEST_SWITCH_RENAME("Test (Invulnerability)") - #elif RALLYBIK_TEST_DESCRIBE_LEVEL == 2 - TOAPLAN_TEST_SWITCH_RENAME("(Invulnerability)") - #else - // TOAPLAN_TEST_SWITCH_RENAME("Test") // not renamed - #endif - #else - #if RALLYBIK_TEST_DESCRIBE_LEVEL == 1 - TOAPLAN_TEST_SWITCH_TOGGLE_RENAME("Test (Toggle Switch) (Invulnerability)") - #elif RALLYBIK_TEST_DESCRIBE_LEVEL == 2 - TOAPLAN_TEST_SWITCH_TOGGLE_RENAME("(Toggle Switch) (Invulnerability)") - #else - TOAPLAN_TEST_SWITCH_TOGGLE - #endif - #endif - #if RALLYBIK_TEST_MOVE_TO_F1 - PORT_CODE(KEYCODE_F1) - #endif + TOAPLAN_TEST_SWITCH( 0x04, IP_ACTIVE_HIGH ) /* see notes */ /* VBLANK : 0x140000.w */ INPUT_PORTS_END @@ -922,48 +759,46 @@ INPUT_PORTS_END /* verified from M68000 and Z80 code */ static INPUT_PORTS_START( truxton ) - PORT_INCLUDE( toaplan1_type1 ) + PORT_INCLUDE( toaplan1_2b ) - #if ! DEBUG_FREE_ALL_DIPSW - /* in 0x40 (CPU1) -> 0x8003 (CPU1 shared RAM) = 0x180006.w (CPU0 shared RAM) -> 0x081b78.w */ - PORT_MODIFY("DSWA") - TOAPLAN_DIP_A1_CABINET(SW1) - TOAPLAN_DIP_A2_FLIP_SCREEN(SW1) - TOAPLAN_DIP_A3_SERVICE_MODE(SW1) - TOAPLAN_DIP_A4_DEMO_SOUNDS(SW1) - TOAPLAN_DIP_A5678_COINAGE_DUAL(TJUMP, 0x03, 0x02, SW1) // mask{0x07} & value{0x02,0x06} -> Europe + /* in 0x40 (CPU1) -> 0x8003 (CPU1 shared RAM) = 0x180006.w (CPU0 shared RAM) -> 0x081b78.w */ + PORT_START("DSWA") + TOAPLAN_MACHINE_COCKTAIL + TOAPLAN_COINAGE_DUAL(TJUMP, 0x03, 0x02) /* see notes */ - /* in 0x50 (CPU1) -> 0x8004 (CPU1 shared RAM) = 0x180008.w (CPU0 shared RAM) -> 0x081b7a.w */ - PORT_MODIFY("DSWB") - TOAPLAN_DIP_B12_DIFFICULTY(SW2) - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:!3,!4") /* table at 0x000930 */ - PORT_DIPSETTING( 0x04, "50k 200k 150k+" ) - PORT_DIPSETTING( 0x00, "70k 270k 200k+" ) - PORT_DIPSETTING( 0x08, "100k Only" ) - PORT_DIPSETTING( 0x0c, DEF_STR( None ) ) - PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:!5,!6") - PORT_DIPSETTING( 0x30, "2" ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x20, "4" ) - PORT_DIPSETTING( 0x10, "5" ) - TOAPLAN_DIP_B7_SHOW_DIPSW_SETTINGS(SW2) - TOAPLAN_DIP_B8_ALLOW_CONTINUE_OFF_YES(SW2) + /* in 0x50 (CPU1) -> 0x8004 (CPU1 shared RAM) = 0x180008.w (CPU0 shared RAM) -> 0x081b7a.w */ + PORT_START("DSWB") + TOAPLAN_DIFFICULTY + PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) ) /* table at 0x000930 */ + PORT_DIPSETTING( 0x04, "50k 200k 150k+" ) + PORT_DIPSETTING( 0x00, "70k 270k 200k+" ) + PORT_DIPSETTING( 0x08, "100k Only" ) + PORT_DIPSETTING( 0x0c, DEF_STR( None ) ) + PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) ) + PORT_DIPSETTING( 0x30, "2" ) + PORT_DIPSETTING( 0x00, "3" ) + PORT_DIPSETTING( 0x20, "4" ) + PORT_DIPSETTING( 0x10, "5" ) + PORT_DIPNAME( 0x40, 0x00, "Show Dip Switches Settings" ) + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x40, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x80, 0x00, DEF_STR( Allow_Continue ) ) + PORT_DIPSETTING( 0x80, DEF_STR( No ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - /* in 0x70 (CPU1) -> 0x8005 (CPU1 shared RAM) = 0x18000a.w (CPU0 shared RAM) -> 0x081b7c.w */ - PORT_MODIFY("TJUMP") - // region verified 'truxton' (MAME 0.143u7) // |Game |Service| |Territory|Service | | | - PORT_DIPNAME( 0x07, 0x02, DEF_STR( Region ) ) // |Mode |Mode | |Notice |Mode | | | - PORT_DIPLOCATION("JP:!4,!3,!2") // Title |Coinage|Coinage|Notice|Location |Location|Copyright |License|Initials - PORT_DIPSETTING( 0x02, DEF_STR( Europe ) ) // Truxton |Europe |Europe |Off |- |Europe |TAITO CORPORATION |- |3 letters - HIDE_DUP( PORT_DIPSETTING( 0x03, DEF_STR( Europe ) ) ) // Truxton |Japan |Europe |Off |- |Europe |TAITO CORPORATION |- |3 letters - HIDE_DUP( PORT_DIPSETTING( 0x06, DEF_STR( Europe ) ) ) // Truxton |Europe |Europe |Off |- |Europe |TAITO AMERICA CORP.|- |3 letters - HIDE_DUP( PORT_DIPSETTING( 0x07, DEF_STR( Europe ) ) ) // Truxton |Japan |Europe |Off |- |Europe |TAITO AMERICA CORP.|- |3 letters - HIDE_DUP( PORT_DIPSETTING( 0x04, DEF_STR( USA ) ) ) // Truxton |Japan |Japan |On |USA |Japan |TAITO AMERICA CORP.|- |3 letters - PORT_DIPSETTING( 0x05, DEF_STR( USA ) ) // Truxton |Japan |Japan |On |USA |USA |TAITO AMERICA CORP.|- |3 letters - PORT_DIPSETTING( 0x01, frqstr_usa_romstar ) // Truxton |Japan |Japan |On |USA |USA |TAITO AMERICA CORP.|ROMSTAR|3 letters - PORT_DIPSETTING( 0x00, DEF_STR( Japan ) ) // Tatsujin|Japan |Japan |On |Japan |Japan |TAITO CORPORATION |- |6 letters - //JP_1 (divert from 'toaplan1_type1') - #endif + /* in 0x70 (CPU1) -> 0x8005 (CPU1 shared RAM) = 0x18000a.w (CPU0 shared RAM) -> 0x081b7c.w */ + PORT_START("TJUMP") /* Territory Jumper Block - see notes */ + PORT_DIPNAME( 0x07, 0x02, "Territory" ) + PORT_DIPSETTING( 0x02, DEF_STR( Europe ) ) /* Taito Corporation */ /* TOAPLAN_COINAGE_WORLD */ +// PORT_DIPSETTING( 0x03, DEF_STR( Europe ) ) /* Taito Corporation */ /* TOAPLAN_COINAGE_JAPAN_OLD */ +// PORT_DIPSETTING( 0x06, DEF_STR( Europe ) ) /* Taito America Corp. */ /* TOAPLAN_COINAGE_WORLD */ +// PORT_DIPSETTING( 0x07, DEF_STR( Europe ) ) /* Taito America Corp. */ /* TOAPLAN_COINAGE_JAPAN_OLD */ + PORT_DIPSETTING( 0x04, DEF_STR( USA ) ) /* Taito America Corp. */ /* TOAPLAN_COINAGE_JAPAN_OLD */ +// PORT_DIPSETTING( 0x05, DEF_STR( USA ) ) /* Taito America Corp. */ /* TOAPLAN_COINAGE_JAPAN_OLD */ + PORT_DIPSETTING( 0x01, "USA (Romstar license)" ) /* Taito America Corp. */ /* TOAPLAN_COINAGE_JAPAN_OLD */ + PORT_DIPSETTING( 0x00, DEF_STR( Japan ) ) /* Taito Corporation */ /* TOAPLAN_COINAGE_JAPAN_OLD */ + PORT_DIPUNUSED( 0x08, IP_ACTIVE_HIGH ) + PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNUSED ) /* P1 : in 0x00 (CPU1) -> 0x8007 (CPU1 shared RAM) = 0x18000e.w (CPU0 shared RAM) -> 0x081b82.w */ /* P2 : in 0x10 (CPU1) -> 0x8008 (CPU1 shared RAM) = 0x180010.w (CPU0 shared RAM) -> 0x081b84.w */ @@ -974,742 +809,640 @@ static INPUT_PORTS_START( truxton ) INPUT_PORTS_END -static INPUT_PORTS_START( input_common_hellfire ) - PORT_INCLUDE( toaplan1_type2 ) - - #if ! DEBUG_FREE_ALL_DIPSW - PORT_MODIFY("DSWA") - //DIP_A1_SPARE (divert from 'toaplan1_type2') (Specified by each set) - TOAPLAN_DIP_A2_FLIP_SCREEN(SW1) - TOAPLAN_DIP_A3_SERVICE_MODE(SW1) - TOAPLAN_DIP_A4_DEMO_SOUNDS(SW1) - //DIP_A5678_SPARE (divert from 'toaplan1_type2') (Specified by each set) - - PORT_MODIFY("DSWB") - TOAPLAN_DIP_B12_DIFFICULTY(SW2) - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:!3,!4") - PORT_DIPSETTING( 0x00, "70K, every 200K" ) - PORT_DIPSETTING( 0x04, "100K, every 250K" ) - PORT_DIPSETTING( 0x08, "100K" ) - PORT_DIPSETTING( 0x0c, "200K" ) - PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:!5,!6") - PORT_DIPSETTING( 0x30, "2" ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x20, "4" ) - PORT_DIPSETTING( 0x10, "5" ) - //DIP_B78_SPARE (divert from 'toaplan1_type2') (Specified by each set) - - //PORT_MODIFY("TJUMP") - //JP_43_SPARE (divert from 'toaplan1_type2') (Specified by each set) - //JP_21_SPARE (divert from 'toaplan1_type2') - #endif -INPUT_PORTS_END - static INPUT_PORTS_START( hellfire ) - PORT_INCLUDE( input_common_hellfire ) + TOAPLAN1_VBLANK_INPUT - #if ! DEBUG_FREE_ALL_DIPSW - PORT_MODIFY("DSWA") - //DIP_A1_SPARE (divert from 'toaplan1_type2' via 'input_common_hellfire') - TOAPLAN_DIP_A5678_COINAGE_DUAL(TJUMP, 0x02, 0x02, SW1) // mask{0x03} & value{0x02,0x03} -> Europe + PORT_START("P1") + TOAPLAN1_PLAYER_INPUT( 1, IPT_UNKNOWN, ) - PORT_MODIFY("DSWB") - TOAPLAN_DIP_B7_INVULNERABILITY(SW2) - //DIP_B8_SPARE (divert from 'toaplan1_type2' via 'input_common_hellfire') + PORT_START("P2") + TOAPLAN1_PLAYER_INPUT( 2, IPT_UNKNOWN, ) - PORT_MODIFY("TJUMP") - // region verified 'hellfire' (MAME 0.143u7) // Game |Service| | | - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Region ) ) // Mode |Mode | | | - PORT_DIPLOCATION("JP:!4,!3") // Coinage|Coinage|Notice|Licensed to |initials - HIDE_DUP( PORT_DIPSETTING( 0x03, DEF_STR( Europe ) ) ) // Europe |Europe |Off |TAITO CORPORATION |3 letters - PORT_DIPSETTING( 0x02, DEF_STR( Europe ) ) // Europe |Europe |Off |TAITO CORPORATION |3 letters - PORT_DIPSETTING( 0x01, DEF_STR( USA ) ) // Japan |Japan |off |TAITO AMERICA CORPORATION|3 letters - PORT_DIPSETTING( 0x00, DEF_STR( Japan ) ) // Japan |Japan |On |TAITO CORPORATION |3 letters - #endif + PORT_START("DSWA") /* DSW A */ + PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unused ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x01, DEF_STR( On ) ) + PORT_DIPNAME( 0x02, 0x00, DEF_STR( Flip_Screen ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x02, DEF_STR( On ) ) + PORT_SERVICE( 0x04, IP_ACTIVE_HIGH ) + PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) ) + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coin_A ) ) + PORT_DIPSETTING( 0x30, DEF_STR( 4C_1C ) ) + PORT_DIPSETTING( 0x20, DEF_STR( 3C_1C ) ) + PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) + PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) + PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_B ) ) + PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) ) + PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) ) + PORT_DIPSETTING( 0x80, DEF_STR( 1C_4C ) ) + PORT_DIPSETTING( 0xc0, DEF_STR( 1C_6C ) ) + + PORT_START("DSWB") /* DSWB */ + PORT_DIPNAME( 0x03, 0x00, DEF_STR( Difficulty ) ) + PORT_DIPSETTING( 0x01, DEF_STR( Easy ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Medium ) ) + PORT_DIPSETTING( 0x02, DEF_STR( Hard ) ) + PORT_DIPSETTING( 0x03, DEF_STR( Hardest ) ) + PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) ) + PORT_DIPSETTING( 0x00, "70K, every 200K" ) + PORT_DIPSETTING( 0x04, "100K, every 250K" ) + PORT_DIPSETTING( 0x08, "100K" ) + PORT_DIPSETTING( 0x0c, "200K" ) + PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) ) + PORT_DIPSETTING( 0x30, "2" ) + PORT_DIPSETTING( 0x00, "3" ) + PORT_DIPSETTING( 0x20, "4" ) + PORT_DIPSETTING( 0x10, "5" ) + PORT_DIPNAME( 0x40, 0x00, "Invulnerability" ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x40, DEF_STR( On ) ) + PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unused ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x80, DEF_STR( On ) ) + + TOAPLAN1_SYSTEM_INPUTS + + PORT_START("TJUMP") /* Territory Jumper block */ + PORT_DIPNAME( 0x03, 0x02, "Territory" ) + PORT_DIPSETTING( 0x02, DEF_STR( Europe ) ) +// PORT_DIPSETTING( 0x03, DEF_STR( Europe ) ) + PORT_DIPSETTING( 0x01, "US" ) + PORT_DIPSETTING( 0x00, DEF_STR( Japan ) ) + PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x04, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unused ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x08, DEF_STR( On ) ) + PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN ) INPUT_PORTS_END static INPUT_PORTS_START( hellfire1 ) - PORT_INCLUDE( input_common_hellfire ) + PORT_INCLUDE( hellfire ) - #if ! DEBUG_FREE_ALL_DIPSW - PORT_MODIFY("DSWA") - TOAPLAN_DIP_A1_CABINET(SW1) - TOAPLAN_DIP_A5678_COINAGE_DUAL(TJUMP, 0x03, 0x02, SW1) // mask{0x03} & value{0x02} -> Europe - - PORT_MODIFY("DSWB") - TOAPLAN_DIP_B7_SHOW_DIPSW_SETTINGS(SW2) - TOAPLAN_DIP_B8_ALLOW_CONTINUE_OFF_YES(SW2) - - PORT_MODIFY("TJUMP") - // region verified 'hellfire1' (MAME 0.143u7) // Game |Service| | | - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Region ) ) // Mode |Mode | | | - PORT_DIPLOCATION("JP:!4,!3") // Coinage|Coinage|Notice|Licensed to|initials - HIDE_DUP( PORT_DIPSETTING( 0x03, DEF_STR( Europe ) ) ) // Japan |Europe |Off |TAITO CORP.|3 letters - PORT_DIPSETTING( 0x02, DEF_STR( Europe ) ) // Europe |Europe |Off |TAITO CORP.|6 letters (default "...000") - PORT_DIPSETTING( 0x01, DEF_STR( USA ) ) // Japan |Japan |On |TAITO CORP.|3 letters - PORT_DIPSETTING( 0x00, DEF_STR( Japan ) ) // Japan |Japan |On |TAITO CORP.|6 letters (default "......") - #endif + PORT_MODIFY("DSWA") + PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) ) + PORT_DIPSETTING( 0x01, DEF_STR( Upright ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) INPUT_PORTS_END -static INPUT_PORTS_START( hellfire2 ) - PORT_INCLUDE( input_common_hellfire ) - - #if ! DEBUG_FREE_ALL_DIPSW - PORT_MODIFY("DSWA") - //DIP_A1_SPARE (divert from 'toaplan1_type2' via 'input_common_hellfire') - // A1 is listed as cabinet in the Dip Switches screen, but probably unused - TOAPLAN_DIP_A5678_COINAGE_DUAL(TJUMP, 0x03, 0x02, SW1) // mask{0x03} & value{0x02} -> Europe - - PORT_MODIFY("DSWB") - TOAPLAN_DIP_B7_SHOW_DIPSW_SETTINGS(SW2) - TOAPLAN_DIP_B8_ALLOW_CONTINUE_OFF_YES(SW2) - - PORT_MODIFY("TJUMP") - // region verified 'hellfire2' (MAME 0.143u7) // Game |Service| | | - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Region ) ) // Mode |Mode | | | - PORT_DIPLOCATION("JP:!4,!3") // Coinage|Coinage|Notice|Licensed to|initials - HIDE_DUP( PORT_DIPSETTING( 0x03, DEF_STR( Europe ) ) ) // Japan |Europe |Off |TAITO CORP.|3 letters - PORT_DIPSETTING( 0x02, DEF_STR( Europe ) ) // Europe |Europe |Off |TAITO CORP.|3 letters - PORT_DIPSETTING( 0x01, DEF_STR( USA ) ) // Japan |Japan |Off |TAITO CORP.|3 letters - PORT_DIPSETTING( 0x00, DEF_STR( Japan ) ) // Japan |Japan |Off |TAITO CORP.|3 letters - #endif -INPUT_PORTS_END - -static INPUT_PORTS_START( hellfire3 ) - PORT_INCLUDE( input_common_hellfire ) - - #if ! DEBUG_FREE_ALL_DIPSW - PORT_MODIFY("DSWA") - TOAPLAN_DIP_A1_CABINET(SW1) - TOAPLAN_DIP_A5678_COINAGE_DUAL(TJUMP, 0x02, 0x02, SW1) // mask{0x03} & value{0x02,0x03} -> Europe - - PORT_MODIFY("DSWB") - TOAPLAN_DIP_B7_INVULNERABILITY(SW2) - TOAPLAN_DIP_B8_ALLOW_CONTINUE_OFF_YES(SW2) - - PORT_MODIFY("TJUMP") - // region verified 'hellfire3' (MAME 0.143u7) // Game |Service| | | - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Region ) ) // Mode |Mode | | | - PORT_DIPLOCATION("JP:!4,!3") // Coinage|Coinage|Notice|Licensed to |initials - HIDE_DUP( PORT_DIPSETTING( 0x03, DEF_STR( Europe ) ) ) // Europe |Europe |Off |TAITO CORPORATION|3 letters - PORT_DIPSETTING( 0x02, DEF_STR( Europe ) ) // Europe |Europe |Off |TAITO CORPORATION|6 letters (default "......") - PORT_DIPSETTING( 0x01, DEF_STR( USA ) ) // Japan |Japan |On |TAITO CORPORATION|3 letters - PORT_DIPSETTING( 0x00, DEF_STR( Japan ) ) // Japan |Japan |On |TAITO CORPORATION|6 letters (default "......") - #endif -INPUT_PORTS_END - - -/* verified from M68000 and Z80 code */ -static INPUT_PORTS_START( input_common_zerowing ) - PORT_INCLUDE( toaplan1_type1 ) - - #if ! DEBUG_FREE_ALL_DIPSW - // in 0x20 (CPU1) -> 0x8003 (CPU1 shared RAM) = 0x440006.w (CPU0 shared RAM) -> 0x08180c.w ('zerowing') or 0x081ade.w ('zerowing2') - PORT_MODIFY("DSWA") - //DIP_A1_SPARE (divert from 'toaplan1_type1') (Specified by each set) - TOAPLAN_DIP_A2_FLIP_SCREEN(SW1) - TOAPLAN_DIP_A3_SERVICE_MODE(SW1) - TOAPLAN_DIP_A4_DEMO_SOUNDS(SW1) - //DIP_A5678_SPARE (divert from 'toaplan1_type1') (Specified by each set) - - // in 0x28 (CPU1) -> 0x8004 (CPU1 shared RAM) = 0x440008.w (CPU0 shared RAM) -> 0x08180e.w ('zerowing') or 0x081ae0.w ('zerowing2') - PORT_MODIFY("DSWB") - TOAPLAN_DIP_B12_DIFFICULTY(SW2) - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:!3,!4") // table at 0x00216c ('zerowing') or 0x002606 ('zerowing2') - PORT_DIPSETTING( 0x00, "200k 700k 500k+" ) - PORT_DIPSETTING( 0x04, "500k 1500k 1000k+" ) - PORT_DIPSETTING( 0x08, "500k Only" ) - PORT_DIPSETTING( 0x0c, DEF_STR( None ) ) - PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:!5,!6") - PORT_DIPSETTING( 0x30, "2" ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x20, "4" ) - PORT_DIPSETTING( 0x10, "5" ) - TOAPLAN_DIP_B7_INVULNERABILITY(SW2) - //DIP_B8_SPARE (divert from 'toaplan1_type1') (Specified by each set) - - // in 0x88 (CPU1) -> 0x8005 (CPU1 shared RAM) = 0x44000a.w (CPU0 shared RAM) -> 0x081810.w ('zerowing') or 0x081ae2.w ('zerowing2') - //PORT_MODIFY("TJUMP") - //JP_43_SPARE (divert from 'toaplan1_type1') (Specified by each set) - //JP_21_SPARE (divert from 'toaplan1_type1') - #endif - - // P1 : in 0x00 (CPU1) -> 0x8007 (CPU1 shared RAM) = 0x44000e.w (CPU0 shared RAM) -> 0x081818.w ('zerowing') or 0x081aea.w ('zerowing2') - // P2 : in 0x08 (CPU1) -> 0x8008 (CPU1 shared RAM) = 0x440010.w (CPU0 shared RAM) -> 0x08181a.w ('zerowing') or 0x081aec.w ('zerowing2') - - // SYSTEM : in 0x80 (CPU1) -> 0x8006 (CPU1 shared RAM) = 0x44000c.w (CPU0 shared RAM) -> 0x081812.w ('zerowing') or 0x081ae4.w ('zerowing2') - - // VBLANK : 0x400000.w ('zerowing' and 'zerowing2') -INPUT_PORTS_END /* verified from M68000 and Z80 code */ static INPUT_PORTS_START( zerowing ) - PORT_INCLUDE( input_common_zerowing ) + PORT_INCLUDE( toaplan1_2b ) - #if ! DEBUG_FREE_ALL_DIPSW - PORT_MODIFY("DSWA") - TOAPLAN_DIP_A1_CABINET(SW1) - TOAPLAN_DIP_A5678_COINAGE_DUAL(TJUMP, 0x02, 0x02, SW1) // mask{0x03} & value{0x02,0x03} -> Europe + /* in 0x20 (CPU1) -> 0x8003 (CPU1 shared RAM) = 0x440006.w (CPU0 shared RAM) -> 0x08180c.w */ + PORT_START("DSWA") + TOAPLAN_MACHINE_COCKTAIL + TOAPLAN_COINAGE_DUAL(TJUMP, 0x02, 0x02) /* see notes */ - PORT_MODIFY("DSWB") - TOAPLAN_DIP_B8_ALLOW_CONTINUE_OFF_YES(SW2) + /* in 0x28 (CPU1) -> 0x8004 (CPU1 shared RAM) = 0x440008.w (CPU0 shared RAM) -> 0x08180e.w */ + PORT_START("DSWB") + TOAPLAN_DIFFICULTY + PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) ) /* table at 0x00216c ('zerowing') or 0x002606 ('zerowing2') */ + PORT_DIPSETTING( 0x00, "200k 700k 500k+" ) + PORT_DIPSETTING( 0x04, "500k 1500k 1000k+" ) + PORT_DIPSETTING( 0x08, "500k Only" ) + PORT_DIPSETTING( 0x0c, DEF_STR( None ) ) + PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) ) + PORT_DIPSETTING( 0x30, "2" ) + PORT_DIPSETTING( 0x00, "3" ) + PORT_DIPSETTING( 0x20, "4" ) + PORT_DIPSETTING( 0x10, "5" ) + PORT_DIPNAME( 0x40, 0x00, "Invulnerability" ) /* see notes */ + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x40, DEF_STR( On ) ) + PORT_DIPNAME( 0x80, 0x00, DEF_STR( Allow_Continue ) ) + PORT_DIPSETTING( 0x80, DEF_STR( No ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_MODIFY("TJUMP") - // region verified 'zerowing' (MAME 0.143u7) // Game |Service| | - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Region ) ) // Mode |Mode | | - PORT_DIPLOCATION("JP:!4,!3") // Coinage|Coinage|Notice|initials - PORT_DIPSETTING( 0x03, DEF_STR( Europe ) ) // Europe |Europe |Off |3 letters - HIDE_DUP( PORT_DIPSETTING( 0x02, DEF_STR( Europe ) ) ) // Europe |Europe |Off |6 letters (default "...000") - PORT_DIPSETTING( 0x01, DEF_STR( USA ) ) // Japan |Japan |off |3 letters - PORT_DIPSETTING( 0x00, DEF_STR( Japan ) ) // Japan |Japan |On |6 letters (default "......") - #endif + /* in 0x88 (CPU1) -> 0x8005 (CPU1 shared RAM) = 0x44000a.w (CPU0 shared RAM) -> 0x081810.w */ + PORT_START("TJUMP") /* Territory Jumper Block - see notes */ + PORT_DIPNAME( 0x03, 0x03, "Territory" ) + PORT_DIPSETTING( 0x03, DEF_STR( Europe ) ) /* 3 letters initials - right */ +// PORT_DIPSETTING( 0x02, DEF_STR( Europe ) ) /* 6 letters initials - wrong */ + PORT_DIPSETTING( 0x01, DEF_STR( USA ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Japan ) ) + PORT_DIPUNUSED( 0x04, IP_ACTIVE_HIGH ) + PORT_DIPUNUSED( 0x08, IP_ACTIVE_HIGH ) + PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNUSED ) + + /* P1 : in 0x00 (CPU1) -> 0x8007 (CPU1 shared RAM) = 0x44000e.w (CPU0 shared RAM) -> 0x081818.w */ + /* P2 : in 0x08 (CPU1) -> 0x8008 (CPU1 shared RAM) = 0x440010.w (CPU0 shared RAM) -> 0x08181a.w */ + + /* SYSTEM : in 0x80 (CPU1) -> 0x8006 (CPU1 shared RAM) = 0x44000c.w (CPU0 shared RAM) -> 0x081812.w */ + + /* VBLANK : 0x400000.w */ INPUT_PORTS_END /* verified from M68000 and Z80 code */ static INPUT_PORTS_START( zerowing2 ) - PORT_INCLUDE( input_common_zerowing ) + PORT_INCLUDE( zerowing ) - #if ! DEBUG_FREE_ALL_DIPSW - PORT_MODIFY("DSWA") - //DIP_A1_SPARE (divert from 'toaplan1_type1' via 'input_common_zerowing') - TOAPLAN_DIP_A5678_COINAGE_DUAL(TJUMP, 0x02, 0x02, SW1) // mask{0x02} & value{0x02} -> Europe + /* in 0x20 (CPU1) -> 0x8003 (CPU1 shared RAM) = 0x440006.w (CPU0 shared RAM) -> 0x081ade.w */ + PORT_MODIFY("DSWA") + TOAPLAN_MACHINE_NO_COCKTAIL - //PORT_MODIFY("DSWB") - //DIP_B8_SPARE (divert from 'toaplan1_type1' via 'input_common_zerowing') + /* in 0x28 (CPU1) -> 0x8004 (CPU1 shared RAM) = 0x440008.w (CPU0 shared RAM) -> 0x081ae0.w */ + PORT_MODIFY("DSWB") + PORT_DIPUNUSED( 0x80, IP_ACTIVE_HIGH ) - PORT_MODIFY("TJUMP") - //JP_4_SPARE (divert from 'toaplan1_type1' via 'input_common_zerowing') - // region verified 'zerowing2' (MAME 0.143u7) // Game |Service| | | - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Region ) ) // Mode |Mode | | | - PORT_DIPLOCATION("JP:!3") // Coinage|Coinage|Notice|Copyright |initials - PORT_DIPSETTING( 0x02, DEF_STR( Europe ) ) // Europe |Europe |Off |WILLIAMS ELECTRONICS GAMES, INC|3 letters - PORT_DIPSETTING( 0x00, DEF_STR( USA ) ) // Japan |Japan |off |WILLIAMS ELECTRONICS GAMES, INC|3 letters - #endif + /* in 0x88 (CPU1) -> 0x8005 (CPU1 shared RAM) = 0x44000a.w (CPU0 shared RAM) -> 0x081ae2.w */ + PORT_MODIFY("TJUMP") /* Territory Jumper block - see notes */ + PORT_DIPUNUSED( 0x01, IP_ACTIVE_HIGH ) + PORT_DIPNAME( 0x02, 0x00, DEF_STR( Region ) ) + PORT_DIPSETTING( 0x00, DEF_STR( USA ) ) + PORT_DIPSETTING( 0x02, DEF_STR( Europe ) ) + PORT_DIPUNUSED( 0x04, IP_ACTIVE_HIGH ) + PORT_DIPUNUSED( 0x08, IP_ACTIVE_HIGH ) + PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNUSED ) + + /* P1 : in 0x00 (CPU1) -> 0x8007 (CPU1 shared RAM) = 0x44000e.w (CPU0 shared RAM) -> 0x081aea.w */ + /* P2 : in 0x08 (CPU1) -> 0x8008 (CPU1 shared RAM) = 0x440010.w (CPU0 shared RAM) -> 0x081aec.w */ + + /* SYSTEM : in 0x80 (CPU1) -> 0x8006 (CPU1 shared RAM) = 0x44000c.w (CPU0 shared RAM) -> 0x081ae4.w */ + + /* VBLANK : 0x400000.w */ INPUT_PORTS_END -static INPUT_PORTS_START( input_common_demonwld ) - PORT_INCLUDE( toaplan1_type2 ) +static INPUT_PORTS_START( demonwld ) + TOAPLAN1_VBLANK_INPUT - #if ! DEBUG_FREE_ALL_DIPSW - PORT_MODIFY("DSWA") - //DIP_A1_SPARE (divert from 'toaplan1_type2') - TOAPLAN_DIP_A2_FLIP_SCREEN(SW1) - TOAPLAN_DIP_A3_SERVICE_MODE(SW1) - TOAPLAN_DIP_A4_DEMO_SOUNDS(SW1) - //DIP_A5678_SPARE (divert from 'toaplan1_type2') (Specified by each set) + PORT_START("P1") + TOAPLAN1_PLAYER_INPUT( 1, IPT_BUTTON3, ) - PORT_MODIFY("DSWB") - TOAPLAN_DIP_B12_DIFFICULTY(SW2) - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:!3,!4") - PORT_DIPSETTING( 0x00, "30K, every 100K" ) - PORT_DIPSETTING( 0x04, "50K and 100K" ) - PORT_DIPSETTING( 0x08, "100K only" ) - PORT_DIPSETTING( 0x0c, DEF_STR( None ) ) - PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:!5,!6") - PORT_DIPSETTING( 0x30, "1" ) - PORT_DIPSETTING( 0x20, "2" ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x10, "5" ) - TOAPLAN_DIP_B7_INVULNERABILITY(SW2) - //DIP_B8_SPARE (divert from 'toaplan1_type2') + PORT_START("P2") + TOAPLAN1_PLAYER_INPUT( 2, IPT_BUTTON3, ) - //PORT_MODIFY("TJUMP") - //JP_43_SPARE (divert from 'toaplan1_type2') (Specified by each set) - //JP_21_SPARE (divert from 'toaplan1_type2') - #endif -INPUT_PORTS_END + PORT_START("DSWA") /* DSW A */ + PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unused ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x01, DEF_STR( On ) ) + PORT_DIPNAME( 0x02, 0x00, DEF_STR( Flip_Screen ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x02, DEF_STR( On ) ) + PORT_SERVICE( 0x04, IP_ACTIVE_HIGH ) + PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) ) + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coin_A ) ) + PORT_DIPSETTING( 0x30, DEF_STR( 4C_1C ) ) + PORT_DIPSETTING( 0x20, DEF_STR( 3C_1C ) ) + PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) + PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) + PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_B ) ) + PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) ) + PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) ) + PORT_DIPSETTING( 0x80, DEF_STR( 1C_4C ) ) + PORT_DIPSETTING( 0xc0, DEF_STR( 1C_6C ) ) -static INPUT_PORTS_START( demonwld ) // demonwld, demonwld2, demonwld3 and demonwld4 - PORT_INCLUDE( input_common_demonwld ) + PORT_START("DSWB") /* DSW B */ + PORT_DIPNAME( 0x03, 0x00, DEF_STR( Difficulty ) ) + PORT_DIPSETTING( 0x01, DEF_STR( Easy ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Medium ) ) + PORT_DIPSETTING( 0x02, DEF_STR( Hard ) ) + PORT_DIPSETTING( 0x03, DEF_STR( Hardest ) ) + PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) ) + PORT_DIPSETTING( 0x00, "30K, every 100K" ) + PORT_DIPSETTING( 0x04, "50K and 100K" ) + PORT_DIPSETTING( 0x08, "100K only" ) + PORT_DIPSETTING( 0x0c, DEF_STR( None ) ) + PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) ) + PORT_DIPSETTING( 0x30, "1" ) + PORT_DIPSETTING( 0x20, "2" ) + PORT_DIPSETTING( 0x00, "3" ) + PORT_DIPSETTING( 0x10, "5" ) + PORT_DIPNAME( 0x40, 0x00, "Invulnerability" ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x40, DEF_STR( On ) ) + PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unused ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x80, DEF_STR( On ) ) - #if ! DEBUG_FREE_ALL_DIPSW - PORT_MODIFY("DSWA") - TOAPLAN_DIP_A5678_COINAGE_DUAL(TJUMP, 0x03, 0x02, SW1) // mask{0x03} & value{0x02} -> Europe + TOAPLAN1_SYSTEM_INPUTS - PORT_MODIFY("TJUMP") - // region verified 'demonwld','demonwld2','demonwld3','demonwld4' (MAME 0.143u7) - // |Game |Service| | - PORT_DIPNAME( 0x03, 0x01, DEF_STR( Region ) ) // |Mode |Mode | | - PORT_DIPLOCATION("JP:!4,!3") // Title |Coinage|Coinage|Notice|Licensed to - PORT_DIPSETTING( 0x02, DEF_STR( Europe ) ) // Demon's World|Europe |? |off |- - HIDE_DUP( PORT_DIPSETTING( 0x03, DEF_STR( USA ) ) ) // Demon's World|Japan |? |off |- - PORT_DIPSETTING( 0x01, DEF_STR( USA ) ) // Demon's World|Japan |? |Off |- - PORT_DIPSETTING( 0x00, frqstr_japan_taitocorp ) // Horror Story |Japan |? |On |TAITO CORP. - // service mode (dip switchs screen) is not yet found - #endif + PORT_START("TJUMP") /* Territory Jumper Block */ + PORT_DIPNAME( 0x01, 0x01, "Territory/Copyright" ) + PORT_DIPSETTING( 0x01, "Toaplan" ) + PORT_DIPSETTING( 0x00, "Japan/Taito Corp" ) + PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x02, DEF_STR( On ) ) + PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x04, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x08, DEF_STR( On ) ) + PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN ) INPUT_PORTS_END static INPUT_PORTS_START( demonwld1 ) - PORT_INCLUDE( input_common_demonwld ) + PORT_INCLUDE( demonwld ) - #if ! DEBUG_FREE_ALL_DIPSW - PORT_MODIFY("DSWA") - TOAPLAN_DIP_A5678_COINAGE_DUAL(TJUMP, 0x03, 0x02, SW1) // mask{0x03} & value{0x02} -> Europe - - PORT_MODIFY("TJUMP") - // region verified 'demonwld1' (MAME 0.143u7) // |Game |Service| | - PORT_DIPNAME( 0x03, 0x01, DEF_STR( Region ) ) // |Mode |Mode | | - PORT_DIPLOCATION("JP:!4,!3") // Title |Coinage|Coinage|Notice|Licensed to - PORT_DIPSETTING( 0x02, frqstr_europe_taitojapan ) // Demon's World|Europe |? |off |TAITO JAPAN - PORT_DIPSETTING( 0x03, DEF_STR( USA ) ) // Demon's World|Japan |? |off |- - PORT_DIPSETTING( 0x01, frqstr_usa_taitoamerica ) // Demon's World|Japan |? |Off |TAITO AMERICA - PORT_DIPSETTING( 0x00, frqstr_japan_taitocorp ) // Horror Story |Japan |? |On |TAITO CORP. - // service mode (dip switchs screen) is not yet found - #endif + PORT_MODIFY("TJUMP") /* Territory Jumper Block */ + PORT_DIPNAME( 0x03, 0x02, "Territory/Copyright" ) + PORT_DIPSETTING( 0x02, "World/Taito Japan" ) + PORT_DIPSETTING( 0x03, "US/Toaplan" ) + PORT_DIPSETTING( 0x01, "US/Taito America" ) + PORT_DIPSETTING( 0x00, "Japan/Taito Corp" ) INPUT_PORTS_END -static INPUT_PORTS_START( input_common_fireshrk ) - PORT_INCLUDE( toaplan1_type2 ) - - #if ! DEBUG_FREE_ALL_DIPSW - PORT_MODIFY("DSWA") - //DIP_A1_SPARE (divert from 'toaplan1_type2') (Specified by each set) - TOAPLAN_DIP_A2_FLIP_SCREEN(SW1) - TOAPLAN_DIP_A3_SERVICE_MODE(SW1) - TOAPLAN_DIP_A4_DEMO_SOUNDS(SW1) - //DIP_A5678_SPARE (divert from 'toaplan1_type2') (Specified by each set) - - PORT_MODIFY("DSWB") - TOAPLAN_DIP_B12_DIFFICULTY(SW2) - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:!3,!4") - PORT_DIPSETTING( 0x04, "50K, every 150K" ) - PORT_DIPSETTING( 0x00, "70K, every 200K" ) - PORT_DIPSETTING( 0x08, "100K" ) - PORT_DIPSETTING( 0x0c, DEF_STR( None ) ) - PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:!5,!6") - PORT_DIPSETTING( 0x30, "2" ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x20, "4" ) - PORT_DIPSETTING( 0x10, "5" ) - TOAPLAN_DIP_B7_INVULNERABILITY(SW2) - //DIP_B8_SPARE (divert from 'toaplan1_type2') (Specified by each set) - - //PORT_MODIFY("TJUMP") - //JP_4321_SPARE (divert from 'toaplan1_type2') (Specified by each set) - #endif - - PORT_MODIFY("SYSTEM") - #if FIRESHRK_SERVICE_1_DESCRIBE_LEVEL == 1 - PORT_BIT(0x01, TOAPLAN_IP_ACTIVE_LEVEL, IPT_SERVICE1) PORT_NAME("Service 1 (Fast Scrolling If Invulnerable)") /* JAMMA "Service" */ - #elif FIRESHRK_SERVICE_1_DESCRIBE_LEVEL == 2 - PORT_BIT(0x01, TOAPLAN_IP_ACTIVE_LEVEL, IPT_SERVICE1) PORT_NAME("(Fast Scrolling If Invulnerable)") - #endif - #if FIRESHRK_SERVICE_1_MOVE_TO_F1 - PORT_CODE(KEYCODE_F1) - #endif - -INPUT_PORTS_END - static INPUT_PORTS_START( fireshrk ) - PORT_INCLUDE( input_common_fireshrk ) + TOAPLAN1_VBLANK_INPUT - #if ! DEBUG_FREE_ALL_DIPSW - PORT_MODIFY("DSWA") - //DIP_A1_SPARE (divert from 'toaplan1_type2' via 'input_common_fireshrk') - TOAPLAN_DIP_A5678_COINAGE_DUAL_GREATERTHAN(TJUMP, 0x03, 0x00, SW1) // mask{0x03} & value{0x01,0x02,0x03} -> Europe + PORT_START("P1") + TOAPLAN1_PLAYER_INPUT( 1, IPT_UNKNOWN, ) - //PORT_MODIFY("DSWB") - //DIP_B8_SPARE (divert from 'toaplan1_type2' via 'input_common_fireshrk') + PORT_START("P2") + TOAPLAN1_PLAYER_INPUT( 2, IPT_UNKNOWN, PORT_COCKTAIL ) - PORT_MODIFY("TJUMP") - // region verified 'fireshrk' (MAME 0.143u7) // |Game |Service| | - PORT_DIPNAME( 0x0f, 0x02, DEF_STR( Region ) ) // |Mode |Mode | | - PORT_DIPLOCATION("JP:!4,!3,!2,!1") // Title |Coinage|Coinage|Notice|Licensed to - PORT_DIPSETTING( 0x01, DEF_STR( Europe ) ) // Fire Shark|Europe |Europe |Off |- - HIDE_DUP( PORT_DIPSETTING( 0x02, DEF_STR( Europe ) ) ) // Fire Shark|Europe |Europe |Off |- - HIDE_DUP( PORT_DIPSETTING( 0x03, DEF_STR( Europe ) ) ) // Fire Shark|Europe |Europe |Off |- - HIDE_DUP( PORT_DIPSETTING( 0x05, DEF_STR( Europe ) ) ) // Fire Shark|Europe |Europe |Off |- - HIDE_DUP( PORT_DIPSETTING( 0x06, DEF_STR( Europe ) ) ) // Fire Shark|Europe |Europe |Off |- - HIDE_DUP( PORT_DIPSETTING( 0x07, DEF_STR( Europe ) ) ) // Fire Shark|Europe |Europe |Off |- - HIDE_DUP( PORT_DIPSETTING( 0x09, DEF_STR( Europe ) ) ) // Fire Shark|Europe |Europe |Off |- - HIDE_DUP( PORT_DIPSETTING( 0x0a, DEF_STR( Europe ) ) ) // Fire Shark|Europe |Europe |Off |- - HIDE_DUP( PORT_DIPSETTING( 0x0b, DEF_STR( Europe ) ) ) // Fire Shark|Europe |Europe |Off |- - HIDE_DUP( PORT_DIPSETTING( 0x0d, DEF_STR( Europe ) ) ) // Fire Shark|Europe |Europe |Off |- - HIDE_DUP( PORT_DIPSETTING( 0x0e, DEF_STR( Europe ) ) ) // Fire Shark|Europe |Europe |Off |- - HIDE_DUP( PORT_DIPSETTING( 0x0f, DEF_STR( Europe ) ) ) // Fire Shark|Europe |Europe |Off |- - PORT_DIPSETTING( 0x04, DEF_STR( USA ) ) // Fire Shark|Japan |Japan |On |- - HIDE_DUP( PORT_DIPSETTING( 0x08, DEF_STR( USA ) ) ) // Fire Shark|Japan |Japan |On |- - HIDE_DUP( PORT_DIPSETTING( 0x0c, DEF_STR( USA ) ) ) // Fire Shark|Japan |Japan |On |- - PORT_DIPSETTING( 0x00, frqstr_usa_romstarinc ) // Fire Shark|Japan |Japan |On |ROMSTAR,INC. - // JP_43 are listed as unused in the Dip Switches screen, but affect to license - #endif + PORT_START("DSWA") /* DSW A */ + PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) ) + PORT_DIPSETTING( 0x01, DEF_STR( Upright ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) + PORT_DIPNAME( 0x02, 0x00, DEF_STR( Flip_Screen ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x02, DEF_STR( On ) ) + PORT_SERVICE( 0x04, IP_ACTIVE_HIGH ) + PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) ) + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coin_A ) ) + PORT_DIPSETTING( 0x30, DEF_STR( 4C_1C ) ) + PORT_DIPSETTING( 0x20, DEF_STR( 3C_1C ) ) + PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) + PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) + PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_B ) ) + PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) ) + PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) ) + PORT_DIPSETTING( 0x80, DEF_STR( 1C_4C ) ) + PORT_DIPSETTING( 0xc0, DEF_STR( 1C_6C ) ) + + PORT_START("DSWB") /* DSW B */ + PORT_DIPNAME( 0x03, 0x00, DEF_STR( Difficulty ) ) + PORT_DIPSETTING( 0x01, DEF_STR( Easy ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Medium ) ) + PORT_DIPSETTING( 0x02, DEF_STR( Hard ) ) + PORT_DIPSETTING( 0x03, DEF_STR( Hardest ) ) + PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) ) + PORT_DIPSETTING( 0x04, "50K, every 150K" ) + PORT_DIPSETTING( 0x00, "70K, every 200K" ) + PORT_DIPSETTING( 0x08, "100K" ) + PORT_DIPSETTING( 0x0c, DEF_STR( None ) ) + PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) ) + PORT_DIPSETTING( 0x30, "2" ) + PORT_DIPSETTING( 0x00, "3" ) + PORT_DIPSETTING( 0x20, "4" ) + PORT_DIPSETTING( 0x10, "5" ) + PORT_DIPNAME( 0x40, 0x00, "Invulnerability" ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x40, DEF_STR( On ) ) + PORT_DIPNAME( 0x80, 0x00, DEF_STR( Allow_Continue ) ) + PORT_DIPSETTING( 0x80, DEF_STR( No ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) + + TOAPLAN1_SYSTEM_INPUTS + + PORT_START("TJUMP") /* Territory Jumper Block */ + PORT_DIPNAME( 0x06, 0x02, "Territory" ) + PORT_DIPSETTING( 0x02, DEF_STR( Europe ) ) + PORT_DIPSETTING( 0x04, DEF_STR( USA ) ) + PORT_DIPSETTING( 0x00, "USA (Romstar)" ) + PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN ) INPUT_PORTS_END static INPUT_PORTS_START( samesame ) - PORT_INCLUDE( input_common_fireshrk ) + PORT_INCLUDE( fireshrk ) - #if ! DEBUG_FREE_ALL_DIPSW - PORT_MODIFY("DSWA") - TOAPLAN_DIP_A1_CABINET(SW1) - //DIP_A5678_SPARE (divert from 'toaplan1_type2' via 'input_common_fireshrk') + PORT_MODIFY("DSWA") /* DSW A */ + PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x10, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x20, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x40, DEF_STR( On ) ) + PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x80, DEF_STR( On ) ) +/* settings listed in service mode, but not actually used ??? + PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coin_A ) ) + PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) + PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) + PORT_DIPSETTING( 0x30, DEF_STR( 2C_3C ) ) + PORT_DIPSETTING( 0x10, DEF_STR( 1C_2C ) ) + PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_B ) ) + PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) + PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) + PORT_DIPSETTING( 0xc0, DEF_STR( 2C_3C ) ) + PORT_DIPSETTING( 0x40, DEF_STR( 1C_2C ) ) +*/ - PORT_MODIFY("DSWB") - TOAPLAN_DIP_B8_ALLOW_CONTINUE_OFF_YES(SW2) - - //PORT_MODIFY("TJUMP") - //JP_4321_SPARE (divert from 'toaplan1_type2' via 'input_common_fireshrk') - - // region verified 'samesame' (MAME 0.143u7) // |Game |Service| | - //PORT_DIPNAME( 0x0f, 0x00, DEF_STR( Region ) ) // |Mode |Mode | | - // PORT_DIPLOCATION("JP:!4,!3,!2,!1") // Title |Coinage|Coinage|Notice|Licensed to - // PORT_DIPSETTING( 0x00, DEF_STR( Japan ) ) // Same Same Same|1C_1C |Japan |On |- - // PORT_DIPSETTING( 0x01, DEF_STR( Japan ) ) // Same Same Same|1C_1C |Japan |On |- - // PORT_DIPSETTING( 0x02, DEF_STR( Japan ) ) // Same Same Same|1C_1C |Europe |On |- - // PORT_DIPSETTING( 0x03, DEF_STR( Japan ) ) // Same Same Same|1C_1C |Europe |On |- - // PORT_DIPSETTING( 0x04, DEF_STR( Japan ) ) // Same Same Same|1C_1C |Japan |On |- - // PORT_DIPSETTING( 0x05, DEF_STR( Japan ) ) // Same Same Same|1C_1C |Japan |On |- - // PORT_DIPSETTING( 0x06, DEF_STR( Japan ) ) // Same Same Same|1C_1C |Europe |On |- - // PORT_DIPSETTING( 0x07, DEF_STR( Japan ) ) // Same Same Same|1C_1C |Europe |On |- - // PORT_DIPSETTING( 0x08, DEF_STR( Japan ) ) // Same Same Same|1C_1C |Japan |On |- - // PORT_DIPSETTING( 0x09, DEF_STR( Japan ) ) // Same Same Same|1C_1C |Japan |On |- - // PORT_DIPSETTING( 0x0a, DEF_STR( Japan ) ) // Same Same Same|1C_1C |Europe |On |- - // PORT_DIPSETTING( 0x0b, DEF_STR( Japan ) ) // Same Same Same|1C_1C |Europe |On |- - // PORT_DIPSETTING( 0x0c, DEF_STR( Japan ) ) // Same Same Same|1C_1C |Japan |On |- - // PORT_DIPSETTING( 0x0d, DEF_STR( Japan ) ) // Same Same Same|1C_1C |Japan |On |- - // PORT_DIPSETTING( 0x0e, DEF_STR( Japan ) ) // Same Same Same|1C_1C |Europe |On |- - // PORT_DIPSETTING( 0x0f, DEF_STR( Japan ) ) // Same Same Same|1C_1C |Europe |On |- - #endif + PORT_MODIFY("TJUMP") /* Territory Jumper Block */ + PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x01, DEF_STR( On ) ) + PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x02, DEF_STR( On ) ) + PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x04, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x08, DEF_STR( On ) ) + PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN ) INPUT_PORTS_END -static INPUT_PORTS_START( samesame2 ) // samesame2 and fireshrkd - PORT_INCLUDE( input_common_fireshrk ) +static INPUT_PORTS_START( samesame2 ) + PORT_INCLUDE( samesame ) - #if ! DEBUG_FREE_ALL_DIPSW - //PORT_MODIFY("DSWA") - //DIP_A1_SPARE (divert from 'toaplan1_type2' via 'input_common_fireshrk') - //DIP_A5678_SPARE (divert from 'toaplan1_type2' via 'input_common_fireshrk') + PORT_MODIFY("P2") + TOAPLAN1_PLAYER_INPUT( 2, IPT_UNKNOWN, ) - //PORT_MODIFY("DSWB") - //DIP_B8_SPARE (divert from 'toaplan1_type2' via 'input_common_fireshrk') + PORT_MODIFY("DSWA") /* DSW A */ + PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) ) /* No cocktail */ + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_MODIFY("TJUMP") - PORT_DIPNAME( 0x03, 0x00, "Show Territory Notice" ) PORT_DIPLOCATION("JP:!4,!3") - HIDE_DUP( PORT_DIPSETTING( 0x03, DEF_STR( No ) ) ) - HIDE_DUP( PORT_DIPSETTING( 0x02, DEF_STR( No ) ) ) - PORT_DIPSETTING( 0x01, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - //JP_21_SPARE (divert from 'toaplan1_type2' via 'input_common_fireshrk') - - // region verified 'samesame2' (MAME 0.143u7) // |Game |Service| |Territory|Service - //PORT_DIPNAME( 0x03, 0x00, DEF_STR( Region ) ) // |Mode |Mode | |Notice |Mode - // PORT_DIPLOCATION("JP:!4,!3,!2,!1") // Title |Coinage|Coinage|Notice|Location |Location - // PORT_DIPSETTING( 0x03, DEF_STR( Japan ) ) // Same Same Same|1C_1C |Europe |Off |- |Europe - // PORT_DIPSETTING( 0x02, DEF_STR( Japan ) ) // Same Same Same|1C_1C |Europe |Off |- |Europe - // PORT_DIPSETTING( 0x01, DEF_STR( Japan ) ) // Same Same Same|1C_1C |Europe |Off |- |Europe - // PORT_DIPSETTING( 0x00, DEF_STR( Japan ) ) // Same Same Same|1C_1C |Japan |On |Japan |USA - - // region verified 'fireshrkd' (MAME 0.143u7) // |Game |Service| |Territory|Service | - //PORT_DIPNAME( 0x03, 0x00, DEF_STR( Region ) ) // |Mode |Mode | |Notice |Mode | - // PORT_DIPLOCATION("JP:!4,!3,!2,!1") // Title |Coinage|Coinage|Notice|Location |Location|Licensed to - // PORT_DIPSETTING( 0x03, DEF_STR( Japan ) ) // Fire Shark|1C_1C |Europe |Off |- |Europe |DOOYONG CO.,LTD. - // PORT_DIPSETTING( 0x02, DEF_STR( Japan ) ) // Fire Shark|1C_1C |Europe |Off |- |Europe |DOOYONG CO.,LTD. - // PORT_DIPSETTING( 0x01, DEF_STR( Japan ) ) // Fire Shark|1C_1C |Europe |Off |- |Europe |DOOYONG CO.,LTD. - // PORT_DIPSETTING( 0x00, DEF_STR( Japan ) ) // Fire Shark|1C_1C |Japan |On |Korean |Korean |DOOYONG CO.,LTD. - #endif -INPUT_PORTS_END - -static INPUT_PORTS_START( fireshrkdh ) - PORT_INCLUDE( input_common_fireshrk ) - - #if ! DEBUG_FREE_ALL_DIPSW - PORT_MODIFY("DSWA") - //DIP_A1_SPARE (divert from 'toaplan1_type2' via 'input_common_fireshrk') - TOAPLAN_DIP_A5678_COINAGE_DUAL_GREATERTHAN(TJUMP, 0x03, 0x00, SW1) // mask{0x03} & value{0x01,0x02,0x03} -> Europe - - //PORT_MODIFY("DSWB") - //DIP_B8_SPARE (divert from 'toaplan1_type2' via 'input_common_fireshrk') - - PORT_MODIFY("TJUMP") - // region verified 'fireshrkdh' (MAME 0.143u7) // |Game |Service| |Territory|Service | - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Region ) ) // |Mode |Mode | |Notice |Mode | - PORT_DIPLOCATION("JP:!4,!3") // Title |Coinage|Coinage|Notice|Location |Location|Licensed to - HIDE_DUP( PORT_DIPSETTING( 0x03, DEF_STR( Europe ) ) ) // Fire Shark|Europe |Europe |Off |- |Europe |DOOYONG IND.CO.,LTD. - HIDE_DUP( PORT_DIPSETTING( 0x02, DEF_STR( Europe ) ) ) // Fire Shark|Europe |Europe |Off |- |Europe |DOOYONG IND.CO.,LTD. - PORT_DIPSETTING( 0x01, DEF_STR( Europe ) ) // Fire Shark|Europe |Europe |Off |- |Europe |DOOYONG IND.CO.,LTD. - PORT_DIPSETTING( 0x00, frqstr_korea ) // Fire Shark|Japan |Japan |On |Korean |Korean |DOOYONG IND.CO.,LTD. - //JP_21_SPARE (divert from 'toaplan1_type2' via 'input_common_fireshrk') - #endif + PORT_MODIFY("TJUMP") /* Territory Jumper Block */ +/* settings listed in service mode, but not actually used + PORT_DIPNAME( 0x03, 0x00, "Territory" ) +// PORT_DIPSETTING( 0x01, DEF_STR( Europe ) ) +// PORT_DIPSETTING( 0x02, DEF_STR( Europe ) ) + PORT_DIPSETTING( 0x03, DEF_STR( Europe ) ) + PORT_DIPSETTING( 0x00, DEF_STR( USA ) ) +*/ + PORT_DIPNAME( 0x01, 0x00, "Show Territory Notice" ) + PORT_DIPSETTING( 0x01, DEF_STR( No ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) +// PORT_DIPNAME( 0x02, 0x00, "Show Territory Notice" ) /* Same as Bit 1 */ +// PORT_DIPSETTING( 0x02, DEF_STR( No ) ) +// PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) + PORT_BIT( 0xf2, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* Mask bit 2 aswell */ INPUT_PORTS_END -static INPUT_PORTS_START( input_common_outzone ) - PORT_INCLUDE( toaplan1_type2 ) +static INPUT_PORTS_START( outzone ) + TOAPLAN1_VBLANK_INPUT - #if ! DEBUG_FREE_ALL_DIPSW - PORT_MODIFY("DSWA") - //DIP_A1_SPARE (divert from 'toaplan1_type2') - TOAPLAN_DIP_A2_FLIP_SCREEN(SW1) - TOAPLAN_DIP_A3_SERVICE_MODE(SW1) - TOAPLAN_DIP_A4_DEMO_SOUNDS(SW1) - //DIP_A5678_SPARE (divert from 'toaplan1_type2') (Specified by each set) + PORT_START("P1") + TOAPLAN1_PLAYER_INPUT( 1, IPT_BUTTON3, ) - PORT_MODIFY("DSWB") - TOAPLAN_DIP_B12_DIFFICULTY(SW2) - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:!3,!4") - PORT_DIPSETTING( 0x00, "Every 300K" ) - PORT_DIPSETTING( 0x04, "200K and 500K" ) - PORT_DIPSETTING( 0x08, "300K only" ) - PORT_DIPSETTING( 0x0c, DEF_STR( None ) ) - PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:!5,!6") - PORT_DIPSETTING( 0x30, "1" ) - PORT_DIPSETTING( 0x20, "2" ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x10, "5" ) - TOAPLAN_DIP_B7_INVULNERABILITY(SW2) - //DIP_B8_SPARE (divert from 'toaplan1_type2') + PORT_START("P2") + TOAPLAN1_PLAYER_INPUT( 2, IPT_BUTTON3, ) - //PORT_MODIFY("TJUMP") - //JP_4321_SPARE (divert from 'toaplan1_type2') (Specified by each set) - #endif -INPUT_PORTS_END + PORT_START("DSWA") /* DSW A */ + PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unused ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x01, DEF_STR( On ) ) + PORT_DIPNAME( 0x02, 0x00, DEF_STR( Flip_Screen ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x02, DEF_STR( On ) ) + PORT_SERVICE( 0x04, IP_ACTIVE_HIGH ) + PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) ) + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coin_A ) ) + PORT_DIPSETTING( 0x30, DEF_STR( 4C_1C ) ) + PORT_DIPSETTING( 0x20, DEF_STR( 3C_1C ) ) + PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) + PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) + PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_B ) ) + PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) ) + PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) ) + PORT_DIPSETTING( 0x80, DEF_STR( 1C_4C ) ) + PORT_DIPSETTING( 0xc0, DEF_STR( 1C_6C ) ) -static INPUT_PORTS_START( outzone ) // outzone and outzonec - PORT_INCLUDE( input_common_outzone ) + PORT_START("DSWB") /* DSW B */ + PORT_DIPNAME( 0x03, 0x00, DEF_STR( Difficulty ) ) + PORT_DIPSETTING( 0x01, DEF_STR( Easy ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Medium ) ) + PORT_DIPSETTING( 0x02, DEF_STR( Hard ) ) + PORT_DIPSETTING( 0x03, DEF_STR( Hardest ) ) + PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) ) + PORT_DIPSETTING( 0x00, "Every 300K" ) + PORT_DIPSETTING( 0x04, "200K and 500K" ) + PORT_DIPSETTING( 0x08, "300K only" ) + PORT_DIPSETTING( 0x0c, DEF_STR( None ) ) + PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) ) + PORT_DIPSETTING( 0x30, "1" ) + PORT_DIPSETTING( 0x20, "2" ) + PORT_DIPSETTING( 0x00, "3" ) + PORT_DIPSETTING( 0x10, "5" ) + PORT_DIPNAME( 0x40, 0x00, "Invulnerability" ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x40, DEF_STR( On ) ) + PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unused ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x80, DEF_STR( On ) ) - #if ! DEBUG_FREE_ALL_DIPSW - PORT_MODIFY("DSWA") - TOAPLAN_DIP_A5678_COINAGE_DUAL(TJUMP, 0x0f, 0x02, SW1) // mask{0x0f} & value{0x02} -> Europe + TOAPLAN1_SYSTEM_INPUTS - PORT_MODIFY("TJUMP") - // region verified 'outzone','outzonec' (MAME 0.143u7) // Game |Service| | | | |Stage - PORT_DIPNAME( 0x0f, 0x02, DEF_STR( Region ) ) // Mode |Mode | | |FBI |Demo |Repeat - PORT_DIPLOCATION("JP:!4,!3,!2,!1") // Coinage|Coinage|Notice|Licensed to |Logo|Story|Message - PORT_DIPSETTING( 0x02, DEF_STR( Europe ) ) // Europe |Europe |On |- |Off |Off |Off - PORT_DIPSETTING( 0x01, DEF_STR( USA ) ) // Japan |Japan |On |- |On |Off |Off - PORT_DIPSETTING( 0x07, frqstr_usa_romstarinc ) // Japan |Europe |On |ROMSTAR, INC. |On |Off |Off - PORT_DIPSETTING( 0x00, DEF_STR( Japan ) ) // Japan |Japan |On |- |Off |On |On - HIDE_DUP( PORT_DIPSETTING( 0x09, DEF_STR( Japan ) ) ) // Japan |Japan |On |- |Off |On |On - HIDE_DUP( PORT_DIPSETTING( 0x0a, DEF_STR( Japan ) ) ) // Japan |Europe |On |- |Off |On |On - HIDE_DUP( PORT_DIPSETTING( 0x0b, DEF_STR( Japan ) ) ) // Japan |Europe |On |- |Off |On |On - HIDE_DUP( PORT_DIPSETTING( 0x0c, DEF_STR( Japan ) ) ) // Japan |Europe |On |- |Off |On |On - HIDE_DUP( PORT_DIPSETTING( 0x0d, DEF_STR( Japan ) ) ) // Japan |Europe |On |- |Off |On |On - HIDE_DUP( PORT_DIPSETTING( 0x0e, DEF_STR( Japan ) ) ) // Japan |Europe |On |- |Off |On |On - HIDE_DUP( PORT_DIPSETTING( 0x0f, DEF_STR( Japan ) ) ) // Japan |Europe |On |- |Off |On |On - PORT_DIPSETTING( 0x03, frqstr_hongkong ) // Japan |Europe |On |- |Off |Off |Off - PORT_DIPSETTING( 0x08, frqstr_hongkongchina_honest ) // Japan |Japan |On |HONEST TRADING CO.|Off |Off |Off - PORT_DIPSETTING( 0x04, frqstr_korea ) // Japan |Europe |On |- |Off |Off |Off - PORT_DIPSETTING( 0x05, frqstr_taiwan ) // Japan |Europe |On |- |Off |Off |Off - PORT_DIPSETTING( 0x06, frqstr_taiwan_spacy ) // Japan |Europe |On |SPACY CO.,LTD. |Off |Off |Off - #endif -INPUT_PORTS_END - -static INPUT_PORTS_START( outzonea ) // outzonea and outzoned - PORT_INCLUDE( input_common_outzone ) - - #if ! DEBUG_FREE_ALL_DIPSW - PORT_MODIFY("DSWA") - TOAPLAN_DIP_A5678_COINAGE_DUAL(TJUMP, 0x0f, 0x02, SW1) // mask{0x0f} & value{0x02} -> Europe - - PORT_MODIFY("TJUMP") - // region verified 'outzonea','outzoned' (MAME 0.143u7) // Game |Service| | | | |Stage - PORT_DIPNAME( 0x0f, 0x02, DEF_STR( Region ) ) // Mode |Mode | | |FBI |Demo |Repeat - PORT_DIPLOCATION("JP:!4,!3,!2,!1") // Coinage|Coinage|Notice|Licensed to |Logo|Story|Message - PORT_DIPSETTING( 0x02, DEF_STR( Europe ) ) // Europe |Europe |On |- |Off |Off |Off - PORT_DIPSETTING( 0x01, DEF_STR( USA ) ) // Japan |Japan |On |- |On |Off |Off - PORT_DIPSETTING( 0x07, frqstr_usa_romstarinc ) // Japan |Europe |On |ROMSTAR, INC. |On |Off |Off - PORT_DIPSETTING( 0x00, DEF_STR( Japan ) ) // Japan |Japan |On |- |Off |On |On - HIDE_DUP( PORT_DIPSETTING( 0x09, DEF_STR( Japan ) ) ) // Japan |Japan |On |- |Off |On |On - HIDE_DUP( PORT_DIPSETTING( 0x0a, DEF_STR( Japan ) ) ) // Japan |Europe |On |- |Off |On |On - HIDE_DUP( PORT_DIPSETTING( 0x0b, DEF_STR( Japan ) ) ) // Japan |Europe |On |- |Off |On |On - HIDE_DUP( PORT_DIPSETTING( 0x0c, DEF_STR( Japan ) ) ) // Japan |Europe |On |- |Off |On |On - HIDE_DUP( PORT_DIPSETTING( 0x0d, DEF_STR( Japan ) ) ) // Japan |Europe |On |- |Off |On |On - HIDE_DUP( PORT_DIPSETTING( 0x0e, DEF_STR( Japan ) ) ) // Japan |Europe |On |- |Off |On |On - HIDE_DUP( PORT_DIPSETTING( 0x0f, DEF_STR( Japan ) ) ) // Japan |Europe |On |- |Off |On |On - PORT_DIPSETTING( 0x03, frqstr_hongkong ) // Japan |Europe |On |- |Off |Off |Off - PORT_DIPSETTING( 0x08, frqstr_hongkong_honest ) // Japan |Japan |On |HONEST TRADING CO.|Off |Off |Off - PORT_DIPSETTING( 0x04, frqstr_korea ) // Japan |Europe |On |- |Off |Off |Off - PORT_DIPSETTING( 0x05, frqstr_taiwan ) // Japan |Europe |On |- |Off |Off |Off - PORT_DIPSETTING( 0x06, frqstr_taiwan_spacy ) // Japan |Europe |On |SPACY CO.,LTD. |Off |Off |Off - #endif + PORT_START("TJUMP") /* Territory Jumper Block */ + PORT_DIPNAME( 0x0f, 0x02, "Territory" ) + PORT_DIPSETTING( 0x00, DEF_STR( Japan ) ) + PORT_DIPSETTING( 0x01, "US" ) + PORT_DIPSETTING( 0x02, DEF_STR( Europe ) ) + PORT_DIPSETTING( 0x03, "Hong Kong" ) + PORT_DIPSETTING( 0x04, "Korea" ) + PORT_DIPSETTING( 0x05, "Taiwan" ) + PORT_DIPSETTING( 0x06, "Taiwan (Spacy Co License)" ) + PORT_DIPSETTING( 0x07, "US (Romstar License)" ) + PORT_DIPSETTING( 0x08, "Hong Kong (Honest Trading License)" ) +// PORT_DIPSETTING( 0x09, DEF_STR( Japan ) ) +// PORT_DIPSETTING( 0x0a, DEF_STR( Japan ) ) +// PORT_DIPSETTING( 0x0b, DEF_STR( Japan ) ) +// PORT_DIPSETTING( 0x0c, DEF_STR( Japan ) ) +// PORT_DIPSETTING( 0x0d, DEF_STR( Japan ) ) +// PORT_DIPSETTING( 0x0e, DEF_STR( Japan ) ) +// PORT_DIPSETTING( 0x0f, DEF_STR( Japan ) ) + PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN ) INPUT_PORTS_END static INPUT_PORTS_START( outzoneb ) - PORT_INCLUDE( input_common_outzone ) + PORT_INCLUDE( outzone ) - #if ! DEBUG_FREE_ALL_DIPSW - PORT_MODIFY("DSWA") - TOAPLAN_DIP_A5678_COINAGE_DUAL(TJUMP, 0x0f, 0x02, SW1) // mask{0x0f} & value{0x02} -> Europe + PORT_MODIFY("TJUMP") /* Territory Jumper Block */ + PORT_DIPNAME( 0x07, 0x02, "Territory" ) + PORT_DIPSETTING( 0x00, DEF_STR( Japan ) ) + PORT_DIPSETTING( 0x01, "US" ) + PORT_DIPSETTING( 0x02, DEF_STR( Europe ) ) + PORT_DIPSETTING( 0x03, "Hong Kong" ) + PORT_DIPSETTING( 0x04, "Korea" ) + PORT_DIPSETTING( 0x05, "Taiwan" ) + PORT_DIPSETTING( 0x06, "No Warning Screen" ) + PORT_DIPSETTING( 0x07, "No Warning Screen" ) + PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unused ) ) // doesn't seem to matter on this set + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x80, DEF_STR( On ) ) +INPUT_PORTS_END - PORT_MODIFY("TJUMP") - // region verified 'outzoneb' (MAME 0.143u7) // Game |Service| | | | |Stage - PORT_DIPNAME( 0x0f, 0x02, DEF_STR( Region ) ) // Mode |Mode | | |FBI |Demo |Repeat - PORT_DIPLOCATION("JP:!4,!3,!2,!1") // Coinage|Coinage|Notice|Licensed to|Logo|Story|Message - PORT_DIPSETTING( 0x02, DEF_STR( Europe ) ) // Europe |Europe |On |- |Off |Off |Off - PORT_DIPSETTING( 0x0a, "Europe (Japanese coinage)" ) // Japan |Europe |On |- |Off |Off |Off - PORT_DIPSETTING( 0x01, DEF_STR( USA ) ) // Japan |Japan |On |- |On |Off |Off - HIDE_DUP( PORT_DIPSETTING( 0x09, DEF_STR( USA ) ) ) // Japan |Japan |On |- |On |Off |Off - PORT_DIPSETTING( 0x00, DEF_STR( Japan ) ) // Japan |Japan |On |- |Off |On |On - HIDE_DUP( PORT_DIPSETTING( 0x08, DEF_STR( Japan ) ) ) // Japan |Japan |On |- |Off |On |On - PORT_DIPSETTING( 0x03, frqstr_hongkong ) // Japan |Europe |On |- |Off |Off |Off - HIDE_DUP( PORT_DIPSETTING( 0x0b, frqstr_hongkong ) ) // Japan |Europe |On |- |Off |Off |Off - PORT_DIPSETTING( 0x04, frqstr_korea ) // Japan |Europe |On |- |Off |Off |Off - HIDE_DUP( PORT_DIPSETTING( 0x0c, frqstr_korea ) ) // Japan |Europe |On |- |Off |Off |Off - PORT_DIPSETTING( 0x05, frqstr_taiwan ) // Japan |Europe |On |- |Off |Off |Off - HIDE_DUP( PORT_DIPSETTING( 0x0d, frqstr_taiwan ) ) // Japan |Europe |On |- |Off |Off |Off - PORT_DIPSETTING( 0x06, frqstr_no_country ) // Japan |Europe |Off |- |Off |Off |Off - HIDE_DUP( PORT_DIPSETTING( 0x07, frqstr_no_country ) ) // Japan |Europe |Off |- |Off |Off |Off - HIDE_DUP( PORT_DIPSETTING( 0x0e, frqstr_no_country ) ) // Japan |Europe |Off |- |Off |Off |Off - HIDE_DUP( PORT_DIPSETTING( 0x0f, frqstr_no_country ) ) // Japan |Europe |Off |- |Off |Off |Off - #endif +static INPUT_PORTS_START( outzonec ) + PORT_INCLUDE( outzone ) + + PORT_MODIFY("TJUMP") /* Territory Jumper Block */ + PORT_DIPNAME( 0x0f, 0x02, "Territory" ) + PORT_DIPSETTING( 0x00, DEF_STR( Japan ) ) + PORT_DIPSETTING( 0x01, "US" ) + PORT_DIPSETTING( 0x02, DEF_STR( Europe ) ) + PORT_DIPSETTING( 0x03, "Hong Kong" ) + PORT_DIPSETTING( 0x04, "Korea" ) + PORT_DIPSETTING( 0x05, "Taiwan" ) + PORT_DIPSETTING( 0x06, "Taiwan (Spacy Co License)" ) + PORT_DIPSETTING( 0x07, "US (Romstar License)" ) + PORT_DIPSETTING( 0x08, "Hong Kong & China (Honest Trading License)" ) +// PORT_DIPSETTING( 0x09, DEF_STR( Japan ) ) +// PORT_DIPSETTING( 0x0a, DEF_STR( Japan ) ) +// PORT_DIPSETTING( 0x0b, DEF_STR( Japan ) ) +// PORT_DIPSETTING( 0x0c, DEF_STR( Japan ) ) +// PORT_DIPSETTING( 0x0d, DEF_STR( Japan ) ) +// PORT_DIPSETTING( 0x0e, DEF_STR( Japan ) ) +// PORT_DIPSETTING( 0x0f, DEF_STR( Japan ) ) INPUT_PORTS_END /* verified from M68000 - coinage based on "test mode" and handled by the MCU simulation */ -static INPUT_PORTS_START( input_common_vimana ) - PORT_INCLUDE( toaplan1_type1 ) +static INPUT_PORTS_START( vimana ) + PORT_INCLUDE( toaplan1_2b ) - #if ! DEBUG_FREE_ALL_DIPSW - /* 0x440007.b */ - PORT_MODIFY("DSWA") - //DIP_A1_SPARE (divert from 'toaplan1_type1') - TOAPLAN_DIP_A2_FLIP_SCREEN(SW1) - TOAPLAN_DIP_A3_SERVICE_MODE(SW1) - TOAPLAN_DIP_A4_DEMO_SOUNDS(SW1) - //DIP_A5678_SPARE (divert from 'toaplan1_type1') (Specified by each set) + /* 0x440007.b */ + PORT_START("DSWA") + TOAPLAN_MACHINE_NO_COCKTAIL + TOAPLAN_COINAGE_DUAL(TJUMP, 0x0f, 0x02) /* see notes */ - /* 0x44000f.b */ - PORT_MODIFY("DSWB") - TOAPLAN_DIP_B12_DIFFICULTY(SW2) - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:!3,!4") /* table at 0x000998 */ - PORT_DIPSETTING( 0x00, "70k 270k 200k+" ) - PORT_DIPSETTING( 0x04, "100k 350k 250k+" ) - PORT_DIPSETTING( 0x08, "100k Only" ) - PORT_DIPSETTING( 0x0c, "200k Only" ) - PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:!5,!6") - PORT_DIPSETTING( 0x30, "2" ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x20, "4" ) - PORT_DIPSETTING( 0x10, "5" ) - TOAPLAN_DIP_B7_INVULNERABILITY(SW2) - TOAPLAN_DIP_B8_ALLOW_CONTINUE_OFF_YES(SW2) + /* 0x44000f.b */ + PORT_START("DSWB") + TOAPLAN_DIFFICULTY + PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) ) /* table at 0x000998 */ + PORT_DIPSETTING( 0x00, "70k 270k 200k+" ) + PORT_DIPSETTING( 0x04, "100k 350k 250k+" ) + PORT_DIPSETTING( 0x08, "100k Only" ) + PORT_DIPSETTING( 0x0c, "200k Only" ) + PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) ) + PORT_DIPSETTING( 0x30, "2" ) + PORT_DIPSETTING( 0x00, "3" ) + PORT_DIPSETTING( 0x20, "4" ) + PORT_DIPSETTING( 0x10, "5" ) + PORT_DIPNAME( 0x40, 0x00, "Invulnerability" ) /* see notes */ + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x40, DEF_STR( On ) ) + PORT_DIPNAME( 0x80, 0x00, DEF_STR( Allow_Continue ) ) + PORT_DIPSETTING( 0x80, DEF_STR( No ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - /* 0x440011.b */ - //PORT_MODIFY("TJUMP") - //JP_4321_SPARE (divert from 'toaplan1_type1') (Specified by each set) - #endif + /* 0x440011.b */ + PORT_START("TJUMP") /* Territory Jumper Block - see notes */ + PORT_DIPNAME( 0x0f, 0x02, "Territory" ) + PORT_DIPSETTING( 0x02, DEF_STR( Europe ) ) + PORT_DIPSETTING( 0x01, DEF_STR( USA ) ) + PORT_DIPSETTING( 0x07, "USA (Romstar license)" ) +// PORT_DIPSETTING( 0x00, "Japan (distributed by Tecmo)" ) +// PORT_DIPSETTING( 0x0f, "Japan (distributed by Tecmo)" ) + PORT_DIPSETTING( 0x04, "Korea" ) + PORT_DIPSETTING( 0x03, "Hong Kong" ) + PORT_DIPSETTING( 0x08, "Hong Kong (Honest Trading license)" ) + PORT_DIPSETTING( 0x05, "Taiwan" ) + PORT_DIPSETTING( 0x06, "Taiwan (Spacy license)" ) +// PORT_DIPSETTING( 0x09, "???" ) +// PORT_DIPSETTING( 0x0a, "???" ) +// PORT_DIPSETTING( 0x0b, "???" ) +// PORT_DIPSETTING( 0x0c, "???" ) +// PORT_DIPSETTING( 0x0d, "???" ) +// PORT_DIPSETTING( 0x0e, "???" ) + PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* P1 : 0x44000b.b */ PORT_MODIFY("P1") - #if VIMANA_P1_BUTTON_3_DESCRIBE_LEVEL == 1 - PORT_BIT(0x40, TOAPLAN_IP_ACTIVE_LEVEL, IPT_BUTTON3) PORT_PLAYER(1) PORT_NAME("Spare (P1 Button 3) (Fast Scrolling If Invulnerable)") /* JAMMA "P1 button 3" */ - #elif VIMANA_P1_BUTTON_3_DESCRIBE_LEVEL == 2 - PORT_BIT(0x40, TOAPLAN_IP_ACTIVE_LEVEL, IPT_BUTTON3) PORT_PLAYER(1) PORT_NAME("(Fast Scrolling If Invulnerable)") - #endif - #if VIMANA_P1_BUTTON_3_MOVE_TO_F1 - PORT_CODE(KEYCODE_F1) - #endif + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Fast Scrolling") PORT_CODE(KEYCODE_F1) /* see notes */ /* P2 : 0x44000d.b */ - PORT_MODIFY("P2") - #if VIMANA_P2_BUTTON_3_DESCRIBE_LEVEL == 1 - PORT_BIT(0x40, TOAPLAN_IP_ACTIVE_LEVEL, IPT_BUTTON3) PORT_PLAYER(2) PORT_NAME("Spare (P2 Button 3) (Go To Next Stage If Invulnerable)") /* JAMMA "P1 button 3" */ - #elif VIMANA_P2_BUTTON_3_DESCRIBE_LEVEL == 2 - PORT_BIT(0x40, TOAPLAN_IP_ACTIVE_LEVEL, IPT_BUTTON3) PORT_PLAYER(2) PORT_NAME("(Go To Next Stage If Invulnerable)") - #endif - #if VIMANA_P2_BUTTON_3_MOVE_TO_F1 - PORT_CODE(KEYCODE_F1) - #endif /* SYSTEM : 0x440009.b */ /* VBLANK : 0x400001.b */ INPUT_PORTS_END -static INPUT_PORTS_START( vimana ) - PORT_INCLUDE( input_common_vimana ) - - #if ! DEBUG_FREE_ALL_DIPSW - PORT_MODIFY("DSWA") - TOAPLAN_DIP_A5678_COINAGE_DUAL(TJUMP, 0x0f, 0x02, SW1) - - PORT_MODIFY("TJUMP") - // region verified 'vimana' (MAME 0.143u7) // Game |Service| |Distributed by | | - PORT_DIPNAME( 0x0f, 0x02, DEF_STR( Region ) ) // Mode |Mode | |or |FBI |End - PORT_DIPLOCATION("JP:!4,!3,!2,!1") // Coinage|Coinage|Notice|Licensed to |Logo|Story - PORT_DIPSETTING( 0x02, DEF_STR( Europe ) ) // Europe |Europe |On |- |Off |English - PORT_DIPSETTING( 0x01, DEF_STR( USA ) ) // Japan |Japan |On |- |On |English - PORT_DIPSETTING( 0x07, frqstr_usa_romstarinc ) // Japan |Japan |On |ROMSTAR, INC. |On |English - PORT_DIPSETTING( 0x00, frqstr_japan_tecmo ) // Japan |Japan |On |TECMO |Off |English - HIDE_DUP( PORT_DIPSETTING( 0x0f, frqstr_japan_tecmo ) ) // Japan |Japan |On |TECMO |Off |English - PORT_DIPSETTING( 0x04, frqstr_korea ) // Japan |Japan |On |- |Off |English - PORT_DIPSETTING( 0x03, frqstr_hongkong ) // Japan |Japan |On |- |Off |English - PORT_DIPSETTING( 0x08, frqstr_hongkongchina_honest ) // Japan |Japan |On |HONEST TRADING CO.|Off |English - PORT_DIPSETTING( 0x05, frqstr_taiwan ) // Japan |Japan |On |- |Off |English - PORT_DIPSETTING( 0x06, frqstr_taiwan_spacy ) // Japan |Japan |On |SPACY CO.,LTD |Off |English - PORT_DIPSETTING( 0x09, frqstr_no_country ) // Japan |Japan |On |- |Off |English - HIDE_DUP( PORT_DIPSETTING( 0x0a, frqstr_no_country ) ) // Japan |Japan |On |- |Off |English - HIDE_DUP( PORT_DIPSETTING( 0x0b, frqstr_no_country ) ) // Japan |Japan |On |- |Off |English - HIDE_DUP( PORT_DIPSETTING( 0x0c, frqstr_no_country ) ) // Japan |Japan |On |- |Off |English - HIDE_DUP( PORT_DIPSETTING( 0x0d, frqstr_no_country ) ) // Japan |Japan |On |- |Off |English - HIDE_DUP( PORT_DIPSETTING( 0x0e, frqstr_no_country ) ) // Japan |Japan |On |- |Off |English - #endif -INPUT_PORTS_END - +/* verified from M68000 - coinage based on "test mode" and handled by the MCU simulation */ static INPUT_PORTS_START( vimanan ) - PORT_INCLUDE( input_common_vimana ) + PORT_INCLUDE( vimana ) - #if ! DEBUG_FREE_ALL_DIPSW - PORT_MODIFY("DSWA") - TOAPLAN_DIP_A5678_COINAGE_DUAL(TJUMP, 0x0f, 0x02, SW1) + /* DSWA : 0x440007.b */ + /* DSWB : 0x44000f.b */ - PORT_MODIFY("TJUMP") - // region verified 'vimanan' (MAME 0.143u7) // Game |Service| |Distributed by | | - PORT_DIPNAME( 0x0f, 0x02, DEF_STR( Region ) ) // Mode |Mode | |or |FBI |End - PORT_DIPLOCATION("JP:!4,!3,!2,!1") // Coinage|Coinage|Notice|Licensed to |Logo|Story - PORT_DIPSETTING( 0x02, frqstr_europe_nova ) // Europe |Europe |On |NOVA APPARATE GMBH & CO|Off |English - PORT_DIPSETTING( 0x01, DEF_STR( USA ) ) // Japan |Japan |On |- |On |English - PORT_DIPSETTING( 0x07, frqstr_usa_romstarinc ) // Japan |Japan |On |ROMSTAR, INC. |On |English - PORT_DIPSETTING( 0x00, frqstr_japan_tecmo ) // Japan |Japan |On |TECMO |Off |English - HIDE_DUP( PORT_DIPSETTING( 0x0f, frqstr_japan_tecmo ) ) // Japan |Japan |On |TECMO |Off |English - PORT_DIPSETTING( 0x04, frqstr_korea ) // Japan |Japan |On |- |Off |English - PORT_DIPSETTING( 0x03, frqstr_hongkong ) // Japan |Japan |On |- |Off |English - PORT_DIPSETTING( 0x08, frqstr_hongkongchina_honest ) // Japan |Japan |On |HONEST TRADING CO. |Off |English - PORT_DIPSETTING( 0x05, frqstr_taiwan ) // Japan |Japan |On |- |Off |English - PORT_DIPSETTING( 0x06, frqstr_taiwan_spacy ) // Japan |Japan |On |SPACY CO.,LTD |Off |English - PORT_DIPSETTING( 0x09, frqstr_no_country ) // Japan |Japan |On |- |Off |English - HIDE_DUP( PORT_DIPSETTING( 0x0a, frqstr_no_country ) ) // Japan |Japan |On |- |Off |English - HIDE_DUP( PORT_DIPSETTING( 0x0b, frqstr_no_country ) ) // Japan |Japan |On |- |Off |English - HIDE_DUP( PORT_DIPSETTING( 0x0c, frqstr_no_country ) ) // Japan |Japan |On |- |Off |English - HIDE_DUP( PORT_DIPSETTING( 0x0d, frqstr_no_country ) ) // Japan |Japan |On |- |Off |English - HIDE_DUP( PORT_DIPSETTING( 0x0e, frqstr_no_country ) ) // Japan |Japan |On |- |Off |English - #endif + /* 0x440011.b */ + PORT_MODIFY("TJUMP") /* Territory Jumper Block - see notes */ + PORT_DIPNAME( 0x0f, 0x02, "Territory" ) + PORT_DIPSETTING( 0x02, "Europe (Nova Apparate license)" ) + PORT_DIPSETTING( 0x01, DEF_STR( USA ) ) + PORT_DIPSETTING( 0x07, "USA (Romstar license)" ) +// PORT_DIPSETTING( 0x00, "Japan (distributed by Tecmo)" ) /* "ending" text in English */ +// PORT_DIPSETTING( 0x0f, "Japan (distributed by Tecmo)" ) /* "ending" text in English */ + PORT_DIPSETTING( 0x04, "Korea" ) + PORT_DIPSETTING( 0x03, "Hong Kong" ) + PORT_DIPSETTING( 0x08, "Hong Kong (Honest Trading license)" ) + PORT_DIPSETTING( 0x05, "Taiwan" ) + PORT_DIPSETTING( 0x06, "Taiwan (Spacy license)" ) +// PORT_DIPSETTING( 0x09, "???" ) +// PORT_DIPSETTING( 0x0a, "???" ) +// PORT_DIPSETTING( 0x0b, "???" ) +// PORT_DIPSETTING( 0x0c, "???" ) +// PORT_DIPSETTING( 0x0d, "???" ) +// PORT_DIPSETTING( 0x0e, "???" ) + + /* P1 : 0x44000b.b */ + /* P2 : 0x44000d.b */ + + /* SYSTEM : 0x440009.b */ + + /* VBLANK : 0x400001.b */ INPUT_PORTS_END +/* verified from M68000 - coinage based on "test mode" and handled by the MCU simulation */ static INPUT_PORTS_START( vimana1 ) - PORT_INCLUDE( input_common_vimana ) + PORT_INCLUDE( vimana ) - #if ! DEBUG_FREE_ALL_DIPSW - PORT_MODIFY("DSWA") - TOAPLAN_DIP_A5678_COINAGE_DUAL(TJUMP, 0x0f, 0x02, SW1) + /* DSWA : 0x440007.b */ + /* DSWB : 0x44000f.b */ - PORT_MODIFY("TJUMP") - // region verified 'vimana1' (MAME 0.143u7) // Game |Service| |Distributed by | | - PORT_DIPNAME( 0x0f, 0x00, DEF_STR( Region ) ) // Mode |Mode | |or |FBI |End - PORT_DIPLOCATION("JP:!4,!3,!2,!1") // Coinage|Coinage|Notice|Licensed to |Logo|Story - PORT_DIPSETTING( 0x02, DEF_STR( Europe ) ) // Europe |Europe |On |- |Off |Japanese - PORT_DIPSETTING( 0x01, DEF_STR( USA ) ) // Japan |Japan |On |- |On |Japanese - PORT_DIPSETTING( 0x07, frqstr_usa_romstarinc ) // Japan |Japan |On |ROMSTAR, INC. |On |Japanese - PORT_DIPSETTING( 0x00, frqstr_japan_tecmo ) // Japan |Japan |On |TECMO |Off |Japanese - HIDE_DUP( PORT_DIPSETTING( 0x0f, frqstr_japan_tecmo ) ) // Japan |Japan |On |TECMO |Off |Japanese - PORT_DIPSETTING( 0x04, frqstr_korea ) // Japan |Japan |On |- |Off |Japanese - PORT_DIPSETTING( 0x03, frqstr_hongkong ) // Japan |Japan |On |- |Off |Japanese - PORT_DIPSETTING( 0x08, frqstr_hongkongchina_honest ) // Japan |Japan |On |HONEST TRADING CO.|Off |Japanese - PORT_DIPSETTING( 0x05, frqstr_taiwan ) // Japan |Japan |On |- |Off |Japanese - PORT_DIPSETTING( 0x06, frqstr_taiwan_spacy ) // Japan |Japan |On |SPACY CO.,LTD |Off |Japanese - PORT_DIPSETTING( 0x09, frqstr_no_country ) // Japan |Japan |On |- |Off |Japanese - HIDE_DUP( PORT_DIPSETTING( 0x0a, frqstr_no_country ) ) // Japan |Japan |On |- |Off |Japanese - HIDE_DUP( PORT_DIPSETTING( 0x0b, frqstr_no_country ) ) // Japan |Japan |On |- |Off |Japanese - HIDE_DUP( PORT_DIPSETTING( 0x0c, frqstr_no_country ) ) // Japan |Japan |On |- |Off |Japanese - HIDE_DUP( PORT_DIPSETTING( 0x0d, frqstr_no_country ) ) // Japan |Japan |On |- |Off |Japanese - HIDE_DUP( PORT_DIPSETTING( 0x0e, frqstr_no_country ) ) // Japan |Japan |On |- |Off |Japanese - #endif + /* 0x440011.b */ + PORT_MODIFY("TJUMP") /* Territory Jumper Block - see notes */ + PORT_DIPNAME( 0x0f, 0x00, "Territory" ) +// PORT_DIPSETTING( 0x02, DEF_STR( Europe ) ) +// PORT_DIPSETTING( 0x01, DEF_STR( USA ) ) +// PORT_DIPSETTING( 0x07, "USA (Romstar license)" ) + PORT_DIPSETTING( 0x00, "Japan (distributed by Tecmo)" ) +// PORT_DIPSETTING( 0x0f, "Japan (distributed by Tecmo)" ) +// PORT_DIPSETTING( 0x04, "Korea" ) +// PORT_DIPSETTING( 0x03, "Hong Kong" ) +// PORT_DIPSETTING( 0x08, "Hong Kong (Honest Trading license)" ) +// PORT_DIPSETTING( 0x05, "Taiwan" ) +// PORT_DIPSETTING( 0x06, "Taiwan (Spacy license)" ) +// PORT_DIPSETTING( 0x09, "???" ) +// PORT_DIPSETTING( 0x0a, "???" ) +// PORT_DIPSETTING( 0x0b, "???" ) +// PORT_DIPSETTING( 0x0c, "???" ) +// PORT_DIPSETTING( 0x0d, "???" ) +// PORT_DIPSETTING( 0x0e, "???" ) + PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN ) + + /* P1 : 0x44000b.b */ + /* P2 : 0x44000d.b */ + + /* SYSTEM : 0x440009.b */ + + /* VBLANK : 0x400001.b */ INPUT_PORTS_END - - static const gfx_layout tilelayout = { 8,8, /* 8x8 */ @@ -2806,29 +2539,29 @@ static DRIVER_INIT( vimana ) } -// YEAR, NAME, PARENT, MACHINE, INPUT, INIT, MONITOR,COMPANY,FULLNAME,FLAGS -GAME( 1988, rallybik, 0, rallybik, rallybik, toaplan1, ROT270, "Toaplan / Taito Corporation", "Rally Bike / Dash Yarou", 0 ) -GAME( 1988, truxton, 0, truxton, truxton, toaplan1, ROT270, "Toaplan / Taito Corporation", "Truxton / Tatsujin", 0 ) -GAME( 1989, hellfire, 0, hellfire, hellfire, toaplan1, ROT0, "Toaplan (Taito license)", "Hellfire (2P set)", 0 ) // 2P = simultaneous players -GAME( 1989, hellfire1, hellfire, hellfire, hellfire1, toaplan1, ROT0, "Toaplan (Taito license)", "Hellfire (1P set, ealier)", 0 ) // 1P = alternating players -GAME( 1989, hellfire2, hellfire, hellfire, hellfire2, toaplan1, ROT0, "Toaplan (Taito license)", "Hellfire (2P set, ealier)", 0 ) -GAME( 1989, hellfire3, hellfire, hellfire, hellfire3, toaplan1, ROT0, "Toaplan (Taito license)", "Hellfire (1P set)", 0 ) -GAME( 1989, zerowing, 0, zerowing, zerowing, toaplan1, ROT0, "Toaplan", "Zero Wing (1P set)", 0 ) -GAME( 1989, zerowing2, zerowing, zerowing, zerowing2, toaplan1, ROT0, "Toaplan", "Zero Wing (2P set)", 0 ) -GAME( 1990, demonwld, 0, demonwld, demonwld, demonwld, ROT0, "Toaplan", "Demon's World / Horror Story (set 1)", 0 ) -GAME( 1989, demonwld1, demonwld, demonwld, demonwld1, demonwld, ROT0, "Toaplan", "Demon's World / Horror Story (set 2)", 0 ) -GAME( 1989, demonwld2, demonwld, demonwld, demonwld, demonwld, ROT0, "Toaplan", "Demon's World / Horror Story (set 3)", 0 ) -GAME( 1989, demonwld3, demonwld, demonwld, demonwld, demonwld, ROT0, "Toaplan", "Demon's World / Horror Story (set 4)", 0 ) -GAME( 1990, fireshrk, 0, samesame, fireshrk, toaplan1, ROT270, "Toaplan", "Fire Shark", GAME_NO_SOUND ) -GAME( 1990, fireshrkd, fireshrk, samesame, samesame2, toaplan1, ROT270, "Toaplan (Dooyong license)", "Fire Shark (Korea, set 1, easier)", GAME_NO_SOUND ) -GAME( 1990, fireshrkdh, fireshrk, samesame, fireshrkdh, toaplan1, ROT270, "Toaplan (Dooyong license)", "Fire Shark (Korea, set 2, harder)", GAME_NO_SOUND ) -GAME( 1989, samesame, fireshrk, samesame, samesame, toaplan1, ROT270, "Toaplan", "Same! Same! Same! (1P set)", GAME_NO_SOUND ) -GAME( 1989, samesame2, fireshrk, samesame, samesame2, toaplan1, ROT270, "Toaplan", "Same! Same! Same! (2P set)", GAME_NO_SOUND ) -GAME( 1990, outzone, 0, outzone, outzone, toaplan1, ROT270, "Toaplan", "Out Zone (set 1)", 0 ) // later fixed version -GAME( 1990, outzonea, outzone, outzone, outzonea, toaplan1, ROT270, "Toaplan", "Out Zone (set 2)", 0 ) -GAME( 1990, outzoneb, outzone, outzone, outzoneb, toaplan1, ROT270, "Toaplan", "Out Zone (set 3, prototype?)", 0 ) // early revision at least -GAME( 1990, outzonec, outzone, outzone, outzone, toaplan1, ROT270, "Toaplan", "Out Zone (set 4)", 0 ) -GAME( 1990, outzoned, outzone, outzone, outzonea, toaplan1, ROT270, "Toaplan", "Out Zone (set 5)", 0 ) -GAME( 1991, vimana, 0, vimana, vimana, vimana, ROT270, "Toaplan", "Vimana (World, set 1)", GAME_NO_SOUND ) -GAME( 1991, vimanan, vimana, vimana, vimanan, vimana, ROT270, "Toaplan", "Vimana (World, set 2)", GAME_NO_SOUND ) -GAME( 1991, vimana1, vimana, vimana, vimana1, vimana, ROT270, "Toaplan", "Vimana (Japan)", GAME_NO_SOUND ) + +GAME( 1988, rallybik, 0, rallybik, rallybik, toaplan1, ROT270, "Toaplan / Taito Corporation", "Rally Bike / Dash Yarou", 0 ) +GAME( 1988, truxton, 0, truxton, truxton, toaplan1, ROT270, "Toaplan / Taito Corporation", "Truxton / Tatsujin", 0 ) +GAME( 1989, hellfire, 0, hellfire, hellfire, toaplan1, ROT0, "Toaplan (Taito license)", "Hellfire (2P set)", 0 ) // 2P = simultaneous players +GAME( 1989, hellfire1, hellfire, hellfire, hellfire1, toaplan1, ROT0, "Toaplan (Taito license)", "Hellfire (1P set)", 0 ) // 1P = alternating players +GAME( 1989, hellfire2, hellfire, hellfire, hellfire, toaplan1, ROT0, "Toaplan (Taito license)", "Hellfire (2P set, first edition)", 0 ) +GAME( 1989, hellfire3, hellfire, hellfire, hellfire, toaplan1, ROT0, "Toaplan (Taito license)", "Hellfire (1P set, alt)", 0 ) +GAME( 1989, zerowing, 0, zerowing, zerowing, toaplan1, ROT0, "Toaplan", "Zero Wing (1P set)", 0 ) +GAME( 1989, zerowing2, zerowing, zerowing, zerowing2, toaplan1, ROT0, "Toaplan", "Zero Wing (2P set)", 0 ) +GAME( 1990, demonwld, 0, demonwld, demonwld, demonwld, ROT0, "Toaplan", "Demon's World / Horror Story (set 1)", 0 ) +GAME( 1989, demonwld1, demonwld, demonwld, demonwld1, demonwld, ROT0, "Toaplan", "Demon's World / Horror Story (set 2)", 0 ) +GAME( 1989, demonwld2, demonwld, demonwld, demonwld1, demonwld, ROT0, "Toaplan", "Demon's World / Horror Story (set 3)", 0 ) +GAME( 1989, demonwld3, demonwld, demonwld, demonwld1, demonwld, ROT0, "Toaplan", "Demon's World / Horror Story (set 4)", 0 ) +GAME( 1990, fireshrk, 0, samesame, fireshrk, toaplan1, ROT270, "Toaplan", "Fire Shark", GAME_NO_SOUND ) +GAME( 1990, fireshrkd, fireshrk, samesame, samesame2, toaplan1, ROT270, "Toaplan (Dooyong license)", "Fire Shark (Korea, set 1, easier)", GAME_NO_SOUND ) +GAME( 1990, fireshrkdh, fireshrk, samesame, samesame2, toaplan1, ROT270, "Toaplan (Dooyong license)", "Fire Shark (Korea, set 2, harder)", GAME_NO_SOUND ) +GAME( 1989, samesame, fireshrk, samesame, samesame, toaplan1, ROT270, "Toaplan", "Same! Same! Same! (1P set)", GAME_NO_SOUND ) +GAME( 1989, samesame2, fireshrk, samesame, samesame2, toaplan1, ROT270, "Toaplan", "Same! Same! Same! (2P set)", GAME_NO_SOUND ) +GAME( 1990, outzone, 0, outzone, outzone, toaplan1, ROT270, "Toaplan", "Out Zone (set 1)", 0 ) // later fixed version +GAME( 1990, outzonea, outzone, outzone, outzone, toaplan1, ROT270, "Toaplan", "Out Zone (set 2)", 0 ) +GAME( 1990, outzoneb, outzone, outzone, outzoneb, toaplan1, ROT270, "Toaplan", "Out Zone (set 3, prototype?)", 0 ) // early revision at least +GAME( 1990, outzonec, outzone, outzone, outzonec, toaplan1, ROT270, "Toaplan", "Out Zone (set 4)", 0 ) +GAME( 1990, outzoned, outzone, outzone, outzonec, toaplan1, ROT270, "Toaplan", "Out Zone (set 5)", 0 ) +GAME( 1991, vimana, 0, vimana, vimana, vimana, ROT270, "Toaplan", "Vimana (World, set 1)", GAME_NO_SOUND ) +GAME( 1991, vimanan, vimana, vimana, vimanan, vimana, ROT270, "Toaplan", "Vimana (World, set 2)", GAME_NO_SOUND ) +GAME( 1991, vimana1, vimana, vimana, vimana1, vimana, ROT270, "Toaplan", "Vimana (Japan)", GAME_NO_SOUND ) diff --git a/src/mame/drivers/twincobr.c b/src/mame/drivers/twincobr.c index aec32255272..2b544b3bc32 100644 --- a/src/mame/drivers/twincobr.c +++ b/src/mame/drivers/twincobr.c @@ -54,25 +54,23 @@ Stephh's notes (based on the games M68000 and Z80 code and some tests) : - There is no real "test mode" : only a grid with colors ("Cross Hatch Pattern") is displayed. There is a specific "Show Dip Switches Settings". - - Test switch on JAMMA connector works to enter "Cross Hatch Pattern". - - "Service 1" uses COIN A coinage 1a) 'twincobr' - No notice screen. - - Game uses TOAPLAN_COINAGE_EUROPE (code at 0x0bfd in CPU1). + - Game uses TOAPLAN_COINAGE_WORLD (code at 0x0bfd in CPU1). - Press any players buttons on startup to skip some tests (code at 0x025ed8). 1b) 'twincobru' - "FOR USE IN U.S.A. ONLY" notice screen. - - Game uses TOAPLAN_COINAGE_JAPAN (code at 0x0bfd in CPU1). + - Game uses TOAPLAN_COINAGE_JAPAN_OLD (code at 0x0bfd in CPU1). - Press any players buttons on startup to skip some tests (code at 0x025ed6). 1c) 'ktiger' - "FOR USE IN JAPAN ONLY" notice screen. - - Game uses TOAPLAN_COINAGE_JAPAN (code at 0x0bfd in CPU1 - same as in 'twincobru'). + - Game uses TOAPLAN_COINAGE_JAPAN_OLD (code at 0x0bfd in CPU1 - same as in 'twincobru'). - Press any players buttons on startup to skip some tests (code at 0x0259d0). - "Bonus Lives" settings are different than the ones in the other sets. - See other differences with 'twincobr' and 'twincobru' above. @@ -80,8 +78,8 @@ Stephh's notes (based on the games M68000 and Z80 code and some tests) : 1d) 'gulfwar2' - No notice screen. - - Game uses TOAPLAN_COINAGE_JAPAN (code at 0x0bfd in CPU1 - same as in 'twincobru'). - Surprisingly, when Dip Switches are displayed, it shows TOAPLAN_COINAGE_EUROPE. + - Game uses TOAPLAN_COINAGE_JAPAN_OLD (code at 0x0bfd in CPU1 - same as in 'twincobru'). + Surprisingly, when Dip Switches are displayed, it shows TOAPLAN_COINAGE_WORLD. - Press any players buttons on startup to skip some tests (code at 0x025ed8). - VBLANK bit is inverted (ACTIVE_LOW instead of ACTIVE_HIGH). @@ -90,13 +88,11 @@ Stephh's notes (based on the games M68000 and Z80 code and some tests) : - There is no real "test mode" : only a grid with colors ("Cross Hatch Pattern") is displayed. There is a specific "Show Dip Switches Settings". - - Test switch on JAMMA connector doesn't work to enter "test mode", but works to reset CPU. - - "Service 1" uses COIN A coinage 2a) 'fshark' - No notice screen. - - Game uses TOAPLAN_COINAGE_EUROPE. + - Game uses TOAPLAN_COINAGE_WORLD. - When cabinet set to "Upright", you can use joystick and buttons from both players (code at 0x002434). @@ -110,7 +106,7 @@ Stephh's notes (based on the games M68000 and Z80 code and some tests) : 2c) 'hishouza' - "FOR USE IN JAPAN ONLY" notice screen. - - Game uses TOAPLAN_COINAGE_JAPAN. + - Game uses TOAPLAN_COINAGE_JAPAN_OLD. - When cabinet set to "Upright", you can use joystick and buttons from both players (code at 0x002456). @@ -137,11 +133,13 @@ read: 78005 Player 1 Joystick and Buttons input port 78007 Player 2 Joystick and Buttons input port 78009 bit 7 vblank, coin and control/service inputs (Flying shark) + Flying Shark implements Tilt as 'freeze system' and also has + a reset button, but its not implelemted here (not needed) 7e000-7e005 read data from video RAM (see below) write: -60000-60003 CRTC HD6845 or UM6845B. 0 = register offset, 2 = register data +60000-60003 CRTC HD6845 or UM6845B. 0 = register offset , 2 = register data 70000-70001 scroll y for character page (centre normally 0x01c9) 70002-70003 scroll < x > for character page (centre normally 0x00e2) 70004-70005 offset in character page to write character (7e000) @@ -269,16 +267,6 @@ Shark Zame #include "sound/3812intf.h" -/***************************** debugging flags ******************************/ - -#define DEBUG_FREE_ALL_DIPSW FALSE -#define DEBUG_DONT_HIDE_DUP_DIPSETTING TRUE - /* Set TRUE and you may find unknown easter eggs */ - - -/**************************** customizing flags *****************************/ - - /* nothing */ /***************************** 68000 Memory Map *****************************/ @@ -358,140 +346,74 @@ ADDRESS_MAP_END Input Port definitions *****************************************************************************/ -static INPUT_PORTS_START( fshark_generic ) - PORT_START("DSWA") /* in 0x078001(M68000) */ /* DIP SW 1 */ - TOAPLAN_DIP_1_SPARE(SW1) - TOAPLAN_DIP_2_SPARE(SW1) - TOAPLAN_DIP_3_SPARE(SW1) - TOAPLAN_DIP_4_SPARE(SW1) - TOAPLAN_DIP_5_SPARE(SW1) - TOAPLAN_DIP_6_SPARE(SW1) - TOAPLAN_DIP_7_SPARE(SW1) - TOAPLAN_DIP_8_SPARE(SW1) - - PORT_START("DSWB") /* in 0x078003(M68000) */ /* DIP SW 2 */ - TOAPLAN_DIP_1_SPARE(SW2) - TOAPLAN_DIP_2_SPARE(SW2) - TOAPLAN_DIP_3_SPARE(SW2) - TOAPLAN_DIP_4_SPARE(SW2) - TOAPLAN_DIP_5_SPARE(SW2) - TOAPLAN_DIP_6_SPARE(SW2) - TOAPLAN_DIP_7_SPARE(SW2) - TOAPLAN_DIP_8_SPARE(SW2) - - PORT_START("P1") /* in 0x078005(M68000) */ /* Player 1 controls */ - TOAPLAN_JOY_UDLR_2_BUTTONS(1) - - PORT_START("P2") /* in 0x078007(M68000) */ /* Player 2 controls */ - TOAPLAN_JOY_UDLR_2_BUTTONS(2) - - PORT_START("SYSTEM") - /* Port name kept to fit other games in the driver - it doesn't even exist */ - PORT_BIT(0xff, TOAPLAN_IP_ACTIVE_LEVEL, IPT_UNUSED) - - PORT_START("VBLANK") /* in 0x078009(M68000) */ /* VBlank and coin-in/start inputs */ - /* Port name kept to fit other games in the driver - it shall be "SYSTEM" */ - TOAPLAN_SYSTEM_INPUT_WITH_VBLANK - PORT_MODIFY("VBLANK") - TOAPLAN_TEST_SWITCH_RENAME("Test (Reset CPU)") - /* When some users see "reset", they may think that is a bug of MAME. - To avoid the doubt, describe the function "Reset CPU" */ -INPUT_PORTS_END - -static INPUT_PORTS_START( twincobr_generic ) - PORT_START("DSWA") /* in 0x40(Z80) */ /* DIP SW 1 */ - TOAPLAN_DIP_1_SPARE(SW1) - TOAPLAN_DIP_2_SPARE(SW1) - TOAPLAN_DIP_3_SPARE(SW1) - TOAPLAN_DIP_4_SPARE(SW1) - TOAPLAN_DIP_5_SPARE(SW1) - TOAPLAN_DIP_6_SPARE(SW1) - TOAPLAN_DIP_7_SPARE(SW1) - TOAPLAN_DIP_8_SPARE(SW1) - - PORT_START("DSWB") /* in 0x50(Z80) */ /* DIP SW 2 */ - TOAPLAN_DIP_1_SPARE(SW2) - TOAPLAN_DIP_2_SPARE(SW2) - TOAPLAN_DIP_3_SPARE(SW2) - TOAPLAN_DIP_4_SPARE(SW2) - TOAPLAN_DIP_5_SPARE(SW2) - TOAPLAN_DIP_6_SPARE(SW2) - TOAPLAN_DIP_7_SPARE(SW2) - TOAPLAN_DIP_8_SPARE(SW2) - - PORT_START("P1") /* in 0x078005(M68000) */ /* Player 1 controls */ - TOAPLAN_JOY_UDLR_2_BUTTONS(1) - - PORT_START("P2") /* in 0x078007(M68000) */ /* Player 2 controls */ - TOAPLAN_JOY_UDLR_2_BUTTONS(2) - - PORT_START("SYSTEM") /* in 0x10(Z80) */ /* coin-in/start inputs */ - TOAPLAN_SYSTEM_INPUT_WITHOUT_VBLANK - - PORT_START("VBLANK") /* in 0x078009(M68000) */ /* VBlank */ - TOAPLAN_VBLANK_INPUT_8BITS -INPUT_PORTS_END - - - - /* verified from M68000 and Z80 code */ static INPUT_PORTS_START( twincobr ) - PORT_INCLUDE( twincobr_generic ) + PORT_START("DSWA") + TOAPLAN_MACHINE_NO_COCKTAIL + TOAPLAN_COINAGE_WORLD /* tables at 0x0c30 (COIN1) and 0x0c38 (COIN2) in CPU1 */ - #if ! DEBUG_FREE_ALL_DIPSW - PORT_MODIFY("DSWA") - //DIP_A1_SPARE (divert from 'twincobr_generic') - TOAPLAN_DIP_A2_FLIP_SCREEN(SW1) - TOAPLAN_DIP_A3_SERVICE_MODE(SW1) - TOAPLAN_DIP_A4_DEMO_SOUNDS(SW1) - TOAPLAN_DIP_A5678_COINAGE_EUROPE(SW1) /* tables at 0x0c30 (COIN1) and 0x0c38 (COIN2) in CPU1 */ + PORT_START("DSWB") + TOAPLAN_DIFFICULTY + PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) ) /* table at 0x020988 ('twincobr' and 'twincobru') */ + PORT_DIPSETTING( 0x00, "50k 200k 150k+" ) + PORT_DIPSETTING( 0x04, "70k 270k 200k+" ) + PORT_DIPSETTING( 0x08, "50k Only" ) + PORT_DIPSETTING( 0x0c, "100k Only" ) + PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) ) + PORT_DIPSETTING( 0x30, "2" ) + PORT_DIPSETTING( 0x00, "3" ) + PORT_DIPSETTING( 0x20, "4" ) + PORT_DIPSETTING( 0x10, "5" ) + PORT_DIPNAME( 0x40, 0x00, "Show Dip Switches Settings" ) + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x40, DEF_STR( Yes ) ) + PORT_DIPUNUSED( 0x80, IP_ACTIVE_HIGH ) - PORT_MODIFY("DSWB") - TOAPLAN_DIP_B12_DIFFICULTY(SW2) - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:!3,!4") /* table at 0x020988 ('twincobr' and 'twincobru') */ - PORT_DIPSETTING( 0x00, "50k 200k 150k+" ) - PORT_DIPSETTING( 0x04, "70k 270k 200k+" ) - PORT_DIPSETTING( 0x08, "50k Only" ) - PORT_DIPSETTING( 0x0c, "100k Only" ) - PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:!5,!6") - PORT_DIPSETTING( 0x30, "2" ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x20, "4" ) - PORT_DIPSETTING( 0x10, "5" ) - TOAPLAN_DIP_B7_SHOW_DIPSW_SETTINGS(SW2) - //DIP_B8_SPARE (divert from 'twincobr_generic') - #endif + PORT_START("P1") + TOAPLAN_JOY_UDLR_2_BUTTONS( 1 ) + + PORT_START("P2") + TOAPLAN_JOY_UDLR_2_BUTTONS( 2 ) + + PORT_START("SYSTEM") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) /* uses COIN1 coinage */ + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_TILT ) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) /* same effect as the DSWA bit 2 */ + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN1 ) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN2 ) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START1 ) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START2 ) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) + + PORT_START("VBLANK") + PORT_BIT( 0x7f, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK ) INPUT_PORTS_END /* verified from M68000 and Z80 code */ static INPUT_PORTS_START( twincobru ) PORT_INCLUDE( twincobr ) - #if ! DEBUG_FREE_ALL_DIPSW - PORT_MODIFY("DSWA") - TOAPLAN_DIP_A5678_COINAGE_JAPAN(SW1) /* table at 0x0c20 (COIN1 AND COIN2) in CPU1 */ - #endif + PORT_MODIFY("DSWA") + TOAPLAN_COINAGE_JAPAN_OLD /* table at 0x0c20 (COIN1 AND COIN2) in CPU1 */ INPUT_PORTS_END /* verified from M68000 and Z80 code */ static INPUT_PORTS_START( ktiger ) PORT_INCLUDE( twincobru ) - #if ! DEBUG_FREE_ALL_DIPSW - PORT_MODIFY("DSWA") - TOAPLAN_DIP_A1_CABINET(SW1) + PORT_MODIFY("DSWA") + TOAPLAN_MACHINE_COCKTAIL - PORT_MODIFY("DSWB") - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:!3,!4") /* table at 0x0208d0 */ - PORT_DIPSETTING( 0x04, "50k 200k 150k+" ) - PORT_DIPSETTING( 0x00, "70k 270k 200k+" ) - PORT_DIPSETTING( 0x08, "100k Only" ) - PORT_DIPSETTING( 0x0c, DEF_STR( None ) ) - TWINCOBR_DIP_B8_ALLOW_CONTINUE_OFF_NO(SW2) /* additional code at 0x020b3c */ - /* Many TOAPLAN "Allow Continue" = OFF YES - but TWINCOBR = ON YES */ - #endif + PORT_MODIFY("DSWB") + PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) ) /* table at 0x0208d0 */ + PORT_DIPSETTING( 0x04, "50k 200k 150k+" ) + PORT_DIPSETTING( 0x00, "70k 270k 200k+" ) + PORT_DIPSETTING( 0x08, "100k Only" ) + PORT_DIPSETTING( 0x0c, DEF_STR( None ) ) + PORT_DIPNAME( 0x80, 0x80, DEF_STR( Allow_Continue ) ) /* additional code at 0x020b3c */ + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x80, DEF_STR( Yes ) ) INPUT_PORTS_END /* verified from M68000 and Z80 code */ @@ -499,87 +421,79 @@ static INPUT_PORTS_START( gulfwar2 ) PORT_INCLUDE( twincobru ) PORT_MODIFY("VBLANK") - PORT_BIT( 0x7f, TOAPLAN_IP_INVERTED_ACTIVE_LEVEL, IPT_UNKNOWN ) - PORT_BIT( 0x80, TOAPLAN_IP_INVERTED_ACTIVE_LEVEL, IPT_VBLANK ) + PORT_BIT( 0x7f, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_VBLANK ) INPUT_PORTS_END /* verified from M68000 code */ static INPUT_PORTS_START( fshark ) - PORT_INCLUDE( fshark_generic ) + PORT_START("DSWA") + TOAPLAN_MACHINE_COCKTAIL + TOAPLAN_COINAGE_WORLD /* tables at 0x00031c (COIN1) and 0x00032c (COIN2) */ - #if ! DEBUG_FREE_ALL_DIPSW - PORT_MODIFY("DSWA") - TOAPLAN_DIP_A1_CABINET(SW1) - TOAPLAN_DIP_A2_FLIP_SCREEN(SW1) - TOAPLAN_DIP_A3_SERVICE_MODE(SW1) - TOAPLAN_DIP_A4_DEMO_SOUNDS(SW1) - TOAPLAN_DIP_A5678_COINAGE_EUROPE(SW1) /* tables at 0x00031c (COIN1) and 0x00032c (COIN2) */ + PORT_START("DSWB") + TOAPLAN_DIFFICULTY + PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) ) /* table at 0x000b96 (fshark), 0x000b80 (skyshark) or 0x000b7e (hishouza) */ + PORT_DIPSETTING( 0x00, "50k 200k 150k+" ) + PORT_DIPSETTING( 0x04, "70k 270k 200k+" ) + PORT_DIPSETTING( 0x08, "50k Only" ) + PORT_DIPSETTING( 0x0c, "100k Only" ) + PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) ) + PORT_DIPSETTING( 0x20, "1" ) + PORT_DIPSETTING( 0x30, "2" ) + PORT_DIPSETTING( 0x00, "3" ) + PORT_DIPSETTING( 0x10, "5" ) + PORT_DIPNAME( 0x40, 0x00, "Show Dip Switches Settings" ) + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x40, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x80, 0x80, DEF_STR( Allow_Continue ) ) + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x80, DEF_STR( Yes ) ) - PORT_MODIFY("DSWB") - TOAPLAN_DIP_B12_DIFFICULTY(SW2) - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:!3,!4") /* table at 0x000b96 (fshark), 0x000b80 (skyshark) or 0x000b7e (hishouza) */ - PORT_DIPSETTING( 0x00, "50k 200k 150k+" ) - PORT_DIPSETTING( 0x04, "70k 270k 200k+" ) - PORT_DIPSETTING( 0x08, "50k Only" ) - PORT_DIPSETTING( 0x0c, "100k Only" ) - PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:!5,!6") - PORT_DIPSETTING( 0x20, "1" ) - PORT_DIPSETTING( 0x30, "2" ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x10, "5" ) - TOAPLAN_DIP_B7_SHOW_DIPSW_SETTINGS(SW2) - TWINCOBR_DIP_B8_ALLOW_CONTINUE_OFF_NO(SW2) - /* Many TOAPLAN "Allow Continue" = OFF YES - but FSHARK = ON YES */ - #endif + PORT_START("P1") + TOAPLAN_JOY_UDLR_2_BUTTONS( 1 ) + + PORT_START("P2") + TOAPLAN_JOY_UDLR_2_BUTTONS( 2 ) + + PORT_START("SYSTEM") /* Port name kept to fit other games in the driver - it doesn't even exist */ + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) + + PORT_START("VBLANK") /* Port name kept to fit other games in the driver - it shall be "SYSTEM" */ + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) /* uses COIN1 coinage */ + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_TILT ) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) /* reset button */ + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN1 ) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN2 ) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START1 ) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START2 ) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK ) INPUT_PORTS_END /* verified from M68000 code */ static INPUT_PORTS_START( skyshark ) PORT_INCLUDE( fshark ) - #if ! DEBUG_FREE_ALL_DIPSW - PORT_MODIFY("DSWA") - #if ! DEBUG_DONT_HIDE_DUP_DIPSETTING - PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:!5,!6") /* table at 0x000316 */ - PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) ) - //PORT_DIPSETTING( 0x30, DEF_STR( 1C_2C ) ) /* duplicated setting */ - PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:!7,!8") /* table at 0x000316 */ - PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 1C_2C ) ) - //PORT_DIPSETTING( 0xc0, DEF_STR( 1C_2C ) ) /* duplicated setting */ - #else - /* Current(0.143) MAME doesn't allow duplicated settins about coinage - (see function "validate_dip_settings()" in file "src\emu\validity.c") - We can not write "PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )" - But we can write "PORT_DIPSETTING( 0x00, " 1 Coin/1 Credit" )" */ - PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:!5,!6") /* table at 0x000316 */ - PORT_DIPSETTING( 0x10, " 2 Coins/1 Credit" ) - PORT_DIPSETTING( 0x00, " 1 Coin/1 Credit" ) - PORT_DIPSETTING( 0x20, " 1 Coin/2 Credits" ) - PORT_DIPSETTING( 0x30, " 1 Coin/2 Credits" ) /* duplicated setting */ - PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:!7,!8") /* table at 0x000316 */ - PORT_DIPSETTING( 0x40, " 2 Coins/1 Credit" ) - PORT_DIPSETTING( 0x00, " 1 Coin/1 Credit" ) - PORT_DIPSETTING( 0x80, " 1 Coin/2 Credits" ) - PORT_DIPSETTING( 0xc0, " 1 Coin/2 Credits" ) /* duplicated setting */ - /* ^ Don't delete these spaces (to pass function "get_defstr_index()") */ - #endif - #endif + PORT_MODIFY("DSWA") + PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coin_A ) ) /* table at 0x000316 */ + PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) + PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) + PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) ) +// PORT_DIPSETTING( 0x30, DEF_STR( 1C_2C ) ) /* duplicated setting */ + PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_B ) ) /* table at 0x000316 */ + PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) + PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) + PORT_DIPSETTING( 0x80, DEF_STR( 1C_2C ) ) +// PORT_DIPSETTING( 0xc0, DEF_STR( 1C_2C ) ) /* duplicated setting */ INPUT_PORTS_END /* verified from M68000 code */ static INPUT_PORTS_START( hishouza ) PORT_INCLUDE( fshark ) - #if ! DEBUG_FREE_ALL_DIPSW - PORT_MODIFY("DSWA") - TOAPLAN_DIP_A5678_COINAGE_JAPAN(SW1) /* table at 0x000316 (COIN1 AND COIN2) */ - #endif + PORT_MODIFY("DSWA") + TOAPLAN_COINAGE_JAPAN_OLD /* table at 0x000316 (COIN1 AND COIN2) */ INPUT_PORTS_END @@ -1101,7 +1015,6 @@ static DRIVER_INIT( twincobr ) } -// YEAR, NAME, PARENT, MACHINE, INPUT, INIT, MONITOR,COMPANY,FULLNAME,FLAGS GAME( 1987, fshark, 0, twincobr, fshark, twincobr, ROT270, "Toaplan / Taito Corporation", "Flying Shark (World)", 0 ) GAME( 1987, skyshark, fshark, twincobr, skyshark, twincobr, ROT270, "Toaplan / Taito America Corporation (Romstar license)", "Sky Shark (US)", 0 ) GAME( 1987, hishouza, fshark, twincobr, hishouza, twincobr, ROT270, "Toaplan / Taito Corporation", "Hishou Zame (Japan)", 0 ) diff --git a/src/mame/drivers/wardner.c b/src/mame/drivers/wardner.c index eb1a5525e41..e5140ad1334 100644 --- a/src/mame/drivers/wardner.c +++ b/src/mame/drivers/wardner.c @@ -11,7 +11,7 @@ Supported games: Taito Game Number: B25 Wardners Forest (World) Pyros (USA) - Wardner no Mori (Japan) + Wardna no Mori (Japan) Notes: Basically the same video and machine hardware as Flying shark, @@ -19,7 +19,7 @@ Notes: See twincobr.c machine and video drivers to complete the hardware setup. To enter the "test mode", press START1 when the grid is displayed. - Press unused P1 button 3 on startup to skip some video RAM tests + Press F1 (initially P1 button 3) on startup to skip some video RAM tests (code at 0x6d25 in 'wardner', 0x6d2f in 'wardnerj' or 0x6d2c in 'pyros'). **************************** Memory & I/O Maps ***************************** @@ -132,26 +132,6 @@ out: #include "includes/twincobr.h" -/***************************** debugging flags ******************************/ - -#define DEBUG_FREE_ALL_DIPSW FALSE - /* Set TRUE and you may find unknown easter eggs */ - - -/**************************** customizing flags *****************************/ - -#define WARDNER_P1_BUTTON_3_DESCRIBE_LEVEL FALSE - /* Wardner's "P1 Button 3" has an easter egg. */ - /* If you want to rename it, set 1 or 2. - 0 = "Spare (P1 Button 3)" - 1 = "Spare (P1 Button 3) (Skip Video RAM Tests)" - 2 = "(Skip Video RAM Tests)" */ -#define WARDNER_P1_BUTTON_3_MOVE_TO_F1 FALSE - /* If you want to move it to "F1", set TRUE. */ - - -/****************************************************************************/ - class wardner_state : public twincobr_state { public: @@ -293,110 +273,78 @@ ADDRESS_MAP_END *****************************************************************************/ +/* verified from Z80 code */ static INPUT_PORTS_START( wardner_generic ) - PORT_START("DSWA") /* in 0x50 */ /* DIP SW A */ - TOAPLAN_DIP_1_SPARE(SWA) - TOAPLAN_DIP_2_SPARE(SWA) - TOAPLAN_DIP_3_SPARE(SWA) - TOAPLAN_DIP_4_SPARE(SWA) - TOAPLAN_DIP_5_SPARE(SWA) - TOAPLAN_DIP_6_SPARE(SWA) - TOAPLAN_DIP_7_SPARE(SWA) - TOAPLAN_DIP_8_SPARE(SWA) + PORT_START("DSWA") + TOAPLAN_MACHINE_COCKTAIL + TOAPLAN_COINAGE_WORLD - PORT_START("DSWB") /* in 0x52 */ /* DIP SW B */ - TOAPLAN_DIP_1_SPARE(SWB) - TOAPLAN_DIP_2_SPARE(SWB) - TOAPLAN_DIP_3_SPARE(SWB) - TOAPLAN_DIP_4_SPARE(SWB) - TOAPLAN_DIP_5_SPARE(SWB) - TOAPLAN_DIP_6_SPARE(SWB) - TOAPLAN_DIP_7_SPARE(SWB) - TOAPLAN_DIP_8_SPARE(SWB) + PORT_START("DSWB") + TOAPLAN_DIFFICULTY + PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) ) /* table at 0x13ce ('wardner') or 0x13de ('wardnerj') */ + PORT_DIPSETTING( 0x00, "30k 80k 50k+" ) + PORT_DIPSETTING( 0x04, "50k 100k 50k+" ) + PORT_DIPSETTING( 0x08, "30k Only" ) + PORT_DIPSETTING( 0x0c, "50k Only" ) + PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) ) + PORT_DIPSETTING( 0x30, "1" ) + PORT_DIPSETTING( 0x00, "3" ) + PORT_DIPSETTING( 0x10, "4" ) + PORT_DIPSETTING( 0x20, "5" ) + PORT_DIPUNUSED( 0x40, IP_ACTIVE_HIGH ) + PORT_DIPUNUSED( 0x80, IP_ACTIVE_HIGH ) - PORT_START("P1") /* in 0x54 */ /* Player 1 controls */ - TOAPLAN_JOY_UDLR_2_BUTTONS(1) + PORT_START("P1") + TOAPLAN_JOY_UDLR_2_BUTTONS( 1 ) /* buttons 3 & 4 named "SHOTC" and "SHOTD" in "test mode" */ - PORT_START("P2") /* in 0x56 */ /* Player 2 controls */ - TOAPLAN_JOY_UDLR_2_BUTTONS(2) + PORT_START("P2") + TOAPLAN_JOY_UDLR_2_BUTTONS( 2 ) /* buttons 3 & 4 named "SHOTC" and "SHOTD" in "test mode" */ - PORT_START("SYSTEM") /* in 0x58 */ /* VBlank and coin-in/start inputs */ - TOAPLAN_SYSTEM_INPUT_WITH_VBLANK + PORT_START("SYSTEM") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_TILT ) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) /* "TEST" in "test mode" - no effect outside */ + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN1 ) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN2 ) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START1 ) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START2 ) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK ) /* "V-BLANKING" in "test mode" */ INPUT_PORTS_END - /* verified from Z80 code */ static INPUT_PORTS_START( wardner ) PORT_INCLUDE( wardner_generic ) - #if ! DEBUG_FREE_ALL_DIPSW - PORT_MODIFY("DSWA") - TOAPLAN_DIP_A1_CABINET(SWA) - TOAPLAN_DIP_A2_FLIP_SCREEN(SWA) - TOAPLAN_DIP_A3_SERVICE_MODE(SWA) - TOAPLAN_DIP_A4_DEMO_SOUNDS(SWA) - TOAPLAN_DIP_A5678_COINAGE_EUROPE(SWA) - - PORT_MODIFY("DSWB") - TOAPLAN_DIP_B12_DIFFICULTY(SWB) - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SWB:!3,!4") /* table at 0x13ce ('wardner') or 0x13de ('wardnerj') */ - PORT_DIPSETTING( 0x00, "30k 80k 50k+" ) - PORT_DIPSETTING( 0x04, "50k 100k 50k+" ) - PORT_DIPSETTING( 0x08, "30k Only" ) - PORT_DIPSETTING( 0x0c, "50k Only" ) - PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("SWB:!5,!6") - PORT_DIPSETTING( 0x30, "1" ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x10, "4" ) - PORT_DIPSETTING( 0x20, "5" ) - //DIP_B78_SPARE - #endif - PORT_MODIFY("P1") - #if WARDNER_P1_BUTTON_3_DESCRIBE_LEVEL == 1 - PORT_BIT(0x40, TOAPLAN_IP_ACTIVE_LEVEL, IPT_BUTTON3) PORT_PLAYER(1) PORT_NAME("Spare (P1 Button 3) (Skip Video RAM Tests)") /* JAMMA "P1 button 3" */ - #elif WARDNER_P1_BUTTON_3_DESCRIBE_LEVEL == 2 - PORT_BIT(0x40, TOAPLAN_IP_ACTIVE_LEVEL, IPT_BUTTON3) PORT_PLAYER(1) PORT_NAME("(Skip Video RAM Tests)") - #endif - #if WARDNER_P1_BUTTON_3_MOVE_TO_F1 - PORT_CODE(KEYCODE_F1) - #endif + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Skip Video RAM Tests") PORT_CODE(KEYCODE_F1) /* code at 0x6d25 ('wardner'), 0x6d2f ('wardnerj') or 0x6d2c ('pyros') */ - - PORT_MODIFY("SYSTEM") - TOAPLAN_TEST_SWITCH_SPARE INPUT_PORTS_END /* verified from Z80 code */ static INPUT_PORTS_START( wardnerj ) PORT_INCLUDE( wardner ) - #if ! DEBUG_FREE_ALL_DIPSW - PORT_MODIFY("DSWA") - TOAPLAN_DIP_A5678_COINAGE_JAPAN(SWA) - #endif + PORT_MODIFY("DSWA") + TOAPLAN_COINAGE_JAPAN_OLD INPUT_PORTS_END /* verified from Z80 code */ static INPUT_PORTS_START( pyros ) PORT_INCLUDE( wardnerj ) - #if ! DEBUG_FREE_ALL_DIPSW - PORT_MODIFY("DSWB") - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SWB:!3,!4") /* table at 0x13ce */ - PORT_DIPSETTING( 0x00, "30k 80k 50k+" ) - PORT_DIPSETTING( 0x04, "50k 100k 50k+" ) - PORT_DIPSETTING( 0x08, "50k Only" ) - PORT_DIPSETTING( 0x0c, "100k Only" ) - WARDNER_DIP_B7_ALLOW_CONTINUE_OFF_YES(SWB) /* additional code at 0x6037 */ - /* Many TOAPLAN "Allow Continue" = B:8 - but WARDNER = B:7 */ - #endif + PORT_MODIFY("DSWB") + PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) ) /* table at 0x13ce */ + PORT_DIPSETTING( 0x00, "30k 80k 50k+" ) + PORT_DIPSETTING( 0x04, "50k 100k 50k+" ) + PORT_DIPSETTING( 0x08, "50k Only" ) + PORT_DIPSETTING( 0x0c, "100k Only" ) + PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) /* additional code at 0x6037 */ + PORT_DIPSETTING( 0x40, DEF_STR( No ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) INPUT_PORTS_END - static const gfx_layout charlayout = { 8,8, /* 8*8 characters */ @@ -670,7 +618,6 @@ static DRIVER_INIT( wardner ) -// YEAR, NAME, PARENT, MACHINE, INPUT, INIT, MONITOR,COMPANY,FULLNAME,FLAGS -GAME( 1987, wardner, 0, wardner, wardner, wardner, ROT0, "Toaplan / Taito Corporation Japan", "Wardner (World)", GAME_SUPPORTS_SAVE ) -GAME( 1987, pyros, wardner, wardner, pyros, wardner, ROT0, "Toaplan / Taito America Corporation", "Pyros (US)", GAME_SUPPORTS_SAVE ) -GAME( 1987, wardnerj, wardner, wardner, wardnerj, wardner, ROT0, "Toaplan / Taito Corporation", "Wardner no Mori (Japan)", GAME_SUPPORTS_SAVE ) +GAME( 1987, wardner, 0, wardner, wardner, wardner, ROT0, "Toaplan / Taito Corporation Japan", "Wardner (World)", GAME_SUPPORTS_SAVE ) +GAME( 1987, pyros, wardner, wardner, pyros, wardner, ROT0, "Toaplan / Taito America Corporation", "Pyros (US)", GAME_SUPPORTS_SAVE ) +GAME( 1987, wardnerj, wardner, wardner, wardnerj, wardner, ROT0, "Toaplan / Taito Corporation", "Wardner no Mori (Japan)", GAME_SUPPORTS_SAVE )