Added validity check to ensure that AM_READ_PORT() macros reference

valid ports. Fixed several cases where the check failed.
This commit is contained in:
Aaron Giles 2008-08-19 04:33:19 +00:00
parent e58907ac1a
commit 6c21097922
17 changed files with 117 additions and 48 deletions

View File

@ -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);
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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