From 6c21097922e68b93ad07dde4320ee34a22e5324d Mon Sep 17 00:00:00 2001 From: Aaron Giles Date: Tue, 19 Aug 2008 04:33:19 +0000 Subject: [PATCH] Added validity check to ensure that AM_READ_PORT() macros reference valid ports. Fixed several cases where the check failed. --- src/emu/validity.c | 49 ++++++++++++++++-------------------- src/mame/drivers/8080bw.c | 6 +++++ src/mame/drivers/bloodbro.c | 13 ++++++++-- src/mame/drivers/cps1.c | 12 +++++++++ src/mame/drivers/kaneko16.c | 2 +- src/mame/drivers/m90.c | 18 +++++++++++++ src/mame/drivers/megaplay.c | 34 +++++++++++++++++-------- src/mame/drivers/mlanding.c | 2 +- src/mame/drivers/neodrvr.c | 3 +++ src/mame/drivers/nmk16.c | 6 +++++ src/mame/drivers/seta.c | 4 +-- src/mame/drivers/seta2.c | 2 +- src/mame/drivers/simpsons.c | 2 +- src/mame/drivers/ssv.c | 3 +++ src/mame/drivers/subsino.c | 4 +-- src/mame/drivers/toaplan1.c | 3 +++ src/mame/includes/mw8080bw.h | 2 +- 17 files changed, 117 insertions(+), 48 deletions(-) diff --git a/src/emu/validity.c b/src/emu/validity.c index db4844c361f..dbd841c0a7d 100644 --- a/src/emu/validity.c +++ b/src/emu/validity.c @@ -94,7 +94,6 @@ static quark_table *source_table; static quark_table *name_table; static quark_table *description_table; static quark_table *roms_table; -static quark_table *inputs_table; static quark_table *defstr_table; @@ -199,7 +198,6 @@ static void quark_tables_create(void) name_table = quark_table_alloc(drivnum, QUARK_HASH_SIZE); description_table = quark_table_alloc(drivnum, QUARK_HASH_SIZE); roms_table = quark_table_alloc(drivnum, QUARK_HASH_SIZE); - inputs_table = quark_table_alloc(drivnum, QUARK_HASH_SIZE); /* build the quarks and the hash tables */ for (drivnum = 0; drivers[drivnum]; drivnum++) @@ -643,7 +641,7 @@ static int validate_roms(int drivnum, const machine_config *config, region_info validate_cpu - validate CPUs and memory maps -------------------------------------------------*/ -static int validate_cpu(int drivnum, const machine_config *config, region_info *rgninfo) +static int validate_cpu(int drivnum, const machine_config *config, const input_port_config *portlist, region_info *rgninfo) { const game_driver *driver = drivers[drivnum]; cpu_validity_check_func cpu_validity_check; @@ -814,6 +812,13 @@ static int validate_cpu(int drivnum, const machine_config *config, region_info * mame_printf_error("%s: %s CPU %d space %d memory map entry references nonexistant device type %s, tag %s\n", driver->source_file, driver->name, cpunum, spacenum, devtype_name(entry->write_devtype), entry->write_devtag); error = TRUE; } + + /* make sure ports exist */ + if (entry->read_porttag != NULL && input_port_by_tag(portlist, entry->read_porttag) == NULL) + { + mame_printf_error("%s: %s CPU %d space %d memory map entry references nonexistant port tag %s\n", driver->source_file, driver->name, cpunum, spacenum, entry->read_porttag); + error = TRUE; + } } /* release the address map */ @@ -1286,34 +1291,22 @@ static void validate_dip_settings(const input_field_config *field, const game_dr validate_inputs - validate input configuration -------------------------------------------------*/ -static int validate_inputs(int drivnum, const machine_config *config) +static int validate_inputs(int drivnum, const machine_config *config, const input_port_config **portlistptr) { - const input_port_config *portlist; const input_port_config *scanport; const input_port_config *port; const input_field_config *field; const game_driver *driver = drivers[drivnum]; int empty_string_found = FALSE; char errorbuf[1024]; - quark_entry *entry; int error = FALSE; - UINT32 crc; /* skip if no ports */ if (driver->ipt == NULL) return FALSE; - /* skip if we already validated these ports */ - crc = (FPTR)driver->ipt; - for (entry = quark_table_get_first(inputs_table, crc); entry != NULL; entry = entry->next) - if (entry->crc == crc && driver->ipt == drivers[entry - inputs_table->entry]->ipt) - return FALSE; - - /* otherwise, add ourself to the list */ - quark_add(inputs_table, drivnum, crc); - /* allocate the input ports */ - portlist = input_port_config_alloc(driver->ipt, errorbuf, sizeof(errorbuf)); + *portlistptr = input_port_config_alloc(driver->ipt, errorbuf, sizeof(errorbuf)); if (errorbuf[0] != 0) { mame_printf_error("%s: %s has input port errors:\n%s\n", driver->source_file, driver->name, errorbuf); @@ -1321,7 +1314,7 @@ static int validate_inputs(int drivnum, const machine_config *config) } /* check for duplicate tags */ - for (port = portlist; port != NULL; port = port->next) + for (port = *portlistptr; port != NULL; port = port->next) if (port->tag != NULL) for (scanport = port->next; scanport != NULL; scanport = scanport->next) if (scanport->tag != NULL && strcmp(port->tag, scanport->tag) == 0) @@ -1331,7 +1324,7 @@ static int validate_inputs(int drivnum, const machine_config *config) } /* iterate over the results */ - for (port = portlist; port != NULL; port = port->next) + for (port = *portlistptr; port != NULL; port = port->next) for (field = port->fieldlist; field != NULL; field = field->next) { int strindex = 0; @@ -1391,12 +1384,11 @@ static int validate_inputs(int drivnum, const machine_config *config) } #ifdef MESS - if (mess_validate_input_ports(drivnum, config, portlist)) + if (mess_validate_input_ports(drivnum, config, *portlistptr)) error = TRUE; #endif /* MESS */ /* free the config */ - input_port_config_free(portlist); return error; } @@ -1575,6 +1567,7 @@ int mame_validitychecks(const game_driver *curdriver) for (drivnum = 0; drivers[drivnum]; drivnum++) { const game_driver *driver = drivers[drivnum]; + const input_port_config *portlist = NULL; machine_config *config; region_info rgninfo; @@ -1600,9 +1593,14 @@ int mame_validitychecks(const game_driver *curdriver) error = validate_roms(drivnum, config, &rgninfo) || error; rom_checks += osd_profiling_ticks(); + /* validate input ports */ + input_checks -= osd_profiling_ticks(); + error = validate_inputs(drivnum, config, &portlist) || error; + input_checks += osd_profiling_ticks(); + /* validate the CPU information */ cpu_checks -= osd_profiling_ticks(); - error = validate_cpu(drivnum, config, &rgninfo) || error; + error = validate_cpu(drivnum, config, portlist, &rgninfo) || error; cpu_checks += osd_profiling_ticks(); /* validate the display */ @@ -1615,11 +1613,6 @@ int mame_validitychecks(const game_driver *curdriver) error = validate_gfx(drivnum, config, &rgninfo) || error; gfx_checks += osd_profiling_ticks(); - /* validate input ports */ - input_checks -= osd_profiling_ticks(); - error = validate_inputs(drivnum, config) || error; - input_checks += osd_profiling_ticks(); - /* validate sounds and speakers */ sound_checks -= osd_profiling_ticks(); error = validate_sound(drivnum, config) || error; @@ -1630,6 +1623,8 @@ int mame_validitychecks(const game_driver *curdriver) error = validate_devices(drivnum, config) || error; device_checks += osd_profiling_ticks(); + if (portlist != NULL) + input_port_config_free(portlist); machine_config_free(config); } diff --git a/src/mame/drivers/8080bw.c b/src/mame/drivers/8080bw.c index ab00d8cb653..eea90f2f6e8 100644 --- a/src/mame/drivers/8080bw.c +++ b/src/mame/drivers/8080bw.c @@ -119,6 +119,9 @@ static INPUT_PORTS_START( sicv ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_BIT( 0x70, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(invaders_in1_control_r, NULL) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) + + PORT_START("IN2") /* referenced by invaders_io_map, used in several drivers; this is fairly hacky */ + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("DSW0") PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:1,2") @@ -478,6 +481,9 @@ static INPUT_PORTS_START( spclaser ) PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) //PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2) /* This is not 2 Player ??? */ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) + + PORT_START("IN2") /* referenced by invaders_io_map, used in several drivers; this is fairly hacky */ + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_MODIFY("DSW0") PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x00, "SW1:1" ) diff --git a/src/mame/drivers/bloodbro.c b/src/mame/drivers/bloodbro.c index 2c26c9f6bc9..a12b3d46ad0 100644 --- a/src/mame/drivers/bloodbro.c +++ b/src/mame/drivers/bloodbro.c @@ -208,7 +208,7 @@ ADDRESS_MAP_END PORT_DIPSETTING( 0x0020, DEF_STR( Normal ) ) \ PORT_DIPSETTING( 0x0000, "x2" ) -static INPUT_PORTS_START( weststry ) +static INPUT_PORTS_START( weststry_base ) PORT_START("DSW") BLOODBRO_COINAGE /* SW1:7,8 is listed as "ROM change option", "optional" @@ -281,8 +281,17 @@ static INPUT_PORTS_START( weststry ) PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN ) INPUT_PORTS_END + +static INPUT_PORTS_START( weststry ) + PORT_INCLUDE( weststry_base ) + + PORT_START("COIN") /* referenced by seibu sound board */ + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) +INPUT_PORTS_END + + static INPUT_PORTS_START( bloodbro ) - PORT_INCLUDE( weststry ) + PORT_INCLUDE( weststry_base ) PORT_MODIFY("IN1") PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START1 ) diff --git a/src/mame/drivers/cps1.c b/src/mame/drivers/cps1.c index 1cf23554299..f120ef22a48 100644 --- a/src/mame/drivers/cps1.c +++ b/src/mame/drivers/cps1.c @@ -2892,6 +2892,9 @@ static INPUT_PORTS_START( wof ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 ) + + PORT_START("IN3") /* Player 4 - not used */ + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END /* Needs further checking */ @@ -2945,6 +2948,9 @@ static INPUT_PORTS_START( dino ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 ) + + PORT_START("IN3") /* Player 4 - not used */ + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END /* Needs further checking */ @@ -2988,6 +2994,12 @@ static INPUT_PORTS_START( punisher ) PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("IN2") /* Player 3 - not used */ + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) + + PORT_START("IN3") /* Player 4 - not used */ + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END /* Needs further checking */ diff --git a/src/mame/drivers/kaneko16.c b/src/mame/drivers/kaneko16.c index ef062589d07..47337df9c5c 100644 --- a/src/mame/drivers/kaneko16.c +++ b/src/mame/drivers/kaneko16.c @@ -875,7 +875,7 @@ ADDRESS_MAP_END ***************************************************************************/ static INPUT_PORTS_START( bakubrkr ) - PORT_START("DSW_P1") /* e00000.w */ + PORT_START("P1") /* e00000.w */ PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:1") PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) diff --git a/src/mame/drivers/m90.c b/src/mame/drivers/m90.c index c31cc861b3e..49fdfa00219 100644 --- a/src/mame/drivers/m90.c +++ b/src/mame/drivers/m90.c @@ -237,6 +237,9 @@ static INPUT_PORTS_START( hasamu ) IREM_COIN_MODE_1_NEW_HIGH /* Coin Mode 2 */ IREM_COIN_MODE_2_HIGH + + PORT_START("P3_P4") /* unused */ + PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END static INPUT_PORTS_START( dynablst ) @@ -388,6 +391,9 @@ static INPUT_PORTS_START( bombrman ) /* Does not appear to support 4 players or IREM_COIN_MODE_1_NEW_HIGH /* Coin Mode 2 */ IREM_COIN_MODE_2_HIGH + + PORT_START("P3_P4") /* unused */ + PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END static INPUT_PORTS_START( bbmanw ) @@ -495,6 +501,9 @@ static INPUT_PORTS_START( quizf1 ) IREM_COIN_MODE_1_NEW_HIGH /* Coin Mode 2 */ IREM_COIN_MODE_2_HIGH + + PORT_START("P3_P4") /* unused */ + PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END static INPUT_PORTS_START( matchit2 ) @@ -547,6 +556,9 @@ static INPUT_PORTS_START( matchit2 ) IREM_COIN_MODE_1_NEW_HIGH /* Coin Mode 2 */ IREM_COIN_MODE_2_HIGH + + PORT_START("P3_P4") /* unused */ + PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END static INPUT_PORTS_START( shisen2 ) @@ -601,6 +613,9 @@ static INPUT_PORTS_START( shisen2 ) IREM_COIN_MODE_1_NEW_HIGH /* Coin Mode 2 */ IREM_COIN_MODE_2_HIGH + + PORT_START("P3_P4") /* unused */ + PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END static INPUT_PORTS_START( riskchal ) @@ -648,6 +663,9 @@ static INPUT_PORTS_START( riskchal ) IREM_COIN_MODE_1_NEW_HIGH /* Coin Mode 2 */ IREM_COIN_MODE_2_HIGH + + PORT_START("P3_P4") /* unused */ + PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END /*****************************************************************************/ diff --git a/src/mame/drivers/megaplay.c b/src/mame/drivers/megaplay.c index 9cb9296143d..d00b2984ce4 100644 --- a/src/mame/drivers/megaplay.c +++ b/src/mame/drivers/megaplay.c @@ -219,12 +219,26 @@ static INPUT_PORTS_START ( megaplay ) PORT_DIPSETTING( 0x20, "1 coin/1 credit - 4 coins/5 credits" ) PORT_DIPSETTING( 0x10, "1 coin/1 credit - 2 coins/3 credits" ) PORT_DIPSETTING( 0x00, " 1 coin/1 credit" ) + + PORT_START("DSW1") /* DSW C (per game settings) */ + PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW3:1") + PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW3:2") + PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW3:3") + PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW3:4") + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) INPUT_PORTS_END static INPUT_PORTS_START ( mp_sonic ) PORT_INCLUDE( megaplay ) - PORT_START("DSW1") /* DSW C (per game settings) */ + PORT_MODIFY("DSW1") /* DSW C (per game settings) */ PORT_DIPNAME( 0x03, 0x01, "Initial Players" ) PORT_DIPLOCATION("SW3:1,2") PORT_DIPSETTING( 0x00, "4" ) PORT_DIPSETTING( 0x01, "3" ) @@ -245,7 +259,7 @@ INPUT_PORTS_END static INPUT_PORTS_START ( mp_gaxe2 ) PORT_INCLUDE( megaplay ) - PORT_START("DSW1") /* DSW C (per game settings) */ + PORT_MODIFY("DSW1") /* DSW C (per game settings) */ PORT_DIPNAME( 0x01, 0x01, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW3:1") PORT_DIPSETTING( 0x01, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) @@ -269,7 +283,7 @@ INPUT_PORTS_END static INPUT_PORTS_START ( mp_col3 ) PORT_INCLUDE( megaplay ) - PORT_START("DSW1") /* DSW C (per game settings) */ + PORT_MODIFY("DSW1") /* DSW C (per game settings) */ PORT_DIPNAME( 0x01, 0x01, DEF_STR( Language ) ) PORT_DIPLOCATION("SW3:1") PORT_DIPSETTING( 0x01, DEF_STR( English ) ) PORT_DIPSETTING( 0x00, DEF_STR( Japanese ) ) @@ -292,7 +306,7 @@ INPUT_PORTS_END static INPUT_PORTS_START ( mp_twc ) PORT_INCLUDE( megaplay ) - PORT_START("DSW1") /* DSW C (per game settings) */ + PORT_MODIFY("DSW1") /* DSW C (per game settings) */ PORT_DIPNAME( 0x01, 0x01, "Time" ) PORT_DIPLOCATION("SW3:1") PORT_DIPSETTING( 0x01, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x00, "Short" ) @@ -310,7 +324,7 @@ INPUT_PORTS_END static INPUT_PORTS_START ( mp_sor2 ) PORT_INCLUDE( megaplay ) - PORT_START("DSW1") /* DSW C (per game settings) */ + PORT_MODIFY("DSW1") /* DSW C (per game settings) */ PORT_DIPNAME( 0x03, 0x01, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW3:1,2") PORT_DIPSETTING( 0x00, "4" ) PORT_DIPSETTING( 0x01, "3" ) @@ -326,7 +340,7 @@ INPUT_PORTS_END static INPUT_PORTS_START ( mp_bio ) PORT_INCLUDE( megaplay ) - PORT_START("DSW1") /* DSW C (per game settings) */ + PORT_MODIFY("DSW1") /* DSW C (per game settings) */ PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW3:1,2") PORT_DIPSETTING( 0x00, "5" ) PORT_DIPSETTING( 0x01, "4" ) @@ -342,7 +356,7 @@ INPUT_PORTS_END static INPUT_PORTS_START ( mp_gslam ) PORT_INCLUDE( megaplay ) - PORT_START("DSW1") /* DSW C (per game settings) */ + PORT_MODIFY("DSW1") /* DSW C (per game settings) */ PORT_DIPNAME( 0x07, 0x04, DEF_STR ( Game_Time ) ) PORT_DIPLOCATION("SW3:1,2,3") PORT_DIPSETTING( 0x00, "5:00" ) PORT_DIPSETTING( 0x01, "4:30" ) @@ -360,7 +374,7 @@ INPUT_PORTS_END static INPUT_PORTS_START ( mp_mazin ) PORT_INCLUDE( megaplay ) - PORT_START("DSW1") /* DSW C (per game settings) */ + PORT_MODIFY("DSW1") /* DSW C (per game settings) */ PORT_DIPNAME( 0x01, 0x01, "Initial Player" ) PORT_DIPLOCATION("SW3:1") PORT_DIPSETTING( 0x01, "2" ) PORT_DIPSETTING( 0x00, "1" ) @@ -378,7 +392,7 @@ INPUT_PORTS_END static INPUT_PORTS_START ( mp_soni2 ) PORT_INCLUDE( megaplay ) - PORT_START("DSW1") /* DSW C (per game settings) */ + PORT_MODIFY("DSW1") /* DSW C (per game settings) */ PORT_DIPNAME( 0x03, 0x01, "Initial Players (Normal mode)" ) PORT_DIPLOCATION("SW3:1,2") PORT_DIPSETTING( 0x00, "4" ) PORT_DIPSETTING( 0x01, "3" ) @@ -394,7 +408,7 @@ INPUT_PORTS_END static INPUT_PORTS_START ( mp_shnb3 ) PORT_INCLUDE( megaplay ) - PORT_START("DSW1") /* DSW C (per game settings) */ + PORT_MODIFY("DSW1") /* DSW C (per game settings) */ PORT_DIPNAME( 0x03, 0x01, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW3:1,2") PORT_DIPSETTING( 0x00, "4" ) PORT_DIPSETTING( 0x01, "3" ) diff --git a/src/mame/drivers/mlanding.c b/src/mame/drivers/mlanding.c index cfe79b2a3c4..7a6b0e0b049 100644 --- a/src/mame/drivers/mlanding.c +++ b/src/mame/drivers/mlanding.c @@ -321,7 +321,7 @@ static INPUT_PORTS_START( mlanding ) PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0080, DEF_STR( On ) ) - PORT_START("STICX") /* Stick 1 (3) */ + PORT_START("STICKX") /* Stick 1 (3) */ PORT_BIT( 0xffff, 0x0000, IPT_AD_STICK_X ) PORT_MINMAX(0xffd8,0x28) PORT_SENSITIVITY(30) PORT_KEYDELTA(1) PORT_PLAYER(1) PORT_START("STICKY") /* Stick 2 (4) */ diff --git a/src/mame/drivers/neodrvr.c b/src/mame/drivers/neodrvr.c index 585c3c3c82d..8c76b688280 100644 --- a/src/mame/drivers/neodrvr.c +++ b/src/mame/drivers/neodrvr.c @@ -225,6 +225,9 @@ static INPUT_PORTS_START( vliner ) PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Stop/Double Up") PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Start/Collect") + PORT_START("IN1") + PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_START("IN2") PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNUSED ) diff --git a/src/mame/drivers/nmk16.c b/src/mame/drivers/nmk16.c index 802cad7ade3..3509d69a4d7 100644 --- a/src/mame/drivers/nmk16.c +++ b/src/mame/drivers/nmk16.c @@ -1548,6 +1548,9 @@ static INPUT_PORTS_START( mustang ) PORT_DIPSETTING( 0xc000, "3" ) PORT_DIPSETTING( 0x8000, "4" ) PORT_DIPSETTING( 0x0000, "5" ) + + PORT_START("COIN") /* referenced by seibu sound board */ + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) INPUT_PORTS_END static INPUT_PORTS_START( hachamf ) @@ -2019,6 +2022,9 @@ static INPUT_PORTS_START( tdragonb ) PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unused ) ) /* The manual states this dip is "Unused" */ PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + + PORT_START("COIN") /* referenced by seibu sound board */ + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) INPUT_PORTS_END static INPUT_PORTS_START( ssmissin ) diff --git a/src/mame/drivers/seta.c b/src/mame/drivers/seta.c index aa4f4ffa056..2269b32dbcf 100644 --- a/src/mame/drivers/seta.c +++ b/src/mame/drivers/seta.c @@ -6269,7 +6269,7 @@ static INPUT_PORTS_START( inttoote ) PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_START("IN0") + PORT_START("P1") PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SPECIAL ) // P1 coin out @@ -6287,7 +6287,7 @@ static INPUT_PORTS_START( inttoote ) PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_START("IN1") + PORT_START("P2") PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Door Open") PORT_TOGGLE PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Question Mark") diff --git a/src/mame/drivers/seta2.c b/src/mame/drivers/seta2.c index 0e4eace92d5..98c78258861 100644 --- a/src/mame/drivers/seta2.c +++ b/src/mame/drivers/seta2.c @@ -651,7 +651,7 @@ static ADDRESS_MAP_START( myangel2_readmem, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x600004, 0x600005) AM_READ_PORT("SYSTEM") // Coins AM_RANGE(0x600006, 0x600007) AM_READ(watchdog_reset16_r ) // Watchdog AM_RANGE(0x600300, 0x600301) AM_READ_PORT("DSW1") // DSW 1 - AM_RANGE(0x600302, 0x600303) AM_READ_PORT("DSW0") // DSW 2 + AM_RANGE(0x600302, 0x600303) AM_READ_PORT("DSW2") // DSW 2 AM_RANGE(0xb00000, 0xb03fff) AM_READ(seta_sound_word_r ) // Sound AM_RANGE(0xd00000, 0xd3ffff) AM_READ(SMH_RAM ) // Sprites AM_RANGE(0xd40000, 0xd4ffff) AM_READ(SMH_RAM ) // Palette diff --git a/src/mame/drivers/simpsons.c b/src/mame/drivers/simpsons.c index d354c58099d..22725929809 100644 --- a/src/mame/drivers/simpsons.c +++ b/src/mame/drivers/simpsons.c @@ -188,7 +188,7 @@ static INPUT_PORTS_START( simpsn2p ) // PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) //BUTTON3 Unused // PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 ) - PORT_START("COINS") /* IN4 */ + PORT_START("COIN") /* IN4 */ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) //COIN3 Unused diff --git a/src/mame/drivers/ssv.c b/src/mame/drivers/ssv.c index 682752d9e34..60819302d21 100644 --- a/src/mame/drivers/ssv.c +++ b/src/mame/drivers/ssv.c @@ -1442,6 +1442,9 @@ static INPUT_PORTS_START( dynagear ) PORT_DIPNAME( 0x0080, 0x0080, "Health" ) PORT_DIPLOCATION( "DSW2:8" ) PORT_DIPSETTING( 0x0000, "3 Hearts" ) PORT_DIPSETTING( 0x0080, "4 Hearts" ) + + PORT_START("ADD_BUTTONS") // IN5 - $500008 + PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNKNOWN ) INPUT_PORTS_END diff --git a/src/mame/drivers/subsino.c b/src/mame/drivers/subsino.c index a82056dd263..88df03b79a2 100644 --- a/src/mame/drivers/subsino.c +++ b/src/mame/drivers/subsino.c @@ -704,7 +704,7 @@ static DRIVER_INIT( smoto16 ) GAME( 1990, victor5, 0, victor5, 0, 0, ROT0, "Subsino", "Victor 5", GAME_NOT_WORKING ) GAME( 1990, victor21, 0, victor21, 0, 0, ROT0, "Subsino", "Victor 21", GAME_NOT_WORKING ) -GAME( 1993, sharkpy, 0, srider, 0, 0, ROT0, "Subsino", "Shark Party", GAME_NOT_WORKING ) -GAME( 1993, sharkpya, sharkpy, srider, 0, 0, ROT0, "Subsino", "Shark Party (alt)", GAME_NOT_WORKING ) +GAME( 1993, sharkpy, 0, srider, smoto, 0, ROT0, "Subsino", "Shark Party", GAME_NOT_WORKING ) +GAME( 1993, sharkpya, sharkpy, srider, smoto, 0, ROT0, "Subsino", "Shark Party (alt)", GAME_NOT_WORKING ) GAME( 1996, smoto20, 0, srider, smoto, smoto20, ROT0, "Subsino", "Super Rider (Italy, v2.0)", GAME_WRONG_COLORS ) GAME( 1996, smoto16, smoto20, srider, smoto, smoto16, ROT0, "Subsino", "Super Moto (Italy, v1.6)", GAME_WRONG_COLORS ) diff --git a/src/mame/drivers/toaplan1.c b/src/mame/drivers/toaplan1.c index 0c3809c5005..b16e89ea49f 100644 --- a/src/mame/drivers/toaplan1.c +++ b/src/mame/drivers/toaplan1.c @@ -455,6 +455,9 @@ static INPUT_PORTS_START( rallybik ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) TOAPLAN1_SYSTEM_INPUTS + + PORT_START("TJUMP") /* Territory Jumper Block (not present?) */ + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNKNOWN ) INPUT_PORTS_END static INPUT_PORTS_START( truxton ) diff --git a/src/mame/includes/mw8080bw.h b/src/mame/includes/mw8080bw.h index 28b62bd758b..d8222dba7b5 100644 --- a/src/mame/includes/mw8080bw.h +++ b/src/mame/includes/mw8080bw.h @@ -66,7 +66,7 @@ UINT8 invaders_is_flip_screen(void); void invaders_set_flip_screen(UINT8 data); int invaders_is_cabinet_cocktail(running_machine *machine); -#define BLUESHRK_SPEAR_PORT_TAG ("SPEAR") +#define BLUESHRK_SPEAR_PORT_TAG ("IN0") #define INVADERS_CONTROL_PORT_P1 \ PORT_START(INVADERS_P1_CONTROL_PORT_TAG) \