From 66c48036a3fdb95dcbb3d43cea0c7b5882f52d04 Mon Sep 17 00:00:00 2001 From: Aaron Giles Date: Thu, 10 Apr 2008 13:50:47 +0000 Subject: [PATCH] From: Fabio Priuli [mailto:priuli@math.ntnu.no] Subject: some dips dips.diff adds tags and locations to dips for marvins.c and matmania.c (also adding a couple of corrections in names and default settings, explained in short notes added to the drivers) --- src/mame/drivers/marvins.c | 107 ++++++++++++++++++------------------ src/mame/drivers/matmania.c | 103 +++++++++++++++++++--------------- 2 files changed, 113 insertions(+), 97 deletions(-) diff --git a/src/mame/drivers/marvins.c b/src/mame/drivers/marvins.c index e170b0f0b48..76725b022a3 100644 --- a/src/mame/drivers/marvins.c +++ b/src/mame/drivers/marvins.c @@ -20,6 +20,13 @@ AT08XX03: (great now I can fall under the skyway like I did at Chuck'n Cheese;) - fixed Vanguard2 scroll offsets - tuned music tempo and wavegen frequency + +2008.04.04: Small note regarding DipSwitches. Locations and values have been +verified with the manual for both Marvin's Maze and Mad Crasher. Vanguard II +DIPs have been checked against jammaboards diplist, no manual available ATM. +DSW2:7 in madcrash is listed as Difficulty, but it's not clear how it affects +the gameplay difficulty + */ #include "driver.h" @@ -163,12 +170,12 @@ static ADDRESS_MAP_START( marvins_cpuA_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x5fff) AM_ROM AM_RANGE(0x6000, 0x6000) AM_WRITE(marvins_palette_bank_w) AM_RANGE(0x8000, 0x8000) AM_READ(marvins_port_0_r) /* coin input, start, sound CPU status */ - AM_RANGE(0x8100, 0x8100) AM_READ(input_port_1_r) /* player #1 controls */ - AM_RANGE(0x8200, 0x8200) AM_READ(input_port_2_r) /* player #2 controls */ + AM_RANGE(0x8100, 0x8100) AM_READ_PORT("IN1") /* player #1 controls */ + AM_RANGE(0x8200, 0x8200) AM_READ_PORT("IN2") /* player #2 controls */ AM_RANGE(0x8300, 0x8300) AM_WRITE(sound_command_w) - AM_RANGE(0x8400, 0x8400) AM_READ(input_port_3_r) /* dipswitch#1 */ - AM_RANGE(0x8500, 0x8500) AM_READ(input_port_4_r) /* dipswitch#2 */ - AM_RANGE(0x8600, 0x8600) AM_RAM // video attribute + AM_RANGE(0x8400, 0x8400) AM_READ_PORT("DSW1") /* dipswitch#1 */ + AM_RANGE(0x8500, 0x8500) AM_READ_PORT("DSW2") /* dipswitch#2 */ + AM_RANGE(0x8600, 0x8600) AM_RAM /* video attribute */ AM_RANGE(0x8700, 0x8700) AM_READWRITE(snk_cpuB_nmi_trigger_r, snk_cpuA_nmi_ack_w) AM_RANGE(0xc000, 0xcfff) AM_RAM AM_BASE(&spriteram) AM_SHARE(1) AM_RANGE(0xd000, 0xdfff) AM_READWRITE(SMH_RAM, marvins_background_ram_w) AM_SHARE(2) AM_BASE(&spriteram_3) @@ -189,11 +196,11 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( madcrash_cpuA_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x8000, 0x8000) AM_READ(marvins_port_0_r) /* coin input, start, sound CPU status */ - AM_RANGE(0x8100, 0x8100) AM_READ(input_port_1_r) /* player #1 controls */ - AM_RANGE(0x8200, 0x8200) AM_READ(input_port_2_r) /* player #2 controls */ + AM_RANGE(0x8100, 0x8100) AM_READ_PORT("IN1") /* player #1 controls */ + AM_RANGE(0x8200, 0x8200) AM_READ_PORT("IN2") /* player #2 controls */ AM_RANGE(0x8300, 0x8300) AM_WRITE(sound_command_w) - AM_RANGE(0x8400, 0x8400) AM_READ(input_port_3_r) /* dipswitch#1 */ - AM_RANGE(0x8500, 0x8500) AM_READ(input_port_4_r) /* dipswitch#2 */ + AM_RANGE(0x8400, 0x8400) AM_READ_PORT("DSW1") /* dipswitch#1 */ + AM_RANGE(0x8500, 0x8500) AM_READ_PORT("DSW2") /* dipswitch#2 */ AM_RANGE(0x8600, 0x86ff) AM_RAM // video attribute AM_RANGE(0x8700, 0x8700) AM_READWRITE(snk_cpuB_nmi_trigger_r, snk_cpuA_nmi_ack_w) // AM_RANGE(0xc800, 0xc800) AM_WRITE(marvins_palette_bank_w) // palette bank switch (c8f1 for Vanguard) @@ -245,15 +252,15 @@ static INPUT_PORTS_START( marvins ) PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) + PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:1,2") PORT_DIPSETTING( 0x00, "1" ) PORT_DIPSETTING( 0x01, "2" ) PORT_DIPSETTING( 0x02, "3" ) PORT_DIPSETTING( 0x03, "5" ) - PORT_DIPNAME(0x04, 0x04, "Infinite Lives (Cheat)") + PORT_DIPNAME(0x04, 0x04, "Infinite Lives (Cheat)") PORT_DIPLOCATION("SW1:3") PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x38, 0x00, DEF_STR( Coinage ) ) + PORT_DIPNAME( 0x38, 0x00, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:4,5,6") PORT_DIPSETTING( 0x38, DEF_STR( 5C_1C ) ) PORT_DIPSETTING( 0x30, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x28, DEF_STR( 2C_1C ) ) @@ -262,15 +269,15 @@ static INPUT_PORTS_START( marvins ) PORT_DIPSETTING( 0x10, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x18, DEF_STR( 1C_5C ) ) PORT_DIPSETTING( 0x20, DEF_STR( 1C_6C ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Free_Play ) ) + PORT_DIPNAME( 0x40, 0x40, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW1:7") PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, "Freeze" ) + PORT_DIPNAME( 0x80, 0x80, "Freeze" ) PORT_DIPLOCATION("SW1:8") PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START_TAG("DSW2") - PORT_DIPNAME( 0x07, 0x00, "1st Bonus Life" ) + PORT_DIPNAME( 0x07, 0x00, "1st Bonus Life" ) PORT_DIPLOCATION("SW2:1,2,3") PORT_DIPSETTING( 0x00, "10000" ) PORT_DIPSETTING( 0x01, "20000" ) PORT_DIPSETTING( 0x02, "30000" ) @@ -279,18 +286,18 @@ static INPUT_PORTS_START( marvins ) PORT_DIPSETTING( 0x05, "60000" ) PORT_DIPSETTING( 0x06, "70000" ) PORT_DIPSETTING( 0x07, "80000" ) - PORT_DIPNAME( 0x18, 0x08, "2nd Bonus Life" ) + PORT_DIPNAME( 0x18, 0x08, "2nd Bonus Life" ) PORT_DIPLOCATION("SW2:4,5") PORT_DIPSETTING( 0x08, "1st bonus*2" ) PORT_DIPSETTING( 0x10, "1st bonus*3" ) PORT_DIPSETTING( 0x18, "1st bonus*4" ) PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Demo_Sounds ) ) + PORT_DIPNAME( 0x20, 0x20, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:6") PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Cabinet ) ) + PORT_DIPNAME( 0x40, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW2:7") PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) PORT_DIPSETTING( 0x40, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Flip_Screen ) ) + PORT_DIPNAME( 0x80, 0x80, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW2:8") PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) INPUT_PORTS_END @@ -326,7 +333,7 @@ static INPUT_PORTS_START( vangrd2 ) PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) ) + PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:1,2,3") PORT_DIPSETTING( 0x00, DEF_STR( 6C_1C ) ) PORT_DIPSETTING( 0x01, DEF_STR( 5C_1C ) ) PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) ) @@ -335,7 +342,7 @@ static INPUT_PORTS_START( vangrd2 ) PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x04, DEF_STR( 1C_5C ) ) - PORT_DIPNAME( 0x38, 0x38, DEF_STR( Bonus_Life ) ) + PORT_DIPNAME( 0x38, 0x38, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:4,5,6") PORT_DIPSETTING( 0x38, "30000" ) PORT_DIPSETTING( 0x30, "40000" ) PORT_DIPSETTING( 0x28, "50000" ) @@ -344,35 +351,35 @@ static INPUT_PORTS_START( vangrd2 ) PORT_DIPSETTING( 0x10, "80000" ) PORT_DIPSETTING( 0x08, "90000" ) PORT_DIPSETTING( 0x00, "100000" ) - PORT_DIPNAME( 0xc0, 0x80, DEF_STR( Lives ) ) + PORT_DIPNAME( 0xc0, 0x80, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:7,8") PORT_DIPSETTING( 0x00, "1" ) PORT_DIPSETTING( 0x40, "2" ) PORT_DIPSETTING( 0x80, "3" ) PORT_DIPSETTING( 0xc0, "5" ) PORT_START_TAG("DSW2") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) ) + PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:1") PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, "Freeze" ) + PORT_DIPNAME( 0x02, 0x02, "Freeze" ) PORT_DIPLOCATION("SW2:2") PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Cabinet ) ) + PORT_DIPNAME( 0x04, 0x04, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW2:3") PORT_DIPSETTING( 0x04, DEF_STR( Upright ) ) PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Language ) ) + PORT_DIPNAME( 0x08, 0x08, DEF_STR( Language ) ) PORT_DIPLOCATION("SW2:4") PORT_DIPSETTING( 0x08, DEF_STR( English ) ) PORT_DIPSETTING( 0x00, DEF_STR( Japanese ) ) - PORT_DIPNAME( 0x10, 0x00, "Bonus Life Occurence" ) + PORT_DIPNAME( 0x10, 0x00, "Bonus Life Occurence" ) PORT_DIPLOCATION("SW2:5") PORT_DIPSETTING( 0x00, "Every bonus" ) PORT_DIPSETTING( 0x10, "Bonus only" ) - PORT_DIPNAME( 0x20, 0x20, "Infinite Lives (Cheat)") + PORT_DIPNAME( 0x20, 0x20, "Infinite Lives (Cheat)") PORT_DIPLOCATION("SW2:6") PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Free_Play ) ) + PORT_DIPNAME( 0x40, 0x40, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW2:7") PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Flip_Screen ) ) + PORT_DIPNAME( 0x80, 0x80, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW2:8") PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) INPUT_PORTS_END @@ -408,16 +415,14 @@ static INPUT_PORTS_START( madcrash ) PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x01, 0x01, "Unused SW 1-0" ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) ) + PORT_DIPUNUSED_DIPLOC(0x01, IP_ACTIVE_LOW, "SW1:1") /* Listed as Unused */ + PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:2") PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) PORT_DIPSETTING( 0x02, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Lives ) ) + PORT_DIPNAME( 0x04, 0x04, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:3") PORT_DIPSETTING( 0x04, "3" ) PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x38, 0x38, DEF_STR( Coinage ) ) + PORT_DIPNAME( 0x38, 0x38, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:4,5,6") // PORT_DIPSETTING( 0x08, DEF_STR( 5C_1C ) ) PORT_DIPSETTING( 0x10, DEF_STR( 5C_1C ) ) PORT_DIPSETTING( 0x20, DEF_STR( 3C_1C ) ) @@ -426,35 +431,33 @@ static INPUT_PORTS_START( madcrash ) PORT_DIPSETTING( 0x30, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x28, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Bonus_Life ) ) + PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:7,8") PORT_DIPSETTING( 0xc0, "20000 60000" ) PORT_DIPSETTING( 0x80, "40000 90000" ) PORT_DIPSETTING( 0x40, "50000 120000" ) PORT_DIPSETTING( 0x00, DEF_STR( None ) ) PORT_START_TAG("DSW2") - PORT_DIPNAME( 0x01, 0x00, "Bonus Life Occurence" ) - PORT_DIPSETTING( 0x01, "1st, 2nd, then every 2nd" ) // Check the "Non Bugs" page + PORT_DIPNAME( 0x01, 0x00, "Bonus Life Occurence" ) PORT_DIPLOCATION("SW2:1") + PORT_DIPSETTING( 0x01, "1st, 2nd, then every 2nd" ) /* Check the "Non Bugs" page */ PORT_DIPSETTING( 0x00, "1st and 2nd only" ) - PORT_DIPNAME( 0x06, 0x04, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x06, DEF_STR( Easy ) ) + PORT_DIPNAME( 0x06, 0x04, "Scroll Speed" ) PORT_DIPLOCATION("SW2:2,3") + PORT_DIPSETTING( 0x06, "Slow" )//DEF_STR( Easy ) ) PORT_DIPSETTING( 0x04, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x18, 0x10, "Game mode" ) + PORT_DIPSETTING( 0x02, "Fast" )//DEF_STR( Hard ) ) + PORT_DIPSETTING( 0x00, "Faster" ) + PORT_DIPNAME( 0x18, 0x10, "Game mode" ) PORT_DIPLOCATION("SW2:4,5") PORT_DIPSETTING( 0x18, "Demo Sounds Off" ) PORT_DIPSETTING( 0x10, "Demo Sounds On" ) PORT_DIPSETTING( 0x08, "Infinite Lives (Cheat)") PORT_DIPSETTING( 0x00, "Freeze" ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Flip_Screen ) ) + PORT_DIPNAME( 0x20, 0x20, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW2:6") PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) // Check the "Non Bugs" page - PORT_DIPNAME( 0x40, 0x40, "Unused SW 2-6" ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, "Unknown SW 2-7" ) // tested in many places - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) /* Check the "Non Bugs" page */ + PORT_DIPNAME( 0x40, 0x40, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:7") + PORT_DIPSETTING( 0x40, DEF_STR( Easy ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) + PORT_DIPUNKNOWN_DIPLOC(0x80, IP_ACTIVE_LOW, "SW2:8") /* Listed as Unused, it is actually tested in many places */ INPUT_PORTS_END diff --git a/src/mame/drivers/matmania.c b/src/mame/drivers/matmania.c index 8ae7791b601..200a110e219 100644 --- a/src/mame/drivers/matmania.c +++ b/src/mame/drivers/matmania.c @@ -18,6 +18,15 @@ MAIN BOARD: 2600-27ff Background attribute RAM #2 4000-ffff ROM + +2008.04.04: Small note regarding DipSwitches. Locations and values have been +verified with the manual for both Mat Mania and Mania Challenge. +Exciting Hour DIPs confirmed with crazykong diplist, no manual available ATM. +Notice that the manual for Mat Mania lists DSW2:3,4 as Unused, but they +correctly affect the timer speed during the game. Also, default difficulty +in Mat Mania is Normal, while manual for Mania Challenge reports Easy. +The driver has been updated accordingly. + ***************************************************************************/ #include "driver.h" @@ -82,10 +91,10 @@ static ADDRESS_MAP_START( matmania_readmem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x077f) AM_READ(SMH_RAM) AM_RANGE(0x1000, 0x17ff) AM_READ(SMH_RAM) AM_RANGE(0x2000, 0x27ff) AM_READ(SMH_RAM) - AM_RANGE(0x3000, 0x3000) AM_READ(input_port_0_r) - AM_RANGE(0x3010, 0x3010) AM_READ(input_port_1_r) - AM_RANGE(0x3020, 0x3020) AM_READ(input_port_2_r) - AM_RANGE(0x3030, 0x3030) AM_READ(input_port_3_r) + AM_RANGE(0x3000, 0x3000) AM_READ_PORT("IN0") + AM_RANGE(0x3010, 0x3010) AM_READ_PORT("IN1") + AM_RANGE(0x3020, 0x3020) AM_READ_PORT("DSW2") + AM_RANGE(0x3030, 0x3030) AM_READ_PORT("DSW1") AM_RANGE(0x4000, 0xffff) AM_READ(SMH_ROM) ADDRESS_MAP_END @@ -110,10 +119,10 @@ static ADDRESS_MAP_START( maniach_readmem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x077f) AM_READ(SMH_RAM) AM_RANGE(0x1000, 0x17ff) AM_READ(SMH_RAM) AM_RANGE(0x2000, 0x27ff) AM_READ(SMH_RAM) - AM_RANGE(0x3000, 0x3000) AM_READ(input_port_0_r) - AM_RANGE(0x3010, 0x3010) AM_READ(input_port_1_r) - AM_RANGE(0x3020, 0x3020) AM_READ(input_port_2_r) - AM_RANGE(0x3030, 0x3030) AM_READ(input_port_3_r) + AM_RANGE(0x3000, 0x3000) AM_READ_PORT("IN0") + AM_RANGE(0x3010, 0x3010) AM_READ_PORT("IN1") + AM_RANGE(0x3020, 0x3020) AM_READ_PORT("DSW2") + AM_RANGE(0x3030, 0x3030) AM_READ_PORT("DSW1") AM_RANGE(0x3040, 0x3040) AM_READ(maniach_mcu_r) AM_RANGE(0x3041, 0x3041) AM_READ(maniach_mcu_status_r) AM_RANGE(0x4000, 0xffff) AM_READ(SMH_ROM) @@ -191,7 +200,7 @@ ADDRESS_MAP_END static INPUT_PORTS_START( matmania ) - PORT_START /* IN0 */ + PORT_START_TAG("IN0") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY @@ -201,7 +210,7 @@ static INPUT_PORTS_START( matmania ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(1) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(1) - PORT_START /* IN1 */ + PORT_START_TAG("IN1") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) @@ -211,51 +220,55 @@ static INPUT_PORTS_START( matmania ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - PORT_START /* DSW1 */ - PORT_DIPNAME(0x03, 0x03, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x03, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME(0x0c, 0x0c, "Tournament Time" ) // Tournament time is always 3:00, but time per 1 second is shorter. - PORT_DIPSETTING( 0x00, "2:12" ) - PORT_DIPSETTING( 0x04, "2:24" ) - PORT_DIPSETTING( 0x08, "2:30" ) - PORT_DIPSETTING( 0x0c, "2:36" ) - PORT_DIPNAME(0x10, 0x10, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME(0x20, 0x20, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME(0x40, 0x40, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME(0x80, 0x80, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* DSW2 */ - PORT_DIPNAME(0x03, 0x03, DEF_STR( Coin_A ) ) + PORT_START_TAG("DSW1") + PORT_DIPNAME(0x03, 0x03, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2") PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) ) - PORT_DIPNAME(0x0c, 0x0c, DEF_STR( Coin_B ) ) + PORT_DIPNAME(0x0c, 0x0c, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:3,4") PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x04, DEF_STR( 1C_3C ) ) - PORT_DIPNAME(0x10, 0x10, DEF_STR( Demo_Sounds ) ) + PORT_DIPNAME(0x10, 0x10, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:5") PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x10, DEF_STR( On ) ) - PORT_DIPNAME(0x20, 0x00, DEF_STR( Cabinet ) ) // The default setting should be cocktail. - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) + PORT_DIPNAME(0x20, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:6") + PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) /* The default setting should be cocktail. */ PORT_DIPSETTING( 0x20, DEF_STR( Cocktail ) ) - PORT_SERVICE( 0x40, IP_ACTIVE_LOW ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK ) + PORT_SERVICE_DIPLOC( 0x40, IP_ACTIVE_LOW, "SW1:7" ) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK ) /* Listed as always ON among DIPs in the manual */ + + PORT_START_TAG("DSW2") + PORT_DIPNAME(0x03, 0x02, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:1,2") + PORT_DIPSETTING( 0x03, DEF_STR( Easy ) ) + PORT_DIPSETTING( 0x02, DEF_STR( Medium ) ) /* According to the manual, default is Medium */ + PORT_DIPSETTING( 0x01, DEF_STR( Hard ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) + PORT_DIPNAME(0x0c, 0x0c, "Tournament Time" ) PORT_DIPLOCATION("SW2:3,4") + PORT_DIPSETTING( 0x00, "2:12" ) /* Tournament time is always 3:00, but time per 1 second is shorter. */ + PORT_DIPSETTING( 0x04, "2:24" ) + PORT_DIPSETTING( 0x08, "2:30" ) + PORT_DIPSETTING( 0x0c, "2:36" ) + PORT_DIPUNUSED_DIPLOC(0x10, IP_ACTIVE_LOW, "SW2:5") /* Listed as Unused */ + PORT_DIPUNUSED_DIPLOC(0x20, IP_ACTIVE_LOW, "SW2:6") /* Listed as Unused */ + PORT_DIPUNUSED_DIPLOC(0x40, IP_ACTIVE_LOW, "SW2:7") /* Listed as Unused */ + PORT_DIPUNUSED_DIPLOC(0x80, IP_ACTIVE_LOW, "SW2:8") /* Listed as Unused */ INPUT_PORTS_END +static INPUT_PORTS_START( maniach ) + PORT_INCLUDE( matmania ) + + PORT_MODIFY("DSW2") + PORT_DIPNAME(0x03, 0x03, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:1,2") + PORT_DIPSETTING( 0x03, DEF_STR( Easy ) ) /* According to the manual, default for this game is Easy */ + PORT_DIPSETTING( 0x02, DEF_STR( Medium ) ) + PORT_DIPSETTING( 0x01, DEF_STR( Hard ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) +INPUT_PORTS_END + + static const gfx_layout charlayout = { 8,8, /* 8*8 characters */ @@ -660,6 +673,6 @@ ROM_END GAME( 1985, matmania, 0, matmania, matmania, 0, ROT270, "Technos (Taito America license)", "Mat Mania", 0 ) -GAME( 1985, excthour, matmania, matmania, matmania, 0, ROT270, "Technos (Taito license)", "Exciting Hour", 0 ) -GAME( 1986, maniach, 0, maniach, matmania, 0, ROT270, "Technos (Taito America license)", "Mania Challenge (set 1)", 0 ) -GAME( 1986, maniach2, maniach, maniach, matmania, 0, ROT270, "Technos (Taito America license)", "Mania Challenge (set 2)" , 0) /* earlier version? */ +GAME( 1985, excthour, matmania, matmania, maniach, 0, ROT270, "Technos (Taito license)", "Exciting Hour", 0 ) +GAME( 1986, maniach, 0, maniach, maniach, 0, ROT270, "Technos (Taito America license)", "Mania Challenge (set 1)", 0 ) +GAME( 1986, maniach2, maniach, maniach, maniach, 0, ROT270, "Technos (Taito America license)", "Mania Challenge (set 2)" , 0) /* earlier version? */