From 60ac3841d7d7c623771a1e47378192787deb8dc6 Mon Sep 17 00:00:00 2001 From: Brian Troha Date: Fri, 12 Aug 2011 18:00:24 +0000 Subject: [PATCH] galpanic.c: Added dipswitch locations to Gals Panic, Fantasia, Super Model, New Fantasia, Fantasy '95, Miss World '96, Ms/Mr World '96, Fantasia II & Gals Hustler. [Brian Troha] --- .gitattributes | 1 + src/mame/drivers/galpanic.c | 461 ++++++----------------------------- src/mame/includes/galpnipt.h | 157 ++++++++++++ 3 files changed, 230 insertions(+), 389 deletions(-) create mode 100644 src/mame/includes/galpnipt.h diff --git a/.gitattributes b/.gitattributes index e8ee15a11c6..c68b1b77c81 100644 --- a/.gitattributes +++ b/.gitattributes @@ -3133,6 +3133,7 @@ src/mame/includes/galaxold.h svneol=native#text/plain src/mame/includes/galivan.h svneol=native#text/plain src/mame/includes/galpani2.h svneol=native#text/plain src/mame/includes/galpanic.h svneol=native#text/plain +src/mame/includes/galpnipt.h svneol=native#text/plain src/mame/includes/galspnbl.h svneol=native#text/plain src/mame/includes/gameplan.h svneol=native#text/plain src/mame/includes/gaplus.h svneol=native#text/plain diff --git a/src/mame/drivers/galpanic.c b/src/mame/drivers/galpanic.c index 14d7892b9d2..17f612507cc 100644 --- a/src/mame/drivers/galpanic.c +++ b/src/mame/drivers/galpanic.c @@ -123,6 +123,7 @@ The current set of Super Model is an example of type C #include "sound/okim6295.h" #include "video/kan_pand.h" #include "includes/galpanic.h" +#include "includes/galpnipt.h" static SCREEN_EOF( galpanic ) { @@ -228,8 +229,8 @@ static ADDRESS_MAP_START( galpanic_map, AS_PROGRAM, 16 ) AM_RANGE(0x600000, 0x6007ff) AM_RAM_WRITE(galpanic_paletteram_w) AM_BASE_GENERIC(paletteram) /* 1024 colors, but only 512 seem to be used */ AM_RANGE(0x700000, 0x701fff) AM_DEVREADWRITE("pandora", pandora_spriteram_LSB_r, pandora_spriteram_LSB_w) AM_RANGE(0x702000, 0x704fff) AM_RAM - AM_RANGE(0x800000, 0x800001) AM_READ_PORT("DSW1_P1") - AM_RANGE(0x800002, 0x800003) AM_READ_PORT("DSW2_P2") + AM_RANGE(0x800000, 0x800001) AM_READ_PORT("DSW1") + AM_RANGE(0x800002, 0x800003) AM_READ_PORT("DSW2") AM_RANGE(0x800004, 0x800005) AM_READ_PORT("SYSTEM") AM_RANGE(0x900000, 0x900001) AM_WRITE(galpanic_6295_bankswitch_w) AM_RANGE(0xa00000, 0xa00001) AM_WRITE(galpanic_coin_w) /* coin counters */ @@ -262,8 +263,8 @@ static ADDRESS_MAP_START( comad_map, AS_PROGRAM, 16 ) AM_RANGE(0x520000, 0x53ffff) AM_RAM_WRITE(galpanic_bgvideoram_w) AM_BASE_MEMBER(galpanic_state, m_bgvideoram) /* + work RAM */ AM_RANGE(0x600000, 0x6007ff) AM_RAM_WRITE(galpanic_paletteram_w) AM_BASE_GENERIC(paletteram) /* 1024 colors, but only 512 seem to be used */ AM_RANGE(0x700000, 0x700fff) AM_RAM AM_BASE_SIZE_MEMBER(galpanic_state, m_spriteram, m_spriteram_size) - AM_RANGE(0x800000, 0x800001) AM_READ_PORT("DSW1_P1") - AM_RANGE(0x800002, 0x800003) AM_READ_PORT("DSW2_P2") + AM_RANGE(0x800000, 0x800001) AM_READ_PORT("DSW1") + AM_RANGE(0x800002, 0x800003) AM_READ_PORT("DSW2") AM_RANGE(0x800004, 0x800005) AM_READ_PORT("SYSTEM") // AM_RANGE(0x800006, 0x800007) ?? AM_RANGE(0x80000a, 0x80000b) AM_READ(comad_timer_r) /* bits 8-a = timer? palette update code waits for them to be 111 */ @@ -281,8 +282,8 @@ static ADDRESS_MAP_START( fantsia2_map, AS_PROGRAM, 16 ) AM_RANGE(0x520000, 0x53ffff) AM_RAM_WRITE(galpanic_bgvideoram_w) AM_BASE_MEMBER(galpanic_state, m_bgvideoram) /* + work RAM */ AM_RANGE(0x600000, 0x6007ff) AM_RAM_WRITE(galpanic_paletteram_w) AM_BASE_GENERIC(paletteram) /* 1024 colors, but only 512 seem to be used */ AM_RANGE(0x700000, 0x700fff) AM_RAM AM_BASE_SIZE_MEMBER(galpanic_state, m_spriteram, m_spriteram_size) - AM_RANGE(0x800000, 0x800001) AM_READ_PORT("DSW1_P1") - AM_RANGE(0x800002, 0x800003) AM_READ_PORT("DSW2_P2") + AM_RANGE(0x800000, 0x800001) AM_READ_PORT("DSW1") + AM_RANGE(0x800002, 0x800003) AM_READ_PORT("DSW2") AM_RANGE(0x800004, 0x800005) AM_READ_PORT("SYSTEM") // AM_RANGE(0x800006, 0x800007) ?? AM_RANGE(0x800008, 0x800009) AM_READ(comad_timer_r) /* bits 8-a = timer? palette update code waits for them to be 111 */ @@ -303,8 +304,8 @@ static ADDRESS_MAP_START( galhustl_map, AS_PROGRAM, 16 ) AM_RANGE(0x680000, 0x68001f) AM_RAM // regs? AM_RANGE(0x700000, 0x700fff) AM_RAM AM_BASE_SIZE_MEMBER(galpanic_state, m_spriteram, m_spriteram_size) AM_RANGE(0x780000, 0x78001f) AM_RAM // regs? - AM_RANGE(0x800000, 0x800001) AM_READ_PORT("DSW1_P1") - AM_RANGE(0x800002, 0x800003) AM_READ_PORT("DSW2_P2") + AM_RANGE(0x800000, 0x800001) AM_READ_PORT("DSW1") + AM_RANGE(0x800002, 0x800003) AM_READ_PORT("DSW2") AM_RANGE(0x800004, 0x800005) AM_READ_PORT("SYSTEM") AM_RANGE(0x900000, 0x900001) AM_WRITE(galpanica_6295_bankswitch_w) AM_RANGE(0xa00000, 0xa00001) AM_WRITENOP // ? @@ -329,8 +330,8 @@ static ADDRESS_MAP_START( zipzap_map, AS_PROGRAM, 16 ) AM_RANGE(0x700000, 0x700fff) AM_RAM AM_BASE_SIZE_MEMBER(galpanic_state, m_spriteram, m_spriteram_size) AM_RANGE(0x701000, 0x71ffff) AM_RAM AM_RANGE(0x780000, 0x78001f) AM_RAM - AM_RANGE(0x800000, 0x800001) AM_READ_PORT("DSW1_P1") - AM_RANGE(0x800002, 0x800003) AM_READ_PORT("DSW2_P2") + AM_RANGE(0x800000, 0x800001) AM_READ_PORT("DSW1") + AM_RANGE(0x800002, 0x800003) AM_READ_PORT("DSW2") AM_RANGE(0x800004, 0x800005) AM_READ_PORT("SYSTEM") AM_RANGE(0x900000, 0x900001) AM_WRITE(galpanica_6295_bankswitch_w) @@ -349,8 +350,8 @@ static ADDRESS_MAP_START( supmodel_map, AS_PROGRAM, 16 ) AM_RANGE(0x680000, 0x68001f) AM_RAM AM_RANGE(0x700000, 0x700fff) AM_RAM AM_BASE_SIZE_MEMBER(galpanic_state, m_spriteram, m_spriteram_size) AM_RANGE(0x780000, 0x78001f) AM_RAM - AM_RANGE(0x800000, 0x800001) AM_READ_PORT("DSW1_P1") - AM_RANGE(0x800002, 0x800003) AM_READ_PORT("DSW2_P2") + AM_RANGE(0x800000, 0x800001) AM_READ_PORT("DSW1") + AM_RANGE(0x800002, 0x800003) AM_READ_PORT("DSW2") AM_RANGE(0x800004, 0x800005) AM_READ_PORT("SYSTEM") AM_RANGE(0x800006, 0x800007) AM_READ(comad_timer_r) AM_RANGE(0x800008, 0x800009) AM_READ(comad_timer_r) @@ -363,375 +364,98 @@ static ADDRESS_MAP_START( supmodel_map, AS_PROGRAM, 16 ) AM_RANGE(0xf80000, 0xf80001) AM_DEVREAD8("oki", comad_okim6295_r, 0xff00) AM_DEVWRITE8_MODERN("oki", okim6295_device, write, 0xff00) /* fantasia, missw96 */ ADDRESS_MAP_END -#define COMMON_COIN0\ - PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coin_A ) )\ - PORT_DIPSETTING( 0x0020, DEF_STR( 2C_1C ) )\ - PORT_DIPSETTING( 0x0030, DEF_STR( 1C_1C ) )\ - PORT_DIPSETTING( 0x0010, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW1_P1",0x0008,PORTCOND_EQUALS,0x0008)\ - PORT_DIPSETTING( 0x0010, DEF_STR( 1C_3C ) ) PORT_CONDITION("DSW1_P1",0x0008,PORTCOND_EQUALS,0x0000)\ - PORT_DIPSETTING( 0x0000, DEF_STR( 1C_4C ) ) PORT_CONDITION("DSW1_P1",0x0008,PORTCOND_EQUALS,0x0000)\ - PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) ) PORT_CONDITION("DSW1_P1",0x0008,PORTCOND_EQUALS,0x0008)\ - PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Coin_B ) )\ - PORT_DIPSETTING( 0x0080, DEF_STR( 2C_1C ) )\ - PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_1C ) )\ - PORT_DIPSETTING( 0x0040, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW1_P1",0x0008,PORTCOND_EQUALS,0x0008)\ - PORT_DIPSETTING( 0x0040, DEF_STR( 1C_3C ) ) PORT_CONDITION("DSW1_P1",0x0008,PORTCOND_EQUALS,0x0000)\ - PORT_DIPSETTING( 0x0000, DEF_STR( 1C_4C ) ) PORT_CONDITION("DSW1_P1",0x0008,PORTCOND_EQUALS,0x0000)\ - PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) ) PORT_CONDITION("DSW1_P1",0x0008,PORTCOND_EQUALS,0x0008) - -#define COMMON_COIN1\ - PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coin_A ) )\ - PORT_DIPSETTING( 0x0020, DEF_STR( 2C_1C ) )\ - PORT_DIPSETTING( 0x0030, DEF_STR( 1C_1C ) )\ - PORT_DIPSETTING( 0x0010, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW2_P2",0x0008,PORTCOND_EQUALS,0x0008)\ - PORT_DIPSETTING( 0x0010, DEF_STR( 1C_3C ) ) PORT_CONDITION("DSW2_P2",0x0008,PORTCOND_EQUALS,0x0000)\ - PORT_DIPSETTING( 0x0000, DEF_STR( 1C_4C ) ) PORT_CONDITION("DSW2_P2",0x0008,PORTCOND_EQUALS,0x0000)\ - PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) ) PORT_CONDITION("DSW2_P2",0x0008,PORTCOND_EQUALS,0x0008)\ - PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Coin_B ) )\ - PORT_DIPSETTING( 0x0080, DEF_STR( 2C_1C ) )\ - PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_1C ) )\ - PORT_DIPSETTING( 0x0040, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW2_P2",0x0008,PORTCOND_EQUALS,0x0008)\ - PORT_DIPSETTING( 0x0040, DEF_STR( 1C_3C ) ) PORT_CONDITION("DSW2_P2",0x0008,PORTCOND_EQUALS,0x0000)\ - PORT_DIPSETTING( 0x0000, DEF_STR( 1C_4C ) ) PORT_CONDITION("DSW2_P2",0x0008,PORTCOND_EQUALS,0x0000)\ - PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) ) PORT_CONDITION("DSW2_P2",0x0008,PORTCOND_EQUALS,0x0008) - static INPUT_PORTS_START( galpanic ) - PORT_START("DSW1_P1") - PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) ) /* flip screen? - code at 0x000522 */ + PORT_START("DSW1") + PORT_DIPUNUSED_DIPLOC( 0x0001, 0x0001, "SW1:1" ) + PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:2") /* flip screen? - code at 0x000522 */ PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_SERVICE( 0x0004, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - /* Coinage - World (0x03ffff.b = 03) */ - PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0030, DEF_STR( 1C_1C ) ) - PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) ) - /* Coinage - Japan (0x03ffff.b = 01) and US (0x03ffff.b = 02) - PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0030, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( 1C_2C ) ) - */ - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_PLAYER(1) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_PLAYER(1) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_PLAYER(1) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_PLAYER(1) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* "Shot2" in "test mode" */ - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_SERVICE_DIPLOC( 0x0004, IP_ACTIVE_LOW, "SW1:3" ) + PORT_DIPUNUSED_DIPLOC( 0x0008, 0x0008, "SW1:4" ) + COINAGE_WORLD + GALS_PANIC_JOYSTICK_4WAY(1) /* "Shot2" is shown in "test mode" but not used by the game */ - PORT_START("DSW2_P2") - PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) ) + PORT_START("DSW2") + PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:1,2") PORT_DIPSETTING( 0x0002, DEF_STR( Easy ) ) PORT_DIPSETTING( 0x0003, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x0001, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Lives ) ) + PORT_DIPUNUSED_DIPLOC( 0x0004, 0x0004, "SW2:3" ) + PORT_DIPUNUSED_DIPLOC( 0x0008, 0x0008, "SW2:4" ) + PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:5,6") PORT_DIPSETTING( 0x0010, "2" ) PORT_DIPSETTING( 0x0030, "3" ) PORT_DIPSETTING( 0x0020, "4" ) PORT_DIPSETTING( 0x0000, "5" ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) ) /* demo sounds? - see notes */ + PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:7") /* demo sounds? - see notes */ PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0080, "Character Test" ) + PORT_DIPNAME( 0x0080, 0x0080, "Character Test" ) PORT_DIPLOCATION("SW2:8") PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* "Shot2" in "test mode" */ - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + GALS_PANIC_JOYSTICK_4WAY(2) /* "Shot2" is shown in "test mode" but not used by the game */ - PORT_START("SYSTEM") - PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + SYSTEM_SERVICE INPUT_PORTS_END static INPUT_PORTS_START( galpanica ) - PORT_START("DSW1_P1") - PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) ) /* flip screen? - code at 0x00060a */ - PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_SERVICE( 0x0004, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x0008, 0x0008, "Coin Mode" ) - PORT_DIPSETTING( 0x0008, "Mode 1" ) - PORT_DIPSETTING( 0x0000, "Mode 2" ) - /* Coinage - Japan (0x03ffff.b = 01) - PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0030, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( 1C_2C ) ) - */ - /* Coinage - US (0x03ffff.b = 02) and World (0x03ffff.b = 03) */ - COMMON_COIN0 - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_PLAYER(1) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_PLAYER(1) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_PLAYER(1) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_PLAYER(1) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* "Shot2" in "test mode" */ - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_START("DSW1") + COINAGE_TEST_LOC /* Unknown DSW switch 2 is flip screen? - code at 0x00060a */ + GALS_PANIC_JOYSTICK_4WAY(1) - PORT_START("DSW2_P2") - PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x0003, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0010, "2" ) - PORT_DIPSETTING( 0x0030, "3" ) - PORT_DIPSETTING( 0x0020, "4" ) - PORT_DIPSETTING( 0x0000, "5" ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* "Shot2" in "test mode" */ - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_START("DSW2") + DIFFICULTY_DEMO_SOUNDS + GALS_PANIC_JOYSTICK_4WAY(2) - PORT_START("SYSTEM") - PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + SYSTEM_SERVICE INPUT_PORTS_END static INPUT_PORTS_START( fantasia ) - PORT_START("DSW1_P1") - PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x0003, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) ) /* freeze/vblank? - code at 0x000734 ('fantasia') */ - PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) /* or 0x00075a ('newfant') - not called ? */ - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0010, "2" ) - PORT_DIPSETTING( 0x0030, "3" ) - PORT_DIPSETTING( 0x0020, "4" ) - PORT_DIPSETTING( 0x0000, "5" ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* "Shot2" in "test mode" */ - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_START("DSW1") + DIFFICULTY_DEMO_SOUNDS /* Unknown dip might be freeze/vblank? - code at 0x000734 ('fantasia') or 0x00075a ('newfant') - not called ? */ + GALS_PANIC_JOYSTICK_4WAY(1) /* "Shot2" is shown in "test mode" but not used by the game */ - PORT_START("DSW2_P2") - PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) ) /* flip screen? - code at 0x00021c */ - PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_SERVICE( 0x0004, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x0008, 0x0008, "Coin Mode" ) - PORT_DIPSETTING( 0x0008, "Mode 1" ) - PORT_DIPSETTING( 0x0000, "Mode 2" ) - COMMON_COIN1 - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* "Shot2" in "test mode" */ - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_START("DSW2") + COINAGE_TEST_LOC /* Unknown DSW switch 2 is flip screen? - code at 0x00021c */ + GALS_PANIC_JOYSTICK_4WAY(2) /* "Shot2" is shown in "test mode" but not used by the game */ - PORT_START("SYSTEM") - PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_TILT ) /* MAME may crash when pressed (see notes) */ - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* "Service" in "test mode" */ - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + SYSTEM_NO_SERVICE /* MAME may crash when TILT is pressed (see notes), "Service" is shown in "test mode" */ INPUT_PORTS_END /* Same as 'fantasia', but no "Service Mode" Dip Switch (and thus no "hidden" buttons) */ static INPUT_PORTS_START( missw96 ) - PORT_START("DSW1_P1") - PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x0003, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) ) /* freeze/vblank? - code at 0x00074e - not called ? */ - PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0010, "2" ) - PORT_DIPSETTING( 0x0030, "3" ) - PORT_DIPSETTING( 0x0020, "4" ) - PORT_DIPSETTING( 0x0000, "5" ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_START("DSW1") + DIFFICULTY_DEMO_SOUNDS /* Unknown dip might be freeze/vblank? - code at 0x00074e - not called ? */ + GALS_PANIC_JOYSTICK_4WAY(1) - PORT_START("DSW2_P2") - PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) ) /* flip screen? - code at 0x00021c */ - PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0008, 0x0008, "Coin Mode" ) - PORT_DIPSETTING( 0x0008, "Mode 1" ) - PORT_DIPSETTING( 0x0000, "Mode 2" ) - COMMON_COIN1 - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_START("DSW2") + COINAGE_NO_TEST_LOC /* Unknown DSW switch 2 is flip screen? - code at 0x00021c */ + GALS_PANIC_JOYSTICK_4WAY(2) - PORT_START("SYSTEM") - PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_TILT ) /* MAME may crash when pressed (see notes) */ - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + SYSTEM_NO_SERVICE /* MAME may crash when TILT is pressed (see notes) */ INPUT_PORTS_END static INPUT_PORTS_START( galhustl ) - PORT_START("DSW1_P1") - PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Lives ) ) + PORT_START("DSW1") + PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1,2") PORT_DIPSETTING( 0x0000, "6" ) PORT_DIPSETTING( 0x0001, "7" ) PORT_DIPSETTING( 0x0003, "8" ) PORT_DIPSETTING( 0x0002, "10" ) - PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Demo_Sounds ) ) + PORT_DIPUNUSED_DIPLOC( 0x0004, 0x0004, "SW2:3" ) + PORT_DIPUNUSED_DIPLOC( 0x0008, 0x0008, "SW2:4" ) + PORT_DIPUNUSED_DIPLOC( 0x0010, 0x0010, "SW2:5" ) + PORT_DIPUNUSED_DIPLOC( 0x0020, 0x0020, "SW2:6" ) + PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:7") PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0040, DEF_STR( On ) ) - PORT_SERVICE( 0x0080, IP_ACTIVE_LOW ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_SERVICE_DIPLOC( 0x0080, IP_ACTIVE_LOW, "SW2:8" ) + GALS_PANIC_JOYSTICK_8WAY(1) - PORT_START("DSW2_P2") - PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coinage ) ) + PORT_START("DSW2") + PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:1,2,3") PORT_DIPSETTING( 0x0000, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x0001, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x0002, DEF_STR( 2C_1C ) ) @@ -740,42 +464,24 @@ static INPUT_PORTS_START( galhustl ) PORT_DIPSETTING( 0x0003, DEF_STR( 2C_3C ) ) PORT_DIPSETTING( 0x0006, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x0005, DEF_STR( 1C_3C ) ) - PORT_DIPNAME( 0x0018, 0x0018, DEF_STR( Difficulty ) ) + PORT_DIPNAME( 0x0018, 0x0018, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:4,5") PORT_DIPSETTING( 0x0010, DEF_STR( Easy ) ) /* 5000 - 7000 */ PORT_DIPSETTING( 0x0018, DEF_STR( Normal ) ) /* 4000 - 6000 */ PORT_DIPSETTING( 0x0008, DEF_STR( Hard ) ) /* 6000 - 8000 */ PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) /* 7000 - 9000 */ - PORT_DIPNAME( 0x0060, 0x0060, "Play Time" ) + PORT_DIPNAME( 0x0060, 0x0060, "Play Time" ) PORT_DIPLOCATION("SW1:6,7") PORT_DIPSETTING( 0x0040, "120 Sec" ) PORT_DIPSETTING( 0x0060, "100 Sec" ) PORT_DIPSETTING( 0x0020, "80 Sec" ) PORT_DIPSETTING( 0x0000, "70 Sec" ) - PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_DIPUNUSED_DIPLOC( 0x0080, 0x0080, "SW1:8" ) + GALS_PANIC_JOYSTICK_8WAY(2) - PORT_START("SYSTEM") - PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + SYSTEM_NO_TILT INPUT_PORTS_END static INPUT_PORTS_START( zipzap ) - PORT_START("DSW1_P1") + PORT_START("DSW1") PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) @@ -799,16 +505,9 @@ static INPUT_PORTS_START( zipzap ) PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + GALS_PANIC_JOYSTICK_8WAY(1) - PORT_START("DSW2_P2") + PORT_START("DSW2") PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Coinage ) ) PORT_DIPSETTING( 0x0000, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x0001, DEF_STR( 2C_1C ) ) @@ -832,25 +531,9 @@ static INPUT_PORTS_START( zipzap ) PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + GALS_PANIC_JOYSTICK_8WAY(2) - PORT_START("SYSTEM") - PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + SYSTEM_NO_TILT INPUT_PORTS_END @@ -1322,7 +1005,7 @@ ROM_END GAME( 1990, galpanic, 0, galpanic, galpanic, 0, ROT90, "Kaneko", "Gals Panic (Unprotected)", GAME_NO_COCKTAIL ) GAME( 1990, galpanica,galpanic, galpanica,galpanica,0, ROT90, "Kaneko", "Gals Panic (MCU Protected)", GAME_NO_COCKTAIL ) -GAME( 1994, supmodel, 0, supmodel, fantasia, 0, ROT90, "Comad & New Japan System", "Super Model",GAME_NO_COCKTAIL ) // 'official' or hack of fantasia? +GAME( 1994, supmodel, 0, supmodel, fantasia, 0, ROT90, "Comad & New Japan System", "Super Model",GAME_NO_COCKTAIL ) GAME( 1995, newfant, 0, comad, fantasia, 0, ROT90, "Comad & New Japan System", "New Fantasia", GAME_NO_COCKTAIL ) GAME( 1995, fantsy95, 0, comad, fantasia, 0, ROT90, "Hi-max Technology Inc.", "Fantasy '95", GAME_NO_COCKTAIL ) GAME( 1996, missw96, 0, comad, missw96, 0, ROT0, "Comad", "Miss World '96 (Nude)", GAME_NO_COCKTAIL ) diff --git a/src/mame/includes/galpnipt.h b/src/mame/includes/galpnipt.h new file mode 100644 index 00000000000..fb153210ca4 --- /dev/null +++ b/src/mame/includes/galpnipt.h @@ -0,0 +1,157 @@ +/******************************************************************************* + + Input port macros used by games in the galpanic.c driver + +*******************************************************************************/ + + +/**************************** Inputs ****************************/ + +#define GALS_PANIC_JOYSTICK_4WAY(PL)\ + PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_PLAYER(PL)\ + PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_PLAYER(PL)\ + PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_PLAYER(PL)\ + PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_PLAYER(PL)\ + PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(PL)\ + PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN )\ + PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )\ + PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + +#define GALS_PANIC_JOYSTICK_8WAY(PL)\ + PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(PL)\ + PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(PL)\ + PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(PL)\ + PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(PL)\ + PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(PL)\ + PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(PL)\ + PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(PL)\ + PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + +#define SYSTEM_SERVICE\ + PORT_START("SYSTEM")\ + PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNKNOWN )\ + PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 )\ + PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START2 )\ + PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_COIN1 )\ + PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_COIN2 )\ + PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN )\ + PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_TILT )\ + PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SERVICE1 )\ + PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + +#define SYSTEM_NO_SERVICE\ + PORT_START("SYSTEM")\ + PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNKNOWN )\ + PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 )\ + PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START2 )\ + PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_COIN1 )\ + PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_COIN2 )\ + PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN )\ + PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_TILT )\ + PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )\ + PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + +#define SYSTEM_NO_TILT\ + PORT_START("SYSTEM")\ + PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNKNOWN )\ + PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 )\ + PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START2 )\ + PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_COIN1 )\ + PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_COIN2 )\ + PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN )\ + PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN )\ + PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )\ + PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + +/**************************** Coinage & Dip Swicthes ****************************/ + +#define COINAGE_WORLD\ + PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:5,6")\ + PORT_DIPSETTING( 0x0000, DEF_STR( 4C_1C ) )\ + PORT_DIPSETTING( 0x0010, DEF_STR( 3C_1C ) )\ + PORT_DIPSETTING( 0x0020, DEF_STR( 2C_1C ) )\ + PORT_DIPSETTING( 0x0030, DEF_STR( 1C_1C ) )\ + PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:7,8")\ + PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_2C ) )\ + PORT_DIPSETTING( 0x0080, DEF_STR( 1C_3C ) )\ + PORT_DIPSETTING( 0x0040, DEF_STR( 1C_4C ) )\ + PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) ) + +#define COINAGE_JAPAN\ + PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:5,6")\ + PORT_DIPSETTING( 0x0010, DEF_STR( 2C_1C ) )\ + PORT_DIPSETTING( 0x0030, DEF_STR( 1C_1C ) )\ + PORT_DIPSETTING( 0x0000, DEF_STR( 2C_3C ) )\ + PORT_DIPSETTING( 0x0020, DEF_STR( 1C_2C ) )\ + PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:7,8")\ + PORT_DIPSETTING( 0x0040, DEF_STR( 2C_1C ) )\ + PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_1C ) )\ + PORT_DIPSETTING( 0x0000, DEF_STR( 2C_3C ) )\ + PORT_DIPSETTING( 0x0080, DEF_STR( 1C_2C ) ) + +#define COINAGE_NO_TEST_LOC\ + PORT_DIPUNUSED_DIPLOC( 0x0001, 0x0001, "SW1:1" )\ + PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:2")\ + PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )\ + PORT_DIPSETTING( 0x0000, DEF_STR( On ) )\ + PORT_DIPUNUSED_DIPLOC( 0x0004, 0x0004, "SW1:3" )\ + PORT_DIPNAME( 0x0008, 0x0008, "Coin Mode" ) PORT_DIPLOCATION("SW1:4")\ + PORT_DIPSETTING( 0x0008, "Mode 1" )\ + PORT_DIPSETTING( 0x0000, "Mode 2" )\ + PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:5,6")\ + PORT_DIPSETTING( 0x0020, DEF_STR( 2C_1C ) )\ + PORT_DIPSETTING( 0x0030, DEF_STR( 1C_1C ) )\ + PORT_DIPSETTING( 0x0010, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW1",0x0008,PORTCOND_EQUALS,0x0008)\ + PORT_DIPSETTING( 0x0010, DEF_STR( 1C_3C ) ) PORT_CONDITION("DSW1",0x0008,PORTCOND_EQUALS,0x0000)\ + PORT_DIPSETTING( 0x0000, DEF_STR( 1C_4C ) ) PORT_CONDITION("DSW1",0x0008,PORTCOND_EQUALS,0x0000)\ + PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) ) PORT_CONDITION("DSW1",0x0008,PORTCOND_EQUALS,0x0008)\ + PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:7,8")\ + PORT_DIPSETTING( 0x0080, DEF_STR( 2C_1C ) )\ + PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_1C ) )\ + PORT_DIPSETTING( 0x0040, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW1",0x0008,PORTCOND_EQUALS,0x0008)\ + PORT_DIPSETTING( 0x0040, DEF_STR( 1C_3C ) ) PORT_CONDITION("DSW1",0x0008,PORTCOND_EQUALS,0x0000)\ + PORT_DIPSETTING( 0x0000, DEF_STR( 1C_4C ) ) PORT_CONDITION("DSW1",0x0008,PORTCOND_EQUALS,0x0000)\ + PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) ) PORT_CONDITION("DSW1",0x0008,PORTCOND_EQUALS,0x0008) + +#define COINAGE_TEST_LOC\ + PORT_DIPUNUSED_DIPLOC( 0x0001, 0x0001, "SW1:1" )\ + PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:2")\ + PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )\ + PORT_DIPSETTING( 0x0000, DEF_STR( On ) )\ + PORT_SERVICE_DIPLOC( 0x0004, IP_ACTIVE_LOW, "SW1:3" )\ + PORT_DIPNAME( 0x0008, 0x0008, "Coin Mode" ) PORT_DIPLOCATION("SW1:4")\ + PORT_DIPSETTING( 0x0008, "Mode 1" )\ + PORT_DIPSETTING( 0x0000, "Mode 2" )\ + PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:5,6")\ + PORT_DIPSETTING( 0x0020, DEF_STR( 2C_1C ) )\ + PORT_DIPSETTING( 0x0030, DEF_STR( 1C_1C ) )\ + PORT_DIPSETTING( 0x0010, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW1",0x0008,PORTCOND_EQUALS,0x0008)\ + PORT_DIPSETTING( 0x0010, DEF_STR( 1C_3C ) ) PORT_CONDITION("DSW1",0x0008,PORTCOND_EQUALS,0x0000)\ + PORT_DIPSETTING( 0x0000, DEF_STR( 1C_4C ) ) PORT_CONDITION("DSW1",0x0008,PORTCOND_EQUALS,0x0000)\ + PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) ) PORT_CONDITION("DSW1",0x0008,PORTCOND_EQUALS,0x0008)\ + PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:7,8")\ + PORT_DIPSETTING( 0x0080, DEF_STR( 2C_1C ) )\ + PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_1C ) )\ + PORT_DIPSETTING( 0x0040, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW1",0x0008,PORTCOND_EQUALS,0x0008)\ + PORT_DIPSETTING( 0x0040, DEF_STR( 1C_3C ) ) PORT_CONDITION("DSW1",0x0008,PORTCOND_EQUALS,0x0000)\ + PORT_DIPSETTING( 0x0000, DEF_STR( 1C_4C ) ) PORT_CONDITION("DSW1",0x0008,PORTCOND_EQUALS,0x0000)\ + PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) ) PORT_CONDITION("DSW1",0x0008,PORTCOND_EQUALS,0x0008) + + +#define DIFFICULTY_DEMO_SOUNDS\ + PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:1,2")\ + PORT_DIPSETTING( 0x0002, DEF_STR( Easy ) )\ + PORT_DIPSETTING( 0x0003, DEF_STR( Normal ) )\ + PORT_DIPSETTING( 0x0001, DEF_STR( Hard ) )\ + PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) )\ + PORT_DIPUNUSED_DIPLOC( 0x0004, 0x0004, "SW2:3" )\ + PORT_DIPUNKNOWN_DIPLOC( 0x0008, 0x0008, "SW2:4" )\ + PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:5,6")\ + PORT_DIPSETTING( 0x0010, "2" )\ + PORT_DIPSETTING( 0x0030, "3" )\ + PORT_DIPSETTING( 0x0020, "4" )\ + PORT_DIPSETTING( 0x0000, "5" )\ + PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:7")\ + PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )\ + PORT_DIPSETTING( 0x0040, DEF_STR( On ) )\ + PORT_DIPUNUSED_DIPLOC( 0x0080, 0x0080, "SW2:8" )