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)
This commit is contained in:
Aaron Giles 2008-04-10 13:50:47 +00:00
parent b389e946d6
commit 66c48036a3
2 changed files with 113 additions and 97 deletions

View File

@ -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

View File

@ -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? */