diff --git a/src/mame/drivers/8080bw.c b/src/mame/drivers/8080bw.c index 9ff34588c31..f35f5e3e61b 100644 --- a/src/mame/drivers/8080bw.c +++ b/src/mame/drivers/8080bw.c @@ -1153,9 +1153,9 @@ MACHINE_CONFIG_END /* */ /*******************************************************/ -static CUSTOM_INPUT( sflush_80_r ) +CUSTOM_INPUT_MEMBER(_8080bw_state::sflush_80_r) { - return (field.machine().primary_screen->vpos() & 0x80) ? 1 : 0; + return (machine().primary_screen->vpos() & 0x80) ? 1 : 0; } static ADDRESS_MAP_START( sflush_map, AS_PROGRAM, 8, _8080bw_state ) @@ -1197,7 +1197,7 @@ static INPUT_PORTS_START( sflush ) PORT_DIPNAME( 0x40, 0x00, "Coinage Display" ) PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(sflush_80_r, NULL) // 128V? + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, _8080bw_state,sflush_80_r, NULL) // 128V? PORT_START("PADDLE") PORT_BIT( 0xff, 0x6a, IPT_PADDLE ) PORT_MINMAX(0x16,0xbf) PORT_SENSITIVITY(30) PORT_KEYDELTA(30) PORT_CENTERDELTA(0) diff --git a/src/mame/drivers/artmagic.c b/src/mame/drivers/artmagic.c index 8614dd0657a..8bc78a88ee3 100644 --- a/src/mame/drivers/artmagic.c +++ b/src/mame/drivers/artmagic.c @@ -383,10 +383,9 @@ static void stonebal_protection(running_machine &machine) } -static CUSTOM_INPUT( prot_r ) +CUSTOM_INPUT_MEMBER(artmagic_state::prot_r) { - artmagic_state *state = field.machine().driver_data(); - return state->m_prot_output_bit; + return m_prot_output_bit; } @@ -629,7 +628,7 @@ static INPUT_PORTS_START( cheesech ) PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("30000a") - PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(prot_r, NULL) /* protection data */ + PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, artmagic_state,prot_r, NULL) /* protection data */ PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* protection ready */ PORT_BIT( 0x00fc, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -821,7 +820,7 @@ static INPUT_PORTS_START( shtstar ) PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("3c000a") - PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(prot_r, NULL) /* protection data */ + PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, artmagic_state,prot_r, NULL) /* protection data */ PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* protection ready */ PORT_BIT( 0x00fc, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) diff --git a/src/mame/drivers/asteroid.c b/src/mame/drivers/asteroid.c index d42716a3827..e7993166c26 100644 --- a/src/mame/drivers/asteroid.c +++ b/src/mame/drivers/asteroid.c @@ -306,16 +306,16 @@ ADDRESS_MAP_END * *************************************/ -static CUSTOM_INPUT( clock_r ) +CUSTOM_INPUT_MEMBER(asteroid_state::clock_r) { - return (field.machine().device("maincpu")->total_cycles() & 0x100) ? 1 : 0; + return (machine().device("maincpu")->total_cycles() & 0x100) ? 1 : 0; } static INPUT_PORTS_START( asteroid ) PORT_START("IN0") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* Bit 2 is the 3 KHz source and Bit 3 the VG_HALT bit */ - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(clock_r, NULL) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, asteroid_state,clock_r, NULL) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM(avgdvg_done_r, NULL) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_CODE(KEYCODE_SPACE) PORT_CODE(JOYCODE_BUTTON3) /* hyperspace */ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_CODE(KEYCODE_LCONTROL) PORT_CODE(JOYCODE_BUTTON1) /* fire */ @@ -397,7 +397,7 @@ static INPUT_PORTS_START( asterock ) /* Bit 0 is VG_HALT and Bit 2 is the 3 KHz source */ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM(avgdvg_done_r, NULL) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(clock_r, NULL) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, asteroid_state,clock_r, NULL) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_CODE(KEYCODE_SPACE) PORT_CODE(JOYCODE_BUTTON3) /* hyperspace */ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_CODE(KEYCODE_LCONTROL) PORT_CODE(JOYCODE_BUTTON1) /* fire */ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Diagnostic Step") PORT_CODE(KEYCODE_F1) @@ -437,7 +437,7 @@ static INPUT_PORTS_START( astdelux ) PORT_START("IN0") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED ) /* According to schematics */ /* Bit 2 is the 3 KHz source and Bit 3 the VG_HALT bit */ - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(clock_r, NULL) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, asteroid_state,clock_r, NULL) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM(avgdvg_done_r, NULL) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_CODE(KEYCODE_SPACE) PORT_CODE(JOYCODE_BUTTON3) /* hyperspace */ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_CODE(KEYCODE_LCONTROL) PORT_CODE(JOYCODE_BUTTON1) /* fire */ @@ -525,7 +525,7 @@ static INPUT_PORTS_START( llander ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_TILT ) /* Of the rest, Bit 6 is the 3KHz source. 3,4 and 5 are unknown */ PORT_BIT( 0x38, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(clock_r, NULL) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, asteroid_state,clock_r, NULL) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Diagnostic Step") PORT_CODE(KEYCODE_F1) PORT_START("IN1") diff --git a/src/mame/drivers/astrocde.c b/src/mame/drivers/astrocde.c index 7e3d64a352c..e52318c6482 100644 --- a/src/mame/drivers/astrocde.c +++ b/src/mame/drivers/astrocde.c @@ -253,11 +253,10 @@ WRITE8_MEMBER(astrocde_state::seawolf2_sound_2_w)// Port 41 * *************************************/ -static CUSTOM_INPUT( ebases_trackball_r ) +CUSTOM_INPUT_MEMBER(astrocde_state::ebases_trackball_r) { - astrocde_state *state = field.machine().driver_data(); static const char *const names[] = { "TRACKX2", "TRACKY2", "TRACKX1", "TRACKY1" }; - return input_port_read(field.machine(), names[state->m_input_select]); + return input_port_read(machine(), names[m_input_select]); } @@ -480,11 +479,10 @@ READ8_MEMBER(astrocde_state::demndrgn_io_r) } -static CUSTOM_INPUT( demndragn_joystick_r ) +CUSTOM_INPUT_MEMBER(astrocde_state::demndragn_joystick_r) { - astrocde_state *state = field.machine().driver_data(); static const char *const names[] = { "MOVEX", "MOVEY" }; - return input_port_read(field.machine(), names[state->m_input_select]); + return input_port_read(machine(), names[m_input_select]); } @@ -818,7 +816,7 @@ static INPUT_PORTS_START( ebases ) PORT_DIPUNUSED_DIPLOC( 0x80, 0x00, "S1:8" ) PORT_START("P4HANDLE") - PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(ebases_trackball_r, NULL) + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, astrocde_state,ebases_trackball_r, NULL) PORT_START("TRACKX1") PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_RESET @@ -1144,7 +1142,7 @@ static INPUT_PORTS_START( demndrgn ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("P2HANDLE") - PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM(demndragn_joystick_r, NULL) + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM_MEMBER(DEVICE_SELF, astrocde_state,demndragn_joystick_r, NULL) PORT_START("P3HANDLE") PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) diff --git a/src/mame/drivers/astrof.c b/src/mame/drivers/astrof.c index fcf83b41d87..b76690e9def 100644 --- a/src/mame/drivers/astrof.c +++ b/src/mame/drivers/astrof.c @@ -120,41 +120,40 @@ static INPUT_CHANGED( service_coin_inserted ) } -static CUSTOM_INPUT( astrof_p1_controls_r ) +CUSTOM_INPUT_MEMBER(astrof_state::astrof_p1_controls_r) { - return input_port_read(field.machine(), "P1"); + return input_port_read(machine(), "P1"); } -static CUSTOM_INPUT( astrof_p2_controls_r ) +CUSTOM_INPUT_MEMBER(astrof_state::astrof_p2_controls_r) { UINT32 ret; /* on an upright cabinet, a single set of controls is connected to both sets of pins on the edge connector */ - if (input_port_read(field.machine(), "CAB")) - ret = input_port_read(field.machine(), "P2"); + if (input_port_read(machine(), "CAB")) + ret = input_port_read(machine(), "P2"); else - ret = input_port_read(field.machine(), "P1"); + ret = input_port_read(machine(), "P1"); return ret; } -static CUSTOM_INPUT( tomahawk_controls_r ) +CUSTOM_INPUT_MEMBER(astrof_state::tomahawk_controls_r) { UINT32 ret; - astrof_state *state = field.machine().driver_data(); /* on a cocktail cabinet, two sets of controls are multiplexed on a single set of inputs (not verified on pcb) */ - if (state->m_flipscreen) - ret = input_port_read(field.machine(), "P2"); + if (m_flipscreen) + ret = input_port_read(machine(), "P2"); else - ret = input_port_read(field.machine(), "P1"); + ret = input_port_read(machine(), "P1"); return ret; } @@ -659,8 +658,8 @@ static INPUT_PORTS_START( astrof ) PORT_START("IN") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x1c, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(astrof_p1_controls_r, NULL) - PORT_BIT( 0xe0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(astrof_p2_controls_r, NULL) + PORT_BIT( 0x1c, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, astrof_state,astrof_p1_controls_r, NULL) + PORT_BIT( 0xe0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, astrof_state,astrof_p2_controls_r, NULL) PORT_START("P1") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY @@ -714,8 +713,8 @@ static INPUT_PORTS_START( abattle ) PORT_START("IN") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 ) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x1c, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(astrof_p1_controls_r, NULL) - PORT_BIT( 0xe0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(astrof_p2_controls_r, NULL) + PORT_BIT( 0x1c, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, astrof_state,astrof_p1_controls_r, NULL) + PORT_BIT( 0xe0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, astrof_state,astrof_p2_controls_r, NULL) PORT_START("P1") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY @@ -769,8 +768,8 @@ static INPUT_PORTS_START( spfghmk2 ) PORT_START("IN") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x1c, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(astrof_p1_controls_r, NULL) - PORT_BIT( 0xe0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(astrof_p2_controls_r, NULL) + PORT_BIT( 0x1c, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, astrof_state,astrof_p1_controls_r, NULL) + PORT_BIT( 0xe0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, astrof_state,astrof_p2_controls_r, NULL) PORT_START("P1") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY @@ -820,8 +819,8 @@ static INPUT_PORTS_START( spfghmk22 ) PORT_START("IN") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x1c, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(astrof_p1_controls_r, NULL) - PORT_BIT( 0xe0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(astrof_p2_controls_r, NULL) + PORT_BIT( 0x1c, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, astrof_state,astrof_p1_controls_r, NULL) + PORT_BIT( 0xe0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, astrof_state,astrof_p2_controls_r, NULL) PORT_START("P1") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY @@ -874,7 +873,7 @@ static INPUT_PORTS_START( tomahawk ) PORT_INCLUDE( astrof_common ) PORT_START("IN") - PORT_BIT( 0x1f, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(tomahawk_controls_r, NULL) + PORT_BIT( 0x1f, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, astrof_state,tomahawk_controls_r, NULL) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) diff --git a/src/mame/drivers/battlex.c b/src/mame/drivers/battlex.c index fa4254ebf2a..e1a0593166b 100644 --- a/src/mame/drivers/battlex.c +++ b/src/mame/drivers/battlex.c @@ -55,14 +55,13 @@ static INTERRUPT_GEN( battlex_interrupt ) device_set_input_line(device, 0, ASSERT_LINE); } -static CUSTOM_INPUT( battlex_in0_b4_r ) +CUSTOM_INPUT_MEMBER(battlex_state::battlex_in0_b4_r) { - battlex_state *state = field.machine().driver_data(); - UINT32 ret = state->m_in0_b4; - if (state->m_in0_b4) + UINT32 ret = m_in0_b4; + if (m_in0_b4) { - cputag_set_input_line(field.machine(), "maincpu", 0, CLEAR_LINE); - state->m_in0_b4 = 0; + cputag_set_input_line(machine(), "maincpu", 0, CLEAR_LINE); + m_in0_b4 = 0; } return ret; @@ -119,7 +118,7 @@ static INPUT_PORTS_START( battlex ) PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(battlex_in0_b4_r, NULL) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, battlex_state,battlex_in0_b4_r, NULL) PORT_DIPNAME( 0x20, 0x20, DEF_STR( Cabinet ) ) PORT_DIPSETTING( 0x20, DEF_STR( Upright ) ) PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) diff --git a/src/mame/drivers/bzone.c b/src/mame/drivers/bzone.c index f61594d479e..a5f2a462670 100644 --- a/src/mame/drivers/bzone.c +++ b/src/mame/drivers/bzone.c @@ -256,9 +256,9 @@ static INTERRUPT_GEN( bzone_interrupt ) * *************************************/ -static CUSTOM_INPUT( clock_r ) +CUSTOM_INPUT_MEMBER(bzone_state::clock_r) { - return (field.machine().device("maincpu")->total_cycles() & 0x100) ? 1 : 0; + return (machine().device("maincpu")->total_cycles() & 0x100) ? 1 : 0; } @@ -359,7 +359,7 @@ ADDRESS_MAP_END /* per default (busy vector processor). */\ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(avgdvg_done_r, NULL)\ /* bit 7 is tied to a 3kHz clock */\ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(clock_r, NULL) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, bzone_state,clock_r, NULL) #define BZONEDSW0\ diff --git a/src/mame/drivers/cave.c b/src/mame/drivers/cave.c index fed75190048..1820e113ea7 100644 --- a/src/mame/drivers/cave.c +++ b/src/mame/drivers/cave.c @@ -696,10 +696,9 @@ static WRITE16_DEVICE_HANDLER( korokoro_eeprom_msb_w ) } } -static CUSTOM_INPUT( korokoro_hopper_r ) +CUSTOM_INPUT_MEMBER(cave_state::korokoro_hopper_r) { - cave_state *state = field.machine().driver_data(); - return state->m_hopper ? 1 : 0; + return m_hopper ? 1 : 0; } @@ -933,10 +932,9 @@ WRITE16_MEMBER(cave_state::tjumpman_leds_w) // popmessage("led %04X", data); } -static CUSTOM_INPUT( tjumpman_hopper_r ) +CUSTOM_INPUT_MEMBER(cave_state::tjumpman_hopper_r) { - cave_state *state = field.machine().driver_data(); - return (state->m_hopper && !(field.machine().primary_screen->frame_number() % 10)) ? 0 : 1; + return (m_hopper && !(machine().primary_screen->frame_number() % 10)) ? 0 : 1; } static ADDRESS_MAP_START( tjumpman_map, AS_PROGRAM, 16, cave_state ) @@ -1477,7 +1475,7 @@ static INPUT_PORTS_START( korokoro ) PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_SERVICE2 ) // service medal out? PORT_SERVICE( 0x2000, IP_ACTIVE_LOW ) PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SERVICE1 ) // service coin - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM(korokoro_hopper_r, NULL) // motor / hopper status ??? + PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, cave_state,korokoro_hopper_r, NULL) // motor / hopper status ??? PORT_START("IN1") PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN ) @@ -1508,7 +1506,7 @@ static INPUT_PORTS_START( tjumpman ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME( DEF_STR( Yes ) ) PORT_CODE(KEYCODE_Y) // suru ("do") PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME( "1 Bet" ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM(tjumpman_hopper_r, NULL) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, cave_state,tjumpman_hopper_r, NULL) PORT_START("IN1") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) @@ -1533,7 +1531,7 @@ static INPUT_PORTS_START( pacslot ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME( "Pac-Man" ) PORT_CODE(KEYCODE_Y) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME( "Bet" ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM(tjumpman_hopper_r, NULL) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, cave_state,tjumpman_hopper_r, NULL) PORT_START("IN1") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) diff --git a/src/mame/drivers/ccastles.c b/src/mame/drivers/ccastles.c index bf446250410..ef5feb36039 100644 --- a/src/mame/drivers/ccastles.c +++ b/src/mame/drivers/ccastles.c @@ -171,11 +171,10 @@ static TIMER_CALLBACK( clock_irq ) } -static CUSTOM_INPUT( get_vblank ) +CUSTOM_INPUT_MEMBER(ccastles_state::get_vblank) { - ccastles_state *state = field.machine().driver_data(); - int scanline = field.machine().primary_screen->vpos(); - return state->m_syncprom[scanline & 0xff] & 1; + int scanline = machine().primary_screen->vpos(); + return m_syncprom[scanline & 0xff] & 1; } @@ -366,7 +365,7 @@ static INPUT_PORTS_START( ccastles ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_TILT ) PORT_SERVICE( 0x10, IP_ACTIVE_LOW ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(get_vblank, NULL) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, ccastles_state,get_vblank, NULL) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) /* 1p Jump, non-cocktail start1 */ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) /* 2p Jump, non-cocktail start2 */ diff --git a/src/mame/drivers/cd32.c b/src/mame/drivers/cd32.c index c4e8057a398..aed10f3811c 100644 --- a/src/mame/drivers/cd32.c +++ b/src/mame/drivers/cd32.c @@ -229,10 +229,9 @@ static UINT16 handle_joystick_potgor(running_machine &machine, UINT16 potgor) return potgor; } -static CUSTOM_INPUT(cubo_input) +CUSTOM_INPUT_MEMBER(cd32_state::cubo_input) { - cd32_state *state = field.machine().driver_data(); - return handle_joystick_potgor(field.machine(), state->m_potgo_value) >> 10; + return handle_joystick_potgor(machine(), m_potgo_value) >> 10; } static INPUT_PORTS_START( cd32 ) @@ -251,7 +250,7 @@ static INPUT_PORTS_START( cd32 ) PORT_BIT( 0xfcfc, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_START("POTGO") - PORT_BIT( 0x4400, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(cubo_input, 0) + PORT_BIT( 0x4400, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, cd32_state,cubo_input, 0) PORT_BIT( 0xbbff, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_START("P1JOY") diff --git a/src/mame/drivers/champbas.c b/src/mame/drivers/champbas.c index 71285e63cc6..d681e301579 100644 --- a/src/mame/drivers/champbas.c +++ b/src/mame/drivers/champbas.c @@ -120,10 +120,9 @@ WRITE8_MEMBER(champbas_state::champbas_watchdog_reset_w) m_watchdog_count = 0; } -static CUSTOM_INPUT( champbas_watchdog_bit2 ) +CUSTOM_INPUT_MEMBER(champbas_state::champbas_watchdog_bit2) { - champbas_state *state = field.machine().driver_data(); - return BIT(state->m_watchdog_count, 2); + return BIT(m_watchdog_count, 2); } @@ -402,7 +401,7 @@ static INPUT_PORTS_START( talbot ) PORT_DIPNAME( 0x40, 0x00, DEF_STR( Cabinet ) ) PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) PORT_DIPSETTING( 0x40, DEF_STR( Cocktail ) ) - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(champbas_watchdog_bit2, NULL) // bit 2 of the watchdog counter + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, champbas_state,champbas_watchdog_bit2, NULL) // bit 2 of the watchdog counter PORT_START("SYSTEM") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) @@ -449,7 +448,7 @@ static INPUT_PORTS_START( champbas ) PORT_DIPSETTING( 0x20, DEF_STR( Easy ) ) PORT_DIPSETTING( 0x00, DEF_STR( Hard )) PORT_DIPUNKNOWN( 0x40, 0x00 ) - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(champbas_watchdog_bit2, NULL) // bit 2 of the watchdog counter + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, champbas_state,champbas_watchdog_bit2, NULL) // bit 2 of the watchdog counter INPUT_PORTS_END static INPUT_PORTS_START( exctsccr ) @@ -475,7 +474,7 @@ static INPUT_PORTS_START( exctsccr ) PORT_DIPSETTING( 0x00, "2 Min." ) PORT_DIPSETTING( 0x60, "3 Min." ) PORT_DIPSETTING( 0x40, "4 Min." ) - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(champbas_watchdog_bit2, NULL) // bit 2 of the watchdog counter + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, champbas_state,champbas_watchdog_bit2, NULL) // bit 2 of the watchdog counter INPUT_PORTS_END diff --git a/src/mame/drivers/cidelsa.c b/src/mame/drivers/cidelsa.c index a39affe7507..78a951175a4 100644 --- a/src/mame/drivers/cidelsa.c +++ b/src/mame/drivers/cidelsa.c @@ -270,11 +270,10 @@ ADDRESS_MAP_END /* Input Ports */ -static CUSTOM_INPUT( cdp1869_pcb_r ) +CUSTOM_INPUT_MEMBER(cidelsa_state::cdp1869_pcb_r) { - cidelsa_state *state = field.machine().driver_data(); - return state->m_cdp1869_pcb; + return m_cdp1869_pcb; } static INPUT_CHANGED( ef_w ) @@ -291,7 +290,7 @@ static INPUT_PORTS_START( destryer ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) // LF PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) // FR PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(cdp1869_pcb_r, NULL) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, cidelsa_state,cdp1869_pcb_r, NULL) PORT_START("IN1") PORT_DIPNAME( 0x03, 0x02, DEF_STR( Difficulty ) ) @@ -331,7 +330,7 @@ static INPUT_PORTS_START( altair ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) // LF PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) // FR PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(cdp1869_pcb_r, NULL) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, cidelsa_state,cdp1869_pcb_r, NULL) PORT_START("IN1") PORT_DIPNAME( 0x03, 0x02, DEF_STR( Difficulty ) ) @@ -381,7 +380,7 @@ static INPUT_PORTS_START( draco ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(cdp1869_pcb_r, NULL) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, cidelsa_state,cdp1869_pcb_r, NULL) PORT_START("IN1") PORT_DIPNAME( 0x03, 0x02, DEF_STR( Difficulty ) ) diff --git a/src/mame/drivers/cloud9.c b/src/mame/drivers/cloud9.c index 8d3c670f8ac..395e0d8645b 100644 --- a/src/mame/drivers/cloud9.c +++ b/src/mame/drivers/cloud9.c @@ -140,11 +140,10 @@ static TIMER_CALLBACK( clock_irq ) } -static CUSTOM_INPUT( get_vblank ) +CUSTOM_INPUT_MEMBER(cloud9_state::get_vblank) { - cloud9_state *state = field.machine().driver_data(); - int scanline = field.machine().primary_screen->vpos(); - return (~state->m_syncprom[scanline & 0xff] >> 1) & 1; + int scanline = machine().primary_screen->vpos(); + return (~m_syncprom[scanline & 0xff] >> 1) & 1; } @@ -302,7 +301,7 @@ static INPUT_PORTS_START( cloud9 ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM(get_vblank, NULL) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, cloud9_state,get_vblank, NULL) PORT_START("IN1") PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNKNOWN ) @@ -343,7 +342,7 @@ static INPUT_PORTS_START( firebeas ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM(get_vblank, NULL) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, cloud9_state,get_vblank, NULL) PORT_START("IN1") PORT_BIT( 0x07, IP_ACTIVE_LOW, IPT_UNKNOWN ) diff --git a/src/mame/drivers/cop01.c b/src/mame/drivers/cop01.c index 30636d49eea..809e44a52bd 100644 --- a/src/mame/drivers/cop01.c +++ b/src/mame/drivers/cop01.c @@ -95,10 +95,10 @@ READ8_MEMBER(cop01_state::cop01_sound_command_r) } -static CUSTOM_INPUT( mightguy_area_r ) +CUSTOM_INPUT_MEMBER(cop01_state::mightguy_area_r) { int bit_mask = (FPTR)param; - return (input_port_read(field.machine(), "FAKE") & bit_mask) ? 0x01 : 0x00; + return (input_port_read(machine(), "FAKE") & bit_mask) ? 0x01 : 0x00; } WRITE8_MEMBER(cop01_state::cop01_irq_ack_w) @@ -326,7 +326,7 @@ static INPUT_PORTS_START( mightguy ) PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_SERVICE( 0x40, IP_ACTIVE_LOW ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(mightguy_area_r, (void *)0x04) // "Start Area" - see fake Dip Switch + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, cop01_state,mightguy_area_r, (void *)0x04) // "Start Area" - see fake Dip Switch PORT_START("DSW2") PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) ) @@ -344,8 +344,8 @@ static INPUT_PORTS_START( mightguy ) PORT_DIPSETTING( 0x20, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x10, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x00, "Invincibility") - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(mightguy_area_r, (void *)0x01) // "Start Area" - see fake Dip Switch - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(mightguy_area_r, (void *)0x02) // "Start Area" - see fake Dip Switch + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, cop01_state,mightguy_area_r, (void *)0x01) // "Start Area" - see fake Dip Switch + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, cop01_state,mightguy_area_r, (void *)0x02) // "Start Area" - see fake Dip Switch PORT_START("FAKE") /* FAKE Dip Switch */ PORT_DIPNAME( 0x07, 0x07, "Starting Area" ) diff --git a/src/mame/drivers/crbaloon.c b/src/mame/drivers/crbaloon.c index 4434aace409..434763a97c8 100644 --- a/src/mame/drivers/crbaloon.c +++ b/src/mame/drivers/crbaloon.c @@ -67,18 +67,17 @@ WRITE8_MEMBER(crbaloon_state::pc3092_w) } -static CUSTOM_INPUT( pc3092_r ) +CUSTOM_INPUT_MEMBER(crbaloon_state::pc3092_r) { - crbaloon_state *state = field.machine().driver_data(); UINT32 ret; /* enable coin & start input? Wild guess!!! */ - if (state->m_pc3092_data[1] & 0x02) - ret = input_port_read(field.machine(), "PC3092"); + if (m_pc3092_data[1] & 0x02) + ret = input_port_read(machine(), "PC3092"); else ret = 0x00; - if (LOG_PC3092) logerror("%s: read PC3092 = 0x%02x\n", field.machine().describe_context(), ret); + if (LOG_PC3092) logerror("%s: read PC3092 = 0x%02x\n", machine().describe_context(), ret); return ret; } @@ -296,7 +295,7 @@ static INPUT_PORTS_START( crbaloon ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Name Reset") PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(pc3092_r, NULL) + PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, crbaloon_state,pc3092_r, NULL) PORT_START("PC3092") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) diff --git a/src/mame/drivers/crshrace.c b/src/mame/drivers/crshrace.c index 9a1daf3825b..080f4cd2de6 100644 --- a/src/mame/drivers/crshrace.c +++ b/src/mame/drivers/crshrace.c @@ -170,10 +170,9 @@ WRITE16_MEMBER(crshrace_state::sound_command_w) } } -static CUSTOM_INPUT( country_sndpending_r ) +CUSTOM_INPUT_MEMBER(crshrace_state::country_sndpending_r) { - crshrace_state *state = field.machine().driver_data(); - return state->m_pending_command; + return m_pending_command; } WRITE8_MEMBER(crshrace_state::pending_command_clear_w) @@ -364,7 +363,7 @@ static INPUT_PORTS_START( crshrace ) PORT_DIPSETTING( 0x0e00, "5" ) PORT_DIPSETTING( 0x0f00, "5" ) */ - PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(country_sndpending_r, NULL) /* pending sound command */ + PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, crshrace_state,country_sndpending_r, NULL) /* pending sound command */ INPUT_PORTS_END /* Same as 'crshrace', but additional "unknown" Dip Switch (see notes) */ diff --git a/src/mame/drivers/dcheese.c b/src/mame/drivers/dcheese.c index 7d42473cc6d..06b7566ed4b 100644 --- a/src/mame/drivers/dcheese.c +++ b/src/mame/drivers/dcheese.c @@ -117,10 +117,9 @@ static MACHINE_START( dcheese ) * *************************************/ -static CUSTOM_INPUT( sound_latch_state_r ) +CUSTOM_INPUT_MEMBER(dcheese_state::sound_latch_state_r) { - dcheese_state *state = field.machine().driver_data(); - return state->m_soundlatch_full; + return m_soundlatch_full; } @@ -273,7 +272,7 @@ static INPUT_PORTS_START( dcheese ) PORT_BIT( 0x001f, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* low 5 bits read as a unit */ PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("ticket", ticket_dispenser_line_r) PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* sound->main buffer status (0=empty) */ - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM(sound_latch_state_r, NULL) + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, dcheese_state,sound_latch_state_r, NULL) PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -322,7 +321,7 @@ static INPUT_PORTS_START( lottof2 ) PORT_BIT( 0x001f, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* low 5 bits read as a unit */ PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("ticket", ticket_dispenser_line_r) PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* sound->main buffer status (0=empty) */ - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM(sound_latch_state_r, NULL) + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, dcheese_state,sound_latch_state_r, NULL) PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -369,7 +368,7 @@ static INPUT_PORTS_START( fredmem ) PORT_BIT( 0x001f, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* low 5 bits read as a unit */ PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("ticket", ticket_dispenser_line_r) PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* sound->main buffer status (0=empty) */ - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM(sound_latch_state_r, NULL) + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, dcheese_state,sound_latch_state_r, NULL) PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNUSED ) diff --git a/src/mame/drivers/ddragon.c b/src/mame/drivers/ddragon.c index 4d597c87162..a5c71699c19 100644 --- a/src/mame/drivers/ddragon.c +++ b/src/mame/drivers/ddragon.c @@ -355,10 +355,9 @@ static void irq_handler( device_t *device, int irq ) * *************************************/ -static CUSTOM_INPUT( sub_cpu_busy ) +CUSTOM_INPUT_MEMBER(ddragon_state::sub_cpu_busy) { - ddragon_state *state = field.machine().driver_data(); - return state->m_dd_sub_cpu_busy; + return m_dd_sub_cpu_busy; } @@ -707,7 +706,7 @@ static INPUT_PORTS_START( ddragon ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_VBLANK ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(sub_cpu_busy, NULL) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, ddragon_state,sub_cpu_busy, NULL) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) diff --git a/src/mame/drivers/equites.c b/src/mame/drivers/equites.c index 3a3a186fe47..52bc947f0ad 100644 --- a/src/mame/drivers/equites.c +++ b/src/mame/drivers/equites.c @@ -652,10 +652,9 @@ READ16_MEMBER(equites_state::hvoltage_debug_r) #endif -static CUSTOM_INPUT( gekisou_unknown_status ) +CUSTOM_INPUT_MEMBER(equites_state::gekisou_unknown_status) { - equites_state *state = field.machine().driver_data(); - return state->m_unknown_bit; + return m_unknown_bit; } WRITE16_MEMBER(equites_state::gekisou_unknown_0_w) @@ -850,7 +849,7 @@ static INPUT_PORTS_START( gekisou ) PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(gekisou_unknown_status, NULL) + PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, equites_state,gekisou_unknown_status, NULL) /* this is actually a variable resistor */ PORT_START(FRQ_ADJUSTER_TAG) diff --git a/src/mame/drivers/exerion.c b/src/mame/drivers/exerion.c index b98eeb54f08..e7a345e508d 100644 --- a/src/mame/drivers/exerion.c +++ b/src/mame/drivers/exerion.c @@ -130,11 +130,10 @@ Stephh's notes (based on the games Z80 code and some tests) : *************************************/ /* Players inputs are muxed at 0xa000 */ -static CUSTOM_INPUT( exerion_controls_r ) +CUSTOM_INPUT_MEMBER(exerion_state::exerion_controls_r) { static const char *const inname[2] = { "P1", "P2" }; - exerion_state *state = field.machine().driver_data(); - return input_port_read(field.machine(), inname[state->m_cocktail_flip]) & 0x3f; + return input_port_read(machine(), inname[m_cocktail_flip]) & 0x3f; } @@ -234,7 +233,7 @@ ADDRESS_MAP_END /* verified from Z80 code */ static INPUT_PORTS_START( exerion ) PORT_START("IN0") - PORT_BIT( 0x3f, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(exerion_controls_r, (void *)0) + PORT_BIT( 0x3f, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, exerion_state,exerion_controls_r, (void *)0) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) diff --git a/src/mame/drivers/exidy.c b/src/mame/drivers/exidy.c index d52c0ddcaa4..4389ef63860 100644 --- a/src/mame/drivers/exidy.c +++ b/src/mame/drivers/exidy.c @@ -155,22 +155,21 @@ Fax 1982 6502 FXL, FLA * *************************************/ -static CUSTOM_INPUT( teetert_input_r ) +CUSTOM_INPUT_MEMBER(exidy_state::teetert_input_r) { - exidy_state *state = field.machine().driver_data(); - UINT8 dial = input_port_read(field.machine(), "DIAL"); + UINT8 dial = input_port_read(machine(), "DIAL"); int result = 0; - result = (dial != state->m_last_dial) << 4; + result = (dial != m_last_dial) << 4; if (result != 0) { - if (((dial - state->m_last_dial) & 0xff) < 0x80) + if (((dial - m_last_dial) & 0xff) < 0x80) { result |= 1; - state->m_last_dial++; + m_last_dial++; } else - state->m_last_dial--; + m_last_dial--; } return result; @@ -603,7 +602,7 @@ static INPUT_PORTS_START( teetert ) PORT_START("IN0") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x44, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(teetert_input_r, NULL) + PORT_BIT( 0x44, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, exidy_state,teetert_input_r, NULL) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) diff --git a/src/mame/drivers/exidy440.c b/src/mame/drivers/exidy440.c index 367ded21ee2..3adbdda73cb 100644 --- a/src/mame/drivers/exidy440.c +++ b/src/mame/drivers/exidy440.c @@ -267,24 +267,22 @@ static INPUT_CHANGED( coin_inserted ) * *************************************/ -static CUSTOM_INPUT( firq_beam_r ) +CUSTOM_INPUT_MEMBER(exidy440_state::firq_beam_r) { - exidy440_state *state = field.machine().driver_data(); - return state->m_firq_beam; + return m_firq_beam; } -static CUSTOM_INPUT( firq_vblank_r ) +CUSTOM_INPUT_MEMBER(exidy440_state::firq_vblank_r) { - exidy440_state *state = field.machine().driver_data(); - return state->m_firq_vblank; + return m_firq_vblank; } -static CUSTOM_INPUT( hitnmiss_button1_r ) +CUSTOM_INPUT_MEMBER(exidy440_state::hitnmiss_button1_r) { /* button 1 shows up in two bits */ - UINT32 button1 = input_port_read(field.machine(), "HITNMISS_BUTTON1"); + UINT32 button1 = input_port_read(machine(), "HITNMISS_BUTTON1"); return (button1 << 1) | button1; } @@ -532,8 +530,8 @@ static INPUT_PORTS_START( crossbow ) PORT_DIPSETTING( 0x30, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x10, DEF_STR( Hardest ) ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM(firq_beam_r, NULL) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM(firq_vblank_r, NULL) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, exidy440_state,firq_beam_r, NULL) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, exidy440_state,firq_vblank_r, NULL) PORT_START("IN1") /* audio board dips */ COINAGE @@ -573,8 +571,8 @@ static INPUT_PORTS_START( cheyenne ) PORT_DIPSETTING( 0x00, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x10, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x20, DEF_STR( Hardest ) ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(firq_beam_r, NULL) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(firq_vblank_r, NULL) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, exidy440_state,firq_beam_r, NULL) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, exidy440_state,firq_vblank_r, NULL) PORT_START("IN1") /* audio board dips */ COINAGE @@ -614,8 +612,8 @@ static INPUT_PORTS_START( combat ) PORT_DIPSETTING( 0x00, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x10, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x20, DEF_STR( Hardest ) ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(firq_beam_r, NULL) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(firq_vblank_r, NULL) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, exidy440_state,firq_beam_r, NULL) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, exidy440_state,firq_vblank_r, NULL) PORT_START("IN1") /* audio board dips */ COINAGE @@ -655,8 +653,8 @@ static INPUT_PORTS_START( catch22 ) PORT_DIPSETTING( 0x00, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x10, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x20, DEF_STR( Hardest ) ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(firq_beam_r, NULL) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(firq_vblank_r, NULL) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, exidy440_state,firq_beam_r, NULL) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, exidy440_state,firq_vblank_r, NULL) PORT_START("IN1") /* audio board dips */ COINAGE @@ -698,8 +696,8 @@ static INPUT_PORTS_START( cracksht ) PORT_DIPSETTING( 0x00, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x10, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x20, DEF_STR( Hardest ) ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(firq_beam_r, NULL) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(firq_vblank_r, NULL) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, exidy440_state,firq_beam_r, NULL) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, exidy440_state,firq_vblank_r, NULL) PORT_START("IN1") /* audio board dips */ COINAGE @@ -736,8 +734,8 @@ static INPUT_PORTS_START( claypign ) PORT_DIPSETTING( 0x00, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x10, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x20, DEF_STR( Hardest ) ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(firq_beam_r, NULL) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(firq_vblank_r, NULL) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, exidy440_state,firq_beam_r, NULL) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, exidy440_state,firq_vblank_r, NULL) PORT_START("IN1") /* audio board dips */ COINAGE @@ -778,8 +776,8 @@ static INPUT_PORTS_START( chiller ) PORT_DIPSETTING( 0x00, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x10, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x20, DEF_STR( Hardest ) ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(firq_beam_r, NULL) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(firq_vblank_r, NULL) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, exidy440_state,firq_beam_r, NULL) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, exidy440_state,firq_vblank_r, NULL) PORT_START("IN1") /* audio board dips */ COINAGE @@ -817,8 +815,8 @@ static INPUT_PORTS_START( topsecex ) PORT_DIPSETTING( 0x00, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x10, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x20, DEF_STR( Hardest ) ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(firq_beam_r, NULL) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(firq_vblank_r, NULL) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, exidy440_state,firq_beam_r, NULL) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, exidy440_state,firq_vblank_r, NULL) PORT_START("IN1") /* audio board dips */ COINAGE @@ -854,7 +852,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( hitnmiss ) PORT_START("IN0") /* player inputs and logic board dips */ - PORT_BIT( 0x03, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(hitnmiss_button1_r, NULL) + PORT_BIT( 0x03, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, exidy440_state,hitnmiss_button1_r, NULL) PORT_DIPNAME( 0x0c, 0x00, "Seconds" ) PORT_DIPSETTING( 0x04, "20" ) PORT_DIPSETTING( 0x00, "30" ) @@ -865,8 +863,8 @@ static INPUT_PORTS_START( hitnmiss ) PORT_DIPSETTING( 0x00, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x10, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x20, DEF_STR( Hardest ) ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(firq_beam_r, NULL) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(firq_vblank_r, NULL) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, exidy440_state,firq_beam_r, NULL) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, exidy440_state,firq_vblank_r, NULL) PORT_START("IN1") /* audio board dips */ COINAGE @@ -898,7 +896,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( whodunit ) PORT_START("IN0") /* player inputs and logic board dips */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(firq_vblank_r, NULL) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, exidy440_state,firq_vblank_r, NULL) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Lives ) ) PORT_DIPSETTING( 0x04, "2" ) @@ -910,8 +908,8 @@ static INPUT_PORTS_START( whodunit ) PORT_DIPSETTING( 0x00, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x10, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x20, DEF_STR( Hardest ) ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(firq_beam_r, NULL) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(firq_vblank_r, NULL) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, exidy440_state,firq_beam_r, NULL) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, exidy440_state,firq_vblank_r, NULL) PORT_START("IN1") /* audio board dips */ COINAGE @@ -949,8 +947,8 @@ static INPUT_PORTS_START( showdown ) PORT_DIPSETTING( 0x00, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x10, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x20, DEF_STR( Hardest ) ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(firq_beam_r, NULL) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(firq_vblank_r, NULL) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, exidy440_state,firq_beam_r, NULL) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, exidy440_state,firq_vblank_r, NULL) PORT_START("IN1") /* audio board dips */ COINAGE diff --git a/src/mame/drivers/fantland.c b/src/mame/drivers/fantland.c index f70914549d2..5b683c37a34 100644 --- a/src/mame/drivers/fantland.c +++ b/src/mame/drivers/fantland.c @@ -718,10 +718,10 @@ INPUT_PORTS_END Wheels Runner ***************************************************************************/ -static CUSTOM_INPUT( wheelrun_wheel_r ) +CUSTOM_INPUT_MEMBER(fantland_state::wheelrun_wheel_r) { int player = (FPTR)param; - int delta = input_port_read(field.machine(), player ? "WHEEL1" : "WHEEL0"); + int delta = input_port_read(machine(), player ? "WHEEL1" : "WHEEL0"); delta = (delta & 0x7f) - (delta & 0x80) + 4; if (delta > 7) delta = 7; @@ -737,7 +737,7 @@ static INPUT_PORTS_START( wheelrun ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x70, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(wheelrun_wheel_r, (void *)0) + PORT_BIT( 0x70, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, fantland_state,wheelrun_wheel_r, (void *)0) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("53001") /* 53001 */ @@ -745,7 +745,7 @@ static INPUT_PORTS_START( wheelrun ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x70, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(wheelrun_wheel_r, (void *)1) + PORT_BIT( 0x70, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, fantland_state,wheelrun_wheel_r, (void *)1) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("53002") /* 53002 */ diff --git a/src/mame/drivers/fgoal.c b/src/mame/drivers/fgoal.c index ddd2101b8ad..36af781ff3b 100644 --- a/src/mame/drivers/fgoal.c +++ b/src/mame/drivers/fgoal.c @@ -103,9 +103,9 @@ READ8_MEMBER(fgoal_state::fgoal_analog_r) } -static CUSTOM_INPUT( fgoal_80_r ) +CUSTOM_INPUT_MEMBER(fgoal_state::fgoal_80_r) { - UINT8 ret = (field.machine().primary_screen->vpos() & 0x80) ? 1 : 0; + UINT8 ret = (machine().primary_screen->vpos() & 0x80) ? 1 : 0; return ret; } @@ -257,7 +257,7 @@ static INPUT_PORTS_START( fgoal ) /* extra credit score changes depending on player's performance */ PORT_START("IN1") - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(fgoal_80_r, NULL) /* 128V */ + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, fgoal_state,fgoal_80_r, NULL) /* 128V */ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Cabinet )) PORT_DIPSETTING( 0x00, DEF_STR( Upright )) PORT_DIPSETTING( 0x40, DEF_STR( Cocktail )) diff --git a/src/mame/drivers/firetrk.c b/src/mame/drivers/firetrk.c index f9df3d7bb0d..6f0f50268db 100644 --- a/src/mame/drivers/firetrk.c +++ b/src/mame/drivers/firetrk.c @@ -195,54 +195,49 @@ READ8_MEMBER(firetrk_state::montecar_dip_r) } -static CUSTOM_INPUT( steer_dir_r ) +CUSTOM_INPUT_MEMBER(firetrk_state::steer_dir_r) { - firetrk_state *state = field.machine().driver_data(); - return state->m_steer_dir[(FPTR)param]; + return m_steer_dir[(FPTR)param]; } -static CUSTOM_INPUT( steer_flag_r ) +CUSTOM_INPUT_MEMBER(firetrk_state::steer_flag_r) { - firetrk_state *state = field.machine().driver_data(); - return state->m_steer_flag[(FPTR)param]; + return m_steer_flag[(FPTR)param]; } -static CUSTOM_INPUT( skid_r ) +CUSTOM_INPUT_MEMBER(firetrk_state::skid_r) { - firetrk_state *state = field.machine().driver_data(); UINT32 ret; int which = (FPTR)param; if (which != 2) - ret = state->m_skid[which]; + ret = m_skid[which]; else - ret = state->m_skid[0] | state->m_skid[1]; + ret = m_skid[0] | m_skid[1]; return ret; } -static CUSTOM_INPUT( crash_r ) +CUSTOM_INPUT_MEMBER(firetrk_state::crash_r) { - firetrk_state *state = field.machine().driver_data(); UINT32 ret; int which = (FPTR)param; if (which != 2) - ret = state->m_crash[which]; + ret = m_crash[which]; else - ret = state->m_crash[0] | state->m_crash[1]; + ret = m_crash[0] | m_crash[1]; return ret; } -static CUSTOM_INPUT( gear_r ) +CUSTOM_INPUT_MEMBER(firetrk_state::gear_r) { - firetrk_state *state = field.machine().driver_data(); - return (state->m_gear == (FPTR)param) ? 1 : 0; + return (m_gear == (FPTR)param) ? 1 : 0; } @@ -438,11 +433,11 @@ static INPUT_PORTS_START( firetrk ) PORT_START("BIT_0") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Gas") PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(steer_dir_r, (void *)0) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(steer_dir_r, (void *)1) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, firetrk_state,steer_dir_r, (void *)0) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, firetrk_state,steer_dir_r, (void *)1) PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Bell") PORT_PLAYER(2) PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_TILT ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(skid_r, (void *)2) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, firetrk_state,skid_r, (void *)2) PORT_DIPNAME( 0x80, 0x00, DEF_STR( Service_Mode ) ) PORT_CODE(KEYCODE_F2) PORT_TOGGLE PORT_CHANGED(service_mode_switch_changed, 0) PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x80, DEF_STR( On ) ) @@ -462,11 +457,11 @@ static INPUT_PORTS_START( firetrk ) PORT_START("BIT_7") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(steer_flag_r, (void *)0) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(steer_flag_r, (void *)1) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, firetrk_state,steer_flag_r, (void *)0) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, firetrk_state,steer_flag_r, (void *)1) PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(crash_r, (void *)2) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, firetrk_state,crash_r, (void *)2) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME("Diag Step") PORT_CODE(KEYCODE_F1) PORT_START("HORN") @@ -508,23 +503,23 @@ static INPUT_PORTS_START( superbug ) PORT_DIPSETTING( 0xc0, DEF_STR( German ) ) PORT_START("BIT_0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(gear_r, (void *)1) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, firetrk_state,gear_r, (void *)1) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Gas") - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(steer_dir_r, (void *)0) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, firetrk_state,steer_dir_r, (void *)0) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON7 ) PORT_NAME("Hiscore Reset") PORT_CODE(KEYCODE_H) PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_SERVICE( 0x20, IP_ACTIVE_HIGH ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(skid_r, (void *)0) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, firetrk_state,skid_r, (void *)0) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_TILT ) PORT_START("BIT_7") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(gear_r, (void *)2) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(gear_r, (void *)0) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(steer_flag_r, (void *)0) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, firetrk_state,gear_r, (void *)2) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, firetrk_state,gear_r, (void *)0) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, firetrk_state,steer_flag_r, (void *)0) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(crash_r, (void *)0) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, firetrk_state,crash_r, (void *)0) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_NAME("Track Select") PORT_CODE(KEYCODE_SPACE) PORT_START("GEAR") @@ -580,14 +575,14 @@ static INPUT_PORTS_START( montecar ) PORT_DIPSETTING( 0x00, DEF_STR( German ) ) PORT_START("BIT_6") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(gear_r, (void *)0) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(gear_r, (void *)1) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(gear_r, (void *)2) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, firetrk_state,gear_r, (void *)0) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, firetrk_state,gear_r, (void *)1) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, firetrk_state,gear_r, (void *)2) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_NAME("Track Select") PORT_CODE(KEYCODE_SPACE) PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Gas") PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_VBLANK ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(steer_dir_r, (void *)0) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(skid_r, (void *)1) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, firetrk_state,steer_dir_r, (void *)0) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, firetrk_state,skid_r, (void *)1) PORT_START("BIT_7") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 ) @@ -596,8 +591,8 @@ static INPUT_PORTS_START( montecar ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(steer_flag_r, (void *)0) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(skid_r, (void *)0) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, firetrk_state,steer_flag_r, (void *)0) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, firetrk_state,skid_r, (void *)0) PORT_START("GEAR") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Gear 1") PORT_CODE(KEYCODE_Z) PORT_CHANGED(gear_changed, (void *)0) diff --git a/src/mame/drivers/flstory.c b/src/mame/drivers/flstory.c index 724599139fe..cf14306a40c 100644 --- a/src/mame/drivers/flstory.c +++ b/src/mame/drivers/flstory.c @@ -117,12 +117,11 @@ static ADDRESS_MAP_START( onna34ro_map, AS_PROGRAM, 8, flstory_state ) AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_BASE(m_workram) /* work RAM */ ADDRESS_MAP_END -static CUSTOM_INPUT( victnine_mcu_status_bit01_r ) +CUSTOM_INPUT_MEMBER(flstory_state::victnine_mcu_status_bit01_r) { - flstory_state *state = field.machine().driver_data(); - address_space *space = state->m_maincpu->memory().space(AS_PROGRAM); + address_space *space = m_maincpu->memory().space(AS_PROGRAM); - return (state->victnine_mcu_status_r(*space, 0) & 3); + return (victnine_mcu_status_r(*space, 0) & 3); } static ADDRESS_MAP_START( victnine_map, AS_PROGRAM, 8, flstory_state ) @@ -785,7 +784,7 @@ static INPUT_PORTS_START( victnine ) /* bits 0,1 are MCU related: - bit 0: mcu is ready to receive data from main cpu - bit 1: mcu has sent data to the main cpu */ - PORT_BIT( 0x03, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(victnine_mcu_status_bit01_r, NULL) + PORT_BIT( 0x03, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, flstory_state,victnine_mcu_status_bit01_r, NULL) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON5 ) @@ -928,7 +927,7 @@ static INPUT_PORTS_START( rumba ) /* bits 0,1 are MCU related: - bit 0: mcu is ready to receive data from main cpu - bit 1: mcu has sent data to the main cpu */ - PORT_BIT( 0x03, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(victnine_mcu_status_bit01_r, NULL) + PORT_BIT( 0x03, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, flstory_state,victnine_mcu_status_bit01_r, NULL) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) diff --git a/src/mame/drivers/fromanc2.c b/src/mame/drivers/fromanc2.c index fd2dd058891..89600be8823 100644 --- a/src/mame/drivers/fromanc2.c +++ b/src/mame/drivers/fromanc2.c @@ -70,22 +70,19 @@ READ16_MEMBER(fromanc2_state::fromanc2_keymatrix_r) return ret; } -static CUSTOM_INPUT( subcpu_int_r ) +CUSTOM_INPUT_MEMBER(fromanc2_state::subcpu_int_r) { - fromanc2_state *state = field.machine().driver_data(); - return state->m_subcpu_int_flag & 0x01; + return m_subcpu_int_flag & 0x01; } -static CUSTOM_INPUT( sndcpu_nmi_r ) +CUSTOM_INPUT_MEMBER(fromanc2_state::sndcpu_nmi_r) { - fromanc2_state *state = field.machine().driver_data(); - return state->m_sndcpu_nmi_flag & 0x01; + return m_sndcpu_nmi_flag & 0x01; } -static CUSTOM_INPUT( subcpu_nmi_r ) +CUSTOM_INPUT_MEMBER(fromanc2_state::subcpu_nmi_r) { - fromanc2_state *state = field.machine().driver_data(); - return state->m_subcpu_nmi_flag & 0x01; + return m_subcpu_nmi_flag & 0x01; } WRITE16_MEMBER(fromanc2_state::fromanc2_eeprom_w) @@ -314,9 +311,9 @@ static INPUT_PORTS_START( fromanc2 ) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(subcpu_int_r, NULL) // SUBCPU INT FLAG - PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(sndcpu_nmi_r, NULL) // SNDCPU NMI FLAG - PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(subcpu_nmi_r, NULL) // SUBCPU NMI FLAG + PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, fromanc2_state,subcpu_int_r, NULL) // SUBCPU INT FLAG + PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, fromanc2_state,sndcpu_nmi_r, NULL) // SNDCPU NMI FLAG + PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, fromanc2_state,subcpu_nmi_r, NULL) // SUBCPU NMI FLAG PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( "Service Mode (1P)" ) PORT_CODE(KEYCODE_F2) // TEST (1P) PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( "Service Mode (2P)" ) PORT_CODE(KEYCODE_F2) // TEST (2P) @@ -425,7 +422,7 @@ static INPUT_PORTS_START( fromanc4 ) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(sndcpu_nmi_r, NULL) // SNDCPU NMI FLAG + PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, fromanc2_state,sndcpu_nmi_r, NULL) // SNDCPU NMI FLAG PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNUSED ) diff --git a/src/mame/drivers/gaelco3d.c b/src/mame/drivers/gaelco3d.c index fdaeeba2d3d..520212cde35 100644 --- a/src/mame/drivers/gaelco3d.c +++ b/src/mame/drivers/gaelco3d.c @@ -414,11 +414,10 @@ WRITE16_MEMBER(gaelco3d_state::sound_status_w) * *************************************/ -static CUSTOM_INPUT( analog_bit_r ) +CUSTOM_INPUT_MEMBER(gaelco3d_state::analog_bit_r) { - gaelco3d_state *state = field.machine().driver_data(); int which = (FPTR)param; - return (state->m_analog_ports[which] >> 7) & 0x01; + return (m_analog_ports[which] >> 7) & 0x01; } @@ -877,10 +876,10 @@ static INPUT_PORTS_START( speedup ) PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) // checked after reading analog from port 1 PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) // checked after reading analog from port 2 PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) // checked after reading analog from port 3 - PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM(analog_bit_r, (void *)0) - PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM(analog_bit_r, (void *)1) - PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM(analog_bit_r, (void *)2) - PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM(analog_bit_r, (void *)3) + PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM_MEMBER(DEVICE_SELF, gaelco3d_state,analog_bit_r, (void *)0) + PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM_MEMBER(DEVICE_SELF, gaelco3d_state,analog_bit_r, (void *)1) + PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM_MEMBER(DEVICE_SELF, gaelco3d_state,analog_bit_r, (void *)2) + PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM_MEMBER(DEVICE_SELF, gaelco3d_state,analog_bit_r, (void *)3) PORT_START("IN3") PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN2 ) // verified @@ -916,10 +915,10 @@ static INPUT_PORTS_START( surfplnt ) PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_SERVICE_NO_TOGGLE( 0x0800, IP_ACTIVE_LOW ) - PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM(analog_bit_r, (void *)0) - PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM(analog_bit_r, (void *)1) - PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM(analog_bit_r, (void *)2) - PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM(analog_bit_r, (void *)3) + PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM_MEMBER(DEVICE_SELF, gaelco3d_state,analog_bit_r, (void *)0) + PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM_MEMBER(DEVICE_SELF, gaelco3d_state,analog_bit_r, (void *)1) + PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM_MEMBER(DEVICE_SELF, gaelco3d_state,analog_bit_r, (void *)2) + PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM_MEMBER(DEVICE_SELF, gaelco3d_state,analog_bit_r, (void *)3) PORT_START("IN3") PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) @@ -953,10 +952,10 @@ static INPUT_PORTS_START( radikalb ) PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x04000000, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_SERVICE_NO_TOGGLE( 0x08000000, IP_ACTIVE_LOW ) - PORT_BIT( 0x10000000, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM(analog_bit_r, (void *)0) - PORT_BIT( 0x20000000, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM(analog_bit_r, (void *)1) - PORT_BIT( 0x40000000, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM(analog_bit_r, (void *)2) - PORT_BIT( 0x80000000, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM(analog_bit_r, (void *)3) + PORT_BIT( 0x10000000, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM_MEMBER(DEVICE_SELF, gaelco3d_state,analog_bit_r, (void *)0) + PORT_BIT( 0x20000000, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM_MEMBER(DEVICE_SELF, gaelco3d_state,analog_bit_r, (void *)1) + PORT_BIT( 0x40000000, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM_MEMBER(DEVICE_SELF, gaelco3d_state,analog_bit_r, (void *)2) + PORT_BIT( 0x80000000, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM_MEMBER(DEVICE_SELF, gaelco3d_state,analog_bit_r, (void *)3) PORT_START("IN3") PORT_BIT( 0x0000ffff, IP_ACTIVE_HIGH, IPT_UNKNOWN ) diff --git a/src/mame/drivers/galaga.c b/src/mame/drivers/galaga.c index 43fe3b9aa2a..c8cb13e2916 100644 --- a/src/mame/drivers/galaga.c +++ b/src/mame/drivers/galaga.c @@ -777,7 +777,7 @@ WRITE8_MEMBER(galaga_state::bosco_latch_w) } } -static CUSTOM_INPUT( shifted_port_r ) { return input_port_read(field.machine(), (const char *)param) >> 4; } +CUSTOM_INPUT_MEMBER(galaga_state::shifted_port_r){ return input_port_read(machine(), (const char *)param) >> 4; } static WRITE8_DEVICE_HANDLER( out_0 ) { @@ -1416,7 +1416,7 @@ static INPUT_PORTS_START( digdug ) PORT_DIPSETTING( 0xc0, "5" ) PORT_START("DSWA_HI") - PORT_BIT( 0x0f, 0x00, IPT_SPECIAL ) PORT_CUSTOM(shifted_port_r, "DSWA") + PORT_BIT( 0x0f, 0x00, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, bosco_state,shifted_port_r, "DSWA") PORT_START("DSWB") // reverse order against SWA PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SWB:1,2") @@ -1443,7 +1443,7 @@ static INPUT_PORTS_START( digdug ) PORT_DIPSETTING( 0x03, DEF_STR( Hardest ) ) PORT_START("DSWB_HI") - PORT_BIT( 0x0f, 0x00, IPT_SPECIAL ) PORT_CUSTOM(shifted_port_r, "DSWB") + PORT_BIT( 0x0f, 0x00, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, bosco_state,shifted_port_r, "DSWB") INPUT_PORTS_END /* diff --git a/src/mame/drivers/galastrm.c b/src/mame/drivers/galastrm.c index 66dd4016ee7..a95705620f4 100644 --- a/src/mame/drivers/galastrm.c +++ b/src/mame/drivers/galastrm.c @@ -87,16 +87,14 @@ WRITE32_MEMBER(galastrm_state::galastrm_tc0610_1_w) } -static CUSTOM_INPUT( frame_counter_r ) +CUSTOM_INPUT_MEMBER(galastrm_state::frame_counter_r) { - galastrm_state *state = field.machine().driver_data(); - return state->m_frame_counter; + return m_frame_counter; } -static CUSTOM_INPUT( coin_word_r ) +CUSTOM_INPUT_MEMBER(galastrm_state::coin_word_r) { - galastrm_state *state = field.machine().driver_data(); - return state->m_coin_word; + return m_coin_word; } WRITE32_MEMBER(galastrm_state::galastrm_input_w) @@ -202,7 +200,7 @@ static INPUT_PORTS_START( galastrm ) PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x00000080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x00000200, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(frame_counter_r, NULL) + PORT_BIT( 0x00000200, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, galastrm_state,frame_counter_r, NULL) PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x00001000, IP_ACTIVE_LOW, IPT_UNKNOWN ) @@ -228,7 +226,7 @@ static INPUT_PORTS_START( galastrm ) PORT_BIT( 0x00002000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x00004000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x00008000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0xffff0000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(coin_word_r, NULL) + PORT_BIT( 0xffff0000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, galastrm_state,coin_word_r, NULL) PORT_START("STICKX") PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_SENSITIVITY(60) PORT_KEYDELTA(15) PORT_PLAYER(1) diff --git a/src/mame/drivers/galaxian.c b/src/mame/drivers/galaxian.c index 4f7000fea30..ba83e67a856 100644 --- a/src/mame/drivers/galaxian.c +++ b/src/mame/drivers/galaxian.c @@ -726,15 +726,14 @@ static READ8_DEVICE_HANDLER( scramble_protection_r ) } -static CUSTOM_INPUT( scramble_protection_alt_r ) +CUSTOM_INPUT_MEMBER(galaxian_state::scramble_protection_alt_r) { - galaxian_state *state = field.machine().driver_data(); /* There are two additional bits that are derived from bit 7 of the protection result. This is just a guess but works well enough to boot scrambls. */ - return (state->m_protection_result >> 7) & 1; + return (m_protection_result >> 7) & 1; } @@ -1102,13 +1101,12 @@ static INPUT_CHANGED( gmgalax_game_changed ) } -static CUSTOM_INPUT( gmgalax_port_r ) +CUSTOM_INPUT_MEMBER(galaxian_state::gmgalax_port_r) { - galaxian_state *state = field.machine().driver_data(); const char *portname = (const char *)param; - if (state->m_gmgalax_selected_game != 0) + if (m_gmgalax_selected_game != 0) portname += strlen(portname) + 1; - return input_port_read(field.machine(), portname); + return input_port_read(machine(), portname); } @@ -1158,9 +1156,9 @@ static WRITE8_HANDLER( zigzag_ay8910_w ) * *************************************/ -static CUSTOM_INPUT( azurian_port_r ) +CUSTOM_INPUT_MEMBER(galaxian_state::azurian_port_r) { - return (input_port_read(field.machine(), "FAKE") >> (FPTR)param) & 1; + return (input_port_read(machine(), "FAKE") >> (FPTR)param) & 1; } @@ -1171,20 +1169,19 @@ static CUSTOM_INPUT( azurian_port_r ) * *************************************/ -static CUSTOM_INPUT( kingball_muxbit_r ) +CUSTOM_INPUT_MEMBER(galaxian_state::kingball_muxbit_r) { - galaxian_state *state = field.machine().driver_data(); /* multiplex the service mode switch with a speech DIP switch */ - return (input_port_read(field.machine(), "FAKE") >> state->m_kingball_speech_dip) & 1; + return (input_port_read(machine(), "FAKE") >> m_kingball_speech_dip) & 1; } -static CUSTOM_INPUT( kingball_noise_r ) +CUSTOM_INPUT_MEMBER(galaxian_state::kingball_noise_r) { /* bit 5 is the NOISE line from the sound circuit. The code just verifies that it's working, doesn't actually use return value, so we can just use rand() */ - return field.machine().rand() & 1; + return machine().rand() & 1; } diff --git a/src/mame/drivers/galaxold.c b/src/mame/drivers/galaxold.c index 0d222839291..1aa584e6b56 100644 --- a/src/mame/drivers/galaxold.c +++ b/src/mame/drivers/galaxold.c @@ -916,16 +916,16 @@ ADDRESS_MAP_END /* Lives Dips are spread across two input ports */ -static CUSTOM_INPUT( vpool_lives_r ) +CUSTOM_INPUT_MEMBER(galaxold_state::vpool_lives_r) { int bit_mask = (FPTR)param; switch (bit_mask) { case 0x40: /* vpool : IN1 (0xa800) bit 6 */ - return ((input_port_read(field.machine(), "LIVES") & bit_mask) >> 6); + return ((input_port_read(machine(), "LIVES") & bit_mask) >> 6); case 0x01: /* vpool : DSW (0xb000) bit 0 */ - return ((input_port_read(field.machine(), "LIVES") & bit_mask) >> 0); + return ((input_port_read(machine(), "LIVES") & bit_mask) >> 0); default: logerror("vpool_lives_r : invalid %02X bit_mask\n",bit_mask); @@ -952,11 +952,11 @@ static INPUT_PORTS_START( vpool ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_COCKTAIL PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vpool_lives_r, (void *)0x40) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, galaxold_state,vpool_lives_r, (void *)0x40) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_START("DSW0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vpool_lives_r, (void *)0x01) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, galaxold_state,vpool_lives_r, (void *)0x01) PORT_DIPNAME( 0x02, 0x02, DEF_STR( Cabinet ) ) PORT_DIPSETTING( 0x02, DEF_STR( Upright ) ) PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) @@ -1063,21 +1063,21 @@ INPUT_PORTS_END /* Coinage Dips are spread across two input ports */ -static CUSTOM_INPUT( ckongg_coinage_r ) +CUSTOM_INPUT_MEMBER(galaxold_state::ckongg_coinage_r) { int bit_mask = (FPTR)param; switch (bit_mask) { case 0x0c: /* ckongg : DSW (0xc800) bits 2 and 3 */ - return ((input_port_read(field.machine(), "COINAGE") & bit_mask) >> 2); + return ((input_port_read(machine(), "COINAGE") & bit_mask) >> 2); case 0x40: /* ckongg : IN1 (0xc400) bit 6 */ - return ((input_port_read(field.machine(), "COINAGE") & bit_mask) >> 6); + return ((input_port_read(machine(), "COINAGE") & bit_mask) >> 6); case 0xc0: /* ckongmc : IN1 (0xa800) bits 6 and 7 */ - return ((input_port_read(field.machine(), "COINAGE") & bit_mask) >> 6); + return ((input_port_read(machine(), "COINAGE") & bit_mask) >> 6); case 0x01: /* ckongmc : DSW (0xb000) bit 0 */ - return ((input_port_read(field.machine(), "COINAGE") & bit_mask) >> 0); + return ((input_port_read(machine(), "COINAGE") & bit_mask) >> 0); default: logerror("ckongg_coinage_r : invalid %02X bit_mask\n",bit_mask); @@ -1104,7 +1104,7 @@ static INPUT_PORTS_START( ckongg ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(ckongg_coinage_r, (void *)0x40) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, galaxold_state,ckongg_coinage_r, (void *)0x40) PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet ) ) PORT_DIPSETTING( 0x80, DEF_STR( Upright ) ) PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) @@ -1115,7 +1115,7 @@ static INPUT_PORTS_START( ckongg ) PORT_DIPSETTING( 0x01, "4" ) PORT_DIPSETTING( 0x02, "5" ) PORT_DIPSETTING( 0x03, "6" ) - PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(ckongg_coinage_r, (void *)0x0c) + PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, galaxold_state,ckongg_coinage_r, (void *)0x0c) PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_START("COINAGE") @@ -1149,10 +1149,10 @@ static INPUT_PORTS_START( ckongmc ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(ckongg_coinage_r, (void *)0xc0) + PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, galaxold_state,ckongg_coinage_r, (void *)0xc0) PORT_START("DSW") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(ckongg_coinage_r, (void *)0x01) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, galaxold_state,ckongg_coinage_r, (void *)0x01) PORT_DIPNAME( 0x06, 0x00, DEF_STR( Lives ) ) PORT_DIPSETTING( 0x00, "3" ) PORT_DIPSETTING( 0x02, "4" ) @@ -1431,16 +1431,16 @@ INPUT_PORTS_END /* Coinage Dips are spread across two input ports */ -static CUSTOM_INPUT( dkongjrm_coinage_r ) +CUSTOM_INPUT_MEMBER(galaxold_state::dkongjrm_coinage_r) { int bit_mask = (FPTR)param; switch (bit_mask) { case 0xc0: /* dkongjrm : IN1 (0xa8??) bits 6 and 7 */ - return ((input_port_read(field.machine(), "COINAGE") & bit_mask) >> 6); + return ((input_port_read(machine(), "COINAGE") & bit_mask) >> 6); case 0x01: /* dkongjrm : DSW (0xb0??) bit 0 */ - return ((input_port_read(field.machine(), "COINAGE") & bit_mask) >> 0); + return ((input_port_read(machine(), "COINAGE") & bit_mask) >> 0); default: logerror("dkongjrm_coinage_r : invalid %02X bit_mask\n",bit_mask); @@ -1467,10 +1467,10 @@ static INPUT_PORTS_START( dkongjrm ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(dkongjrm_coinage_r, (void *)0xc0) + PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, galaxold_state,dkongjrm_coinage_r, (void *)0xc0) PORT_START("DSW") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(dkongjrm_coinage_r, (void *)0x01) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, galaxold_state,dkongjrm_coinage_r, (void *)0x01) PORT_DIPNAME( 0x06, 0x00, DEF_STR( Lives ) ) PORT_DIPSETTING( 0x00, "3" ) PORT_DIPSETTING( 0x02, "4" ) diff --git a/src/mame/drivers/galdrvr.c b/src/mame/drivers/galdrvr.c index 6ae020a8dd2..c1d764cdb54 100644 --- a/src/mame/drivers/galdrvr.c +++ b/src/mame/drivers/galdrvr.c @@ -350,7 +350,7 @@ static INPUT_PORTS_START( azurian ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(azurian_port_r, (void *)0) /* "linked" with bit 2 of IN2 */ + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, galaxian_state, azurian_port_r, (void *)0) /* "linked" with bit 2 of IN2 */ PORT_DIPNAME( 0x80, 0x00, DEF_STR( Lives ) ) PORT_DIPSETTING( 0x00, "3" ) PORT_DIPSETTING( 0x80, "5" ) @@ -362,7 +362,7 @@ static INPUT_PORTS_START( azurian ) PORT_DIPNAME( 0x02, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPSETTING( 0x00, "5000" ) PORT_DIPSETTING( 0x02, "7000" ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(azurian_port_r, (void *)1) /* "linked" with bit 6 of IN1 */ + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, galaxian_state, azurian_port_r, (void *)1) /* "linked" with bit 6 of IN1 */ PORT_DIPNAME( 0x08, 0x00, DEF_STR( Cabinet ) ) PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) PORT_DIPSETTING( 0x08, DEF_STR( Cocktail ) ) @@ -889,13 +889,13 @@ INPUT_PORTS_END static INPUT_PORTS_START( gmgalax ) PORT_START("IN0") - PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM(gmgalax_port_r, "GMIN0\0GLIN0") + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM_MEMBER(DEVICE_SELF, galaxian_state, gmgalax_port_r, "GMIN0\0GLIN0") PORT_START("IN1") - PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM(gmgalax_port_r, "GMIN1\0GLIN1") + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM_MEMBER(DEVICE_SELF, galaxian_state, gmgalax_port_r, "GMIN1\0GLIN1") PORT_START("IN2") - PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM(gmgalax_port_r, "GMIN2\0GLIN2") + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM_MEMBER(DEVICE_SELF, galaxian_state, gmgalax_port_r, "GMIN2\0GLIN2") PORT_START("GMIN0") /* Ghost Muncher - IN0 */ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_CONDITION("GAMESEL",0x01,PORTCOND_NOTEQUALS,0x01) @@ -1619,14 +1619,14 @@ static INPUT_PORTS_START( kingball ) PORT_INCLUDE(galaxian) PORT_MODIFY("IN0") - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(kingball_muxbit_r, NULL) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, galaxian_state, kingball_muxbit_r, NULL) /* Relating to above port:Hack? - possibly multiplexed via writes to $b003 */ //PORT_DIPNAME( 0x40, 0x40, "Speech" ) //PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) //PORT_DIPSETTING( 0x40, DEF_STR( On ) ) PORT_MODIFY("IN1") - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(kingball_noise_r, NULL) /* NOISE line */ + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, galaxian_state, kingball_noise_r, NULL) /* NOISE line */ PORT_DIPNAME( 0xc0, 0x40, DEF_STR( Coinage ) ) PORT_DIPSETTING( 0xc0, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x40, DEF_STR( 1C_1C ) ) @@ -2055,9 +2055,9 @@ static INPUT_PORTS_START( scramble ) PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) PORT_DIPSETTING( 0x08, DEF_STR( Cocktail ) ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM(scramble_protection_alt_r, (void *)0) /* protection bit */ + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, galaxian_state, scramble_protection_alt_r, (void *)0) /* protection bit */ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM(scramble_protection_alt_r, (void *)1) /* protection bit */ + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, galaxian_state, scramble_protection_alt_r, (void *)1) /* protection bit */ PORT_START("IN3") /* need for some PPI accesses */ PORT_BIT( 0xff, 0x00, IPT_UNUSED ) diff --git a/src/mame/drivers/gottlieb.c b/src/mame/drivers/gottlieb.c index 61e89f1b7d8..62e1db5d3aa 100644 --- a/src/mame/drivers/gottlieb.c +++ b/src/mame/drivers/gottlieb.c @@ -290,13 +290,12 @@ static MACHINE_RESET( gottlieb ) * *************************************/ -static CUSTOM_INPUT( analog_delta_r ) +CUSTOM_INPUT_MEMBER(gottlieb_state::analog_delta_r) { - gottlieb_state *state = field.machine().driver_data(); const char *string = (const char *)param; int which = string[0] - '0'; - return input_port_read(field.machine(), &string[1]) - state->m_track[which]; + return input_port_read(machine(), &string[1]) - m_track[which]; } @@ -308,11 +307,10 @@ WRITE8_MEMBER(gottlieb_state::gottlieb_analog_reset_w) } -static CUSTOM_INPUT( stooges_joystick_r ) +CUSTOM_INPUT_MEMBER(gottlieb_state::stooges_joystick_r) { - gottlieb_state *state = field.machine().driver_data(); static const char *const joyport[] = { "P2JOY", "P3JOY", "P1JOY", NULL }; - return (joyport[state->m_joystick_select & 3] != NULL) ? input_port_read(field.machine(), joyport[state->m_joystick_select & 3]) : 0xff; + return (joyport[m_joystick_select & 3] != NULL) ? input_port_read(machine(), joyport[m_joystick_select & 3]) : 0xff; } @@ -778,10 +776,10 @@ static INPUT_PORTS_START( reactor ) PORT_BIT ( 0xfc, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_START("IN2") /* trackball H */ - PORT_BIT( 0xff, 0, IPT_SPECIAL ) PORT_CUSTOM(analog_delta_r, "0TRACKX") + PORT_BIT( 0xff, 0, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, gottlieb_state,analog_delta_r, "0TRACKX") PORT_START("IN3") /* trackball V */ - PORT_BIT( 0xff, 0, IPT_SPECIAL ) PORT_CUSTOM(analog_delta_r, "1TRACKY") + PORT_BIT( 0xff, 0, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, gottlieb_state,analog_delta_r, "1TRACKY") PORT_START("IN4") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 ) @@ -989,10 +987,10 @@ static INPUT_PORTS_START( argusg ) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_START("IN2") /* trackball H */ - PORT_BIT( 0xff, 0, IPT_SPECIAL ) PORT_CUSTOM(analog_delta_r, "0TRACKX") + PORT_BIT( 0xff, 0, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, gottlieb_state,analog_delta_r, "0TRACKX") PORT_START("IN3") /* trackball V */ - PORT_BIT( 0xff, 0, IPT_SPECIAL ) PORT_CUSTOM(analog_delta_r, "1TRACKY") + PORT_BIT( 0xff, 0, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, gottlieb_state,analog_delta_r, "1TRACKY") /* NOTE: Buttons are shared for both players; are mirrored to each side of the controller */ PORT_START("IN4") @@ -1046,7 +1044,7 @@ static INPUT_PORTS_START( mplanets ) PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("IN3") /* trackball V (dial) */ - PORT_BIT( 0xff, 0, IPT_SPECIAL ) PORT_CUSTOM(analog_delta_r, "1TRACKY") + PORT_BIT( 0xff, 0, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, gottlieb_state,analog_delta_r, "1TRACKY") PORT_START("IN4") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY @@ -1525,7 +1523,7 @@ static INPUT_PORTS_START( 3stooges ) PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("IN4") /* joystick inputs */ - PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(stooges_joystick_r, NULL) + PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, gottlieb_state,stooges_joystick_r, NULL) PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(3) @@ -1637,7 +1635,7 @@ static INPUT_PORTS_START( wizwarz ) PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("IN3") /* trackball V is a dial input */ - PORT_BIT( 0xff, 0, IPT_SPECIAL ) PORT_CUSTOM(analog_delta_r, "1TRACKY") + PORT_BIT( 0xff, 0, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, gottlieb_state,analog_delta_r, "1TRACKY") PORT_START("IN4") /* ? */ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY diff --git a/src/mame/drivers/groundfx.c b/src/mame/drivers/groundfx.c index 6175800d336..8f855e9f3c3 100644 --- a/src/mame/drivers/groundfx.c +++ b/src/mame/drivers/groundfx.c @@ -124,16 +124,14 @@ static const eeprom_interface groundfx_eeprom_interface = GAME INPUTS **********************************************************/ -static CUSTOM_INPUT( frame_counter_r ) +CUSTOM_INPUT_MEMBER(groundfx_state::frame_counter_r) { - groundfx_state *state = field.machine().driver_data(); - return state->m_frame_counter; + return m_frame_counter; } -static CUSTOM_INPUT( coin_word_r ) +CUSTOM_INPUT_MEMBER(groundfx_state::coin_word_r) { - groundfx_state *state = field.machine().driver_data(); - return state->m_coin_word; + return m_coin_word; } WRITE32_MEMBER(groundfx_state::groundfx_input_w) @@ -240,7 +238,7 @@ ADDRESS_MAP_END static INPUT_PORTS_START( groundfx ) PORT_START("BUTTONS") - PORT_BIT( 0x00000001, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(frame_counter_r, NULL) + PORT_BIT( 0x00000001, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, groundfx_state,frame_counter_r, NULL) PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -272,7 +270,7 @@ static INPUT_PORTS_START( groundfx ) PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0xffff0000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(coin_word_r, NULL) + PORT_BIT( 0xffff0000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, groundfx_state,coin_word_r, NULL) PORT_START("AN0") /* IN 2, steering wheel */ PORT_BIT( 0xff, 0x7f, IPT_AD_STICK_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_REVERSE PORT_PLAYER(1) diff --git a/src/mame/drivers/gunbustr.c b/src/mame/drivers/gunbustr.c index 5f9884616af..f2f48eefab3 100644 --- a/src/mame/drivers/gunbustr.c +++ b/src/mame/drivers/gunbustr.c @@ -78,10 +78,9 @@ WRITE32_MEMBER(gunbustr_state::gunbustr_palette_w) palette_set_color_rgb(machine(),offset*2+1,pal5bit(a >> 10),pal5bit(a >> 5),pal5bit(a >> 0)); } -static CUSTOM_INPUT( coin_word_r ) +CUSTOM_INPUT_MEMBER(gunbustr_state::coin_word_r) { - gunbustr_state *state = field.machine().driver_data(); - return state->m_coin_word; + return m_coin_word; } WRITE32_MEMBER(gunbustr_state::gunbustr_input_w) @@ -263,7 +262,7 @@ static INPUT_PORTS_START( gunbustr ) PORT_BIT( 0x00002000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x00004000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x00008000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0xffff0000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(coin_word_r, NULL) + PORT_BIT( 0xffff0000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, gunbustr_state,coin_word_r, NULL) /* Light gun inputs */ diff --git a/src/mame/drivers/homerun.c b/src/mame/drivers/homerun.c index 2728052eab3..dd1c16215b6 100644 --- a/src/mame/drivers/homerun.c +++ b/src/mame/drivers/homerun.c @@ -62,9 +62,9 @@ static ADDRESS_MAP_START( homerun_memmap, AS_PROGRAM, 8, homerun_state ) AM_RANGE(0xc000, 0xdfff) AM_RAM ADDRESS_MAP_END -static CUSTOM_INPUT( homerun_40_r ) +CUSTOM_INPUT_MEMBER(homerun_state::homerun_40_r) { - UINT8 ret = (field.machine().primary_screen->vpos() > 116) ? 1 : 0; + UINT8 ret = (machine().primary_screen->vpos() > 116) ? 1 : 0; return ret; } @@ -97,7 +97,7 @@ static const ym2203_interface ym2203_config = static INPUT_PORTS_START( homerun ) PORT_START("IN0") PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(homerun_40_r, NULL) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, homerun_state,homerun_40_r, NULL) PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x80, DEF_STR( On ) ) @@ -127,7 +127,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( dynashot ) PORT_START("IN0") PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(homerun_40_r, NULL) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, homerun_state,homerun_40_r, NULL) PORT_BIT( 0xb7, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_START("IN1") diff --git a/src/mame/drivers/inufuku.c b/src/mame/drivers/inufuku.c index d474d20d80e..65098831159 100644 --- a/src/mame/drivers/inufuku.c +++ b/src/mame/drivers/inufuku.c @@ -111,10 +111,9 @@ WRITE8_MEMBER(inufuku_state::inufuku_soundrombank_w) ******************************************************************************/ -static CUSTOM_INPUT( soundflag_r ) +CUSTOM_INPUT_MEMBER(inufuku_state::soundflag_r) { - inufuku_state *state = field.machine().driver_data(); - UINT16 soundflag = state->m_pending_command ? 0 : 1; + UINT16 soundflag = m_pending_command ? 0 : 1; return soundflag; } @@ -232,7 +231,7 @@ static INPUT_PORTS_START( inufuku ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(soundflag_r, NULL) // pending sound command + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, inufuku_state,soundflag_r, NULL) // pending sound command PORT_START( "EEPROMOUT" ) PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) diff --git a/src/mame/drivers/itech32.c b/src/mame/drivers/itech32.c index 5a6190f54b6..68c0dceea6b 100644 --- a/src/mame/drivers/itech32.c +++ b/src/mame/drivers/itech32.c @@ -464,13 +464,12 @@ static MACHINE_RESET( drivedge ) *************************************/ -static CUSTOM_INPUT( special_port_r ) +CUSTOM_INPUT_MEMBER(itech32_state::special_port_r) { - itech32_state *state = field.machine().driver_data(); - if (state->m_sound_int_state) - state->m_special_result ^= 1; + if (m_sound_int_state) + m_special_result ^= 1; - return state->m_special_result; + return m_special_result; } READ16_MEMBER(itech32_state::trackball_r) @@ -1117,7 +1116,7 @@ static INPUT_PORTS_START( timekill ) PORT_SERVICE_NO_TOGGLE( 0x0001, IP_ACTIVE_LOW ) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_VBLANK ) - PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(special_port_r, NULL) + PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, itech32_state,special_port_r, NULL) PORT_DIPNAME( 0x0010, 0x0000, "Video Sync" ) PORT_DIPLOCATION("SW1:1") PORT_DIPSETTING( 0x0000, "-" ) PORT_DIPSETTING( 0x0010, "+" ) @@ -1162,7 +1161,7 @@ static INPUT_PORTS_START( itech32_base_16bit ) PORT_SERVICE_NO_TOGGLE( 0x0001, IP_ACTIVE_LOW ) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_VBLANK ) - PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(special_port_r, NULL) + PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, itech32_state,special_port_r, NULL) PORT_DIPNAME( 0x0010, 0x0000, "Video Sync" ) PORT_DIPLOCATION("SW1:4") PORT_DIPSETTING( 0x0000, "-" ) PORT_DIPSETTING( 0x0010, "+" ) @@ -1365,7 +1364,7 @@ static INPUT_PORTS_START( itech32_base_32bit ) PORT_SERVICE_NO_TOGGLE( 0x00010000, IP_ACTIVE_LOW ) PORT_BIT( 0x00020000, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_BIT( 0x00040000, IP_ACTIVE_LOW, IPT_VBLANK ) - PORT_BIT( 0x00080000, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM(special_port_r, NULL) + PORT_BIT( 0x00080000, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, itech32_state,special_port_r, NULL) PORT_DIPNAME( 0x00100000, 0x00000000, "Video Sync" ) PORT_DIPLOCATION("SW1:4") PORT_DIPSETTING( 0x00000000, "-" ) PORT_DIPSETTING( 0x00100000, "+" ) diff --git a/src/mame/drivers/itech8.c b/src/mame/drivers/itech8.c index bdeee6a4d10..0db6a81d16f 100644 --- a/src/mame/drivers/itech8.c +++ b/src/mame/drivers/itech8.c @@ -726,10 +726,9 @@ WRITE8_MEMBER(itech8_state::rimrockn_bank_w) * *************************************/ -static CUSTOM_INPUT( special_r ) +CUSTOM_INPUT_MEMBER(itech8_state::special_r) { - itech8_state *state = field.machine().driver_data(); - return state->m_pia_portb_data & 0x01; + return m_pia_portb_data & 0x01; } @@ -993,7 +992,7 @@ ADDRESS_MAP_END static INPUT_PORTS_START( wfortune ) PORT_START("40") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(special_r, NULL) /* input from sound board */ + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, itech8_state,special_r, NULL) /* input from sound board */ PORT_BIT( 0x06, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_DIPNAME( 0x08, 0x08, DEF_STR( Cabinet ) ) PORT_DIPSETTING( 0x08, DEF_STR( Upright ) ) @@ -1022,7 +1021,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( grmatch ) PORT_START("40") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(special_r, NULL) /* input from sound board */ + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, itech8_state,special_r, NULL) /* input from sound board */ PORT_BIT( 0x06, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_DIPNAME( 0x08, 0x08, "Adjustments Lockout" ) PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) @@ -1060,7 +1059,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( stratab ) PORT_START("40") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(special_r, NULL) /* input from sound board */ + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, itech8_state,special_r, NULL) /* input from sound board */ PORT_BIT( 0x06, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_DIPNAME( 0x08, 0x08, DEF_STR( Cabinet ) ) PORT_DIPSETTING( 0x08, DEF_STR( Upright ) ) @@ -1095,16 +1094,16 @@ static INPUT_PORTS_START( stratab ) INPUT_PORTS_END -static CUSTOM_INPUT( gtg_mux ) +CUSTOM_INPUT_MEMBER(itech8_state::gtg_mux) { const char *tag1 = (const char *)param; const char *tag2 = tag1 + strlen(tag1) + 1; - return input_port_read(field.machine(), tag1) & input_port_read(field.machine(), tag2); + return input_port_read(machine(), tag1) & input_port_read(machine(), tag2); } static INPUT_PORTS_START( gtg ) PORT_START("40") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(special_r, NULL) /* input from sound board */ + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, itech8_state,special_r, NULL) /* input from sound board */ PORT_BIT( 0x06, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_DIPNAME( 0x08, 0x08, DEF_STR( Cabinet ) ) PORT_DIPSETTING( 0x08, DEF_STR( Upright ) ) @@ -1115,7 +1114,7 @@ static INPUT_PORTS_START( gtg ) PORT_START("60") /* it is still unknown how the second player inputs are muxed in */ /* currently we map both sets of controls to the same inputs */ - PORT_BIT( 0x1f, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(gtg_mux, "P1\0P2") + PORT_BIT( 0x1f, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, itech8_state,gtg_mux, "P1\0P2") PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) @@ -1141,7 +1140,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( gtgt ) PORT_START("40") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(special_r, NULL) /* input from sound board */ + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, itech8_state,special_r, NULL) /* input from sound board */ PORT_BIT( 0x7e, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW ) @@ -1168,7 +1167,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( gtg2t ) PORT_START("40") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(special_r, NULL) /* input from sound board */ + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, itech8_state,special_r, NULL) /* input from sound board */ PORT_BIT( 0x06, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_DIPNAME( 0x08, 0x08, DEF_STR( Cabinet ) ) PORT_DIPSETTING( 0x08, DEF_STR( Upright ) ) @@ -1205,7 +1204,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( slikshot ) PORT_START("40") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(special_r, NULL) /* input from sound board */ + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, itech8_state,special_r, NULL) /* input from sound board */ PORT_BIT( 0x7e, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW ) @@ -1232,7 +1231,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( dynobop ) PORT_START("40") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(special_r, NULL) /* input from sound board */ + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, itech8_state,special_r, NULL) /* input from sound board */ PORT_BIT( 0x7e, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW ) @@ -1259,7 +1258,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( sstrike ) PORT_START("40") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(special_r, NULL) /* input from sound board */ + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, itech8_state,special_r, NULL) /* input from sound board */ PORT_BIT( 0x7e, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW ) @@ -1286,7 +1285,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( pokrdice ) PORT_START("40") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(special_r, NULL) /* input from sound board */ + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, itech8_state,special_r, NULL) /* input from sound board */ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Lower Right") PORT_CODE(KEYCODE_3_PAD) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_DIPNAME( 0x08, 0x08, DEF_STR( Cabinet ) ) @@ -1315,7 +1314,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( hstennis ) PORT_START("40") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(special_r, NULL) /* input from sound board */ + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, itech8_state,special_r, NULL) /* input from sound board */ PORT_BIT( 0x06, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_DIPNAME( 0x08, 0x08, DEF_STR( Cabinet ) ) PORT_DIPSETTING( 0x08, DEF_STR( Upright ) ) @@ -1350,7 +1349,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( arlingtn ) PORT_START("40") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(special_r, NULL) /* input from sound board */ + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, itech8_state,special_r, NULL) /* input from sound board */ PORT_BIT( 0x06, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) /* see code at e23c */ PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) @@ -1381,7 +1380,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( peggle ) PORT_START("40") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(special_r, NULL) /* input from sound board */ + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, itech8_state,special_r, NULL) /* input from sound board */ PORT_BIT( 0x7e, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW ) @@ -1403,7 +1402,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( pegglet ) PORT_START("40") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(special_r, NULL) /* input from sound board */ + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, itech8_state,special_r, NULL) /* input from sound board */ PORT_BIT( 0x7e, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW ) @@ -1425,7 +1424,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( neckneck ) PORT_START("40") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(special_r, NULL) /* input from sound board */ + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, itech8_state,special_r, NULL) /* input from sound board */ PORT_BIT( 0x06, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) /* see code at e23c */ PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) @@ -1466,7 +1465,7 @@ static INPUT_PORTS_START( rimrockn ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN4 ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(special_r, NULL) /* input from sound board */ + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, itech8_state,special_r, NULL) /* input from sound board */ PORT_START("80") PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) diff --git a/src/mame/drivers/jack.c b/src/mame/drivers/jack.c index bbfd70c7bd6..d40e85694d4 100644 --- a/src/mame/drivers/jack.c +++ b/src/mame/drivers/jack.c @@ -78,12 +78,11 @@ WRITE8_MEMBER(jack_state::joinem_misc_w) m_joinem_snd_bit = data & 1; } -static CUSTOM_INPUT( sound_check_r ) +CUSTOM_INPUT_MEMBER(jack_state::sound_check_r) { - jack_state *state = field.machine().driver_data(); UINT8 ret = 0; - if ((input_port_read(field.machine(), "IN2") & 0x80) && !state->m_joinem_snd_bit) + if ((input_port_read(machine(), "IN2") & 0x80) && !m_joinem_snd_bit) ret = 1; return ret; @@ -574,7 +573,7 @@ static INPUT_PORTS_START( joinem ) PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x00, "SW2:!3" ) PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x00, "SW2:!4" ) PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x00, "SW2:!5" ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(sound_check_r, NULL) // sound check + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, jack_state,sound_check_r, NULL) // sound check PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x00, "SW2:!7" ) PORT_DIPNAME( 0x80, 0x00, "Infinite Lives" ) PORT_DIPLOCATION("SW2:!8") PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) diff --git a/src/mame/drivers/konamigx.c b/src/mame/drivers/konamigx.c index 2e3a1d8d193..d2b3507c7fa 100644 --- a/src/mame/drivers/konamigx.c +++ b/src/mame/drivers/konamigx.c @@ -440,7 +440,7 @@ WRITE32_MEMBER(konamigx_state::esc_w) /**********************************************************************************/ /* EEPROM handlers */ -static CUSTOM_INPUT( gx_rdport1_3_r ) +CUSTOM_INPUT_MEMBER(konamigx_state::gx_rdport1_3_r) { return (gx_rdport1_3 >> 1); } @@ -1369,7 +1369,7 @@ static INPUT_PORTS_START( common ) // note: racin' force expects bit 1 of the eeprom port to toggle PORT_BIT( 0x00000001, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) - PORT_BIT( 0x000000fe, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(gx_rdport1_3_r, NULL) + PORT_BIT( 0x000000fe, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, konamigx_state,gx_rdport1_3_r, NULL) PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_UNKNOWN ) diff --git a/src/mame/drivers/ladybug.c b/src/mame/drivers/ladybug.c index 327dbf504b6..e5092cd9102 100644 --- a/src/mame/drivers/ladybug.c +++ b/src/mame/drivers/ladybug.c @@ -203,20 +203,20 @@ static INPUT_CHANGED( coin2_inserted ) #define LADYBUG_P1_CONTROL_PORT_TAG ("CONTP1") #define LADYBUG_P2_CONTROL_PORT_TAG ("CONTP2") -static CUSTOM_INPUT( ladybug_p1_control_r ) +CUSTOM_INPUT_MEMBER(ladybug_state::ladybug_p1_control_r) { - return input_port_read(field.machine(), LADYBUG_P1_CONTROL_PORT_TAG); + return input_port_read(machine(), LADYBUG_P1_CONTROL_PORT_TAG); } -static CUSTOM_INPUT( ladybug_p2_control_r ) +CUSTOM_INPUT_MEMBER(ladybug_state::ladybug_p2_control_r) { UINT32 ret; /* upright cabinet only uses a single set of controls */ - if (input_port_read(field.machine(), "DSW0") & 0x20) - ret = input_port_read(field.machine(), LADYBUG_P2_CONTROL_PORT_TAG); + if (input_port_read(machine(), "DSW0") & 0x20) + ret = input_port_read(machine(), LADYBUG_P2_CONTROL_PORT_TAG); else - ret = input_port_read(field.machine(), LADYBUG_P1_CONTROL_PORT_TAG); + ret = input_port_read(machine(), LADYBUG_P1_CONTROL_PORT_TAG); return ret; } @@ -224,13 +224,13 @@ static CUSTOM_INPUT( ladybug_p2_control_r ) static INPUT_PORTS_START( ladybug ) PORT_START("IN0") - PORT_BIT( 0x1f, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(ladybug_p1_control_r, NULL) + PORT_BIT( 0x1f, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, ladybug_state,ladybug_p1_control_r, NULL) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_TILT ) PORT_START("IN1") - PORT_BIT( 0x1f, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(ladybug_p2_control_r, NULL) + PORT_BIT( 0x1f, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, ladybug_state,ladybug_p2_control_r, NULL) /* This should be connected to the 4V clock. I don't think the game uses it. */ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Note that there are TWO VBlank inputs, one is active low, the other active */ diff --git a/src/mame/drivers/lethalj.c b/src/mame/drivers/lethalj.c index 7fe50f9995d..d5104072fc7 100644 --- a/src/mame/drivers/lethalj.c +++ b/src/mame/drivers/lethalj.c @@ -159,9 +159,9 @@ Pin #11(+) | | R | * *************************************/ -static CUSTOM_INPUT( cclownz_paddle ) +CUSTOM_INPUT_MEMBER(lethalj_state::cclownz_paddle) { - int value = input_port_read(field.machine(), "PADDLE"); + int value = input_port_read(machine(), "PADDLE"); return ((value << 4) & 0xf00) | (value & 0x00f); } @@ -541,7 +541,7 @@ static INPUT_PORTS_START( cclownz ) PORT_DIPSETTING( 0x0000, "3000" ) PORT_START("IN1") - PORT_BIT( 0x0f0f, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(cclownz_paddle, NULL) + PORT_BIT( 0x0f0f, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, lethalj_state,cclownz_paddle, NULL) PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("ticket", ticket_dispenser_line_r) PORT_BIT( 0x0060, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 ) diff --git a/src/mame/drivers/m92.c b/src/mame/drivers/m92.c index 1fca610b7c8..ae701feb48b 100644 --- a/src/mame/drivers/m92.c +++ b/src/mame/drivers/m92.c @@ -287,10 +287,9 @@ WRITE16_MEMBER(m92_state::m92_bankswitch_w) } } -static CUSTOM_INPUT( m92_sprite_busy_r ) +CUSTOM_INPUT_MEMBER(m92_state::m92_sprite_busy_r) { - m92_state *state = field.machine().driver_data(); - return state->m_sprite_buffer_busy; + return m_sprite_buffer_busy; } /*****************************************************************************/ @@ -420,7 +419,7 @@ static INPUT_PORTS_START( m92_2player ) PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(m92_sprite_busy_r, NULL) + PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, m92_state,m92_sprite_busy_r, NULL) /* DIP switch bank 3 */ PORT_DIPUNKNOWN_DIPLOC( 0x0100, 0x0100, "SW3:1" ) PORT_DIPUNKNOWN_DIPLOC( 0x0200, 0x0200, "SW3:2" ) diff --git a/src/mame/drivers/mainsnk.c b/src/mame/drivers/mainsnk.c index 716bfa247b5..f3282fd5b47 100644 --- a/src/mame/drivers/mainsnk.c +++ b/src/mame/drivers/mainsnk.c @@ -132,11 +132,10 @@ READ8_MEMBER(mainsnk_state::sound_ack_r) return 0xff; } -static CUSTOM_INPUT( mainsnk_sound_r ) +CUSTOM_INPUT_MEMBER(mainsnk_state::mainsnk_sound_r) { - mainsnk_state *state = field.machine().driver_data(); - return (state->m_sound_cpu_busy) ? 0x01 : 0x00; + return (m_sound_cpu_busy) ? 0x01 : 0x00; } @@ -181,7 +180,7 @@ static INPUT_PORTS_START( mainsnk ) PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(mainsnk_sound_r, NULL) /* sound CPU status */ + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, mainsnk_state,mainsnk_sound_r, NULL) /* sound CPU status */ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE ) @@ -275,7 +274,7 @@ static INPUT_PORTS_START( canvas ) PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(mainsnk_sound_r, NULL) /* sound CPU status */ + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, mainsnk_state,mainsnk_sound_r, NULL) /* sound CPU status */ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE ) diff --git a/src/mame/drivers/metro.c b/src/mame/drivers/metro.c index 56f9a0f5cd0..458167e7174 100644 --- a/src/mame/drivers/metro.c +++ b/src/mame/drivers/metro.c @@ -381,10 +381,9 @@ READ16_MEMBER(metro_state::metro_soundstatus_r) return (m_busy_sndcpu ? 0x00 : 0x01); } -static CUSTOM_INPUT( custom_soundstatus_r ) +CUSTOM_INPUT_MEMBER(metro_state::custom_soundstatus_r) { - metro_state *state = field.machine().driver_data(); - return (state->m_busy_sndcpu ? 0x01 : 0x00); + return (m_busy_sndcpu ? 0x01 : 0x00); } WRITE16_MEMBER(metro_state::metro_soundstatus_w) @@ -1951,7 +1950,7 @@ ADDRESS_MAP_END PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_START1 ) \ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_START2 ) \ PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_UNKNOWN ) \ - PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(custom_soundstatus_r, NULL) /* From Sound CPU */ + PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, metro_state,custom_soundstatus_r, NULL) /* From Sound CPU */ #define COINAGE_SERVICE_LOC(DIPBANK) \ diff --git a/src/mame/drivers/mhavoc.c b/src/mame/drivers/mhavoc.c index f89a434fb7d..7276bb258cc 100644 --- a/src/mame/drivers/mhavoc.c +++ b/src/mame/drivers/mhavoc.c @@ -317,10 +317,10 @@ ADDRESS_MAP_END * *************************************/ -static CUSTOM_INPUT( clock_r ) +CUSTOM_INPUT_MEMBER(mhavoc_state::clock_r) { /* 2.4kHz (divide 2.5MHz by 1024) */ - return (field.machine().device("alpha")->total_cycles() & 0x400) ? 0 : 1; + return (machine().device("alpha")->total_cycles() & 0x400) ? 0 : 1; } @@ -337,7 +337,7 @@ static INPUT_PORTS_START( mhavoc ) /* Bit 1 = 2.4kHz (divide 2.5MHz by 1024) */ /* Bit 0 = Vector generator halt flag */ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(avgdvg_done_r, NULL) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(clock_r, NULL) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, mhavoc_state,clock_r, NULL) PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, mhavoc_state,gamma_xmtd_r, NULL) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, mhavoc_state,gamma_rcvd_r, NULL) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) @@ -436,7 +436,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( alphaone ) PORT_START("IN0") /* alpha (player_1 = 0) */ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(avgdvg_done_r, NULL) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(clock_r, NULL) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, mhavoc_state,clock_r, NULL) PORT_BIT( 0x7c, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) diff --git a/src/mame/drivers/midyunit.c b/src/mame/drivers/midyunit.c index 97903651e7d..319836d0628 100644 --- a/src/mame/drivers/midyunit.c +++ b/src/mame/drivers/midyunit.c @@ -150,21 +150,21 @@ static WRITE8_DEVICE_HANDLER( yawdim_oki_bank_w ) * *************************************/ -static CUSTOM_INPUT( narc_talkback_strobe_r ) +CUSTOM_INPUT_MEMBER(midyunit_state::narc_talkback_strobe_r) { - return (williams_narc_talkback_r(field.machine()) >> 8) & 1; + return (williams_narc_talkback_r(machine()) >> 8) & 1; } -static CUSTOM_INPUT( narc_talkback_data_r ) +CUSTOM_INPUT_MEMBER(midyunit_state::narc_talkback_data_r) { - return williams_narc_talkback_r(field.machine()) & 0xff; + return williams_narc_talkback_r(machine()) & 0xff; } -static CUSTOM_INPUT( adpcm_irq_state_r ) +CUSTOM_INPUT_MEMBER(midyunit_state::adpcm_irq_state_r) { - return williams_adpcm_sound_irq_r(field.machine()) & 1; + return williams_adpcm_sound_irq_r(machine()) & 1; } @@ -237,7 +237,7 @@ static INPUT_PORTS_START( narc ) PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN4 ) PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(narc_talkback_strobe_r, NULL) + PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, midyunit_state,narc_talkback_strobe_r, NULL) PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNUSED ) /* memory protect interlock */ PORT_BIT( 0x3000, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0xc000, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -253,7 +253,7 @@ static INPUT_PORTS_START( narc ) */ PORT_START("IN2") - PORT_BIT( 0x00ff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(narc_talkback_data_r, NULL) + PORT_BIT( 0x00ff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, midyunit_state,narc_talkback_data_r, NULL) PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("DSW") @@ -591,7 +591,7 @@ static INPUT_PORTS_START( mkla2 ) PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("P2 Block 2") PORT_PLAYER(2) PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("P1 Low Punch") PORT_PLAYER(1) PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("P1 Low Kick") PORT_PLAYER(1) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM(adpcm_irq_state_r, NULL) + PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, midyunit_state,adpcm_irq_state_r, NULL) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("P1 Block 2") PORT_PLAYER(1) PORT_START("IN2") @@ -683,7 +683,7 @@ static INPUT_PORTS_START( mkla4 ) PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("P2 Block 2") PORT_PLAYER(2) PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("P1 Low Punch") PORT_PLAYER(1) PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("P1 Low Kick") PORT_PLAYER(1) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM(adpcm_irq_state_r, NULL) + PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, midyunit_state,adpcm_irq_state_r, NULL) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("P1 Block 2") PORT_PLAYER(1) PORT_START("IN2") @@ -769,7 +769,7 @@ static INPUT_PORTS_START( term2 ) PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x3000, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM(adpcm_irq_state_r, NULL) + PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, midyunit_state,adpcm_irq_state_r, NULL) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("DSW") @@ -874,7 +874,7 @@ static INPUT_PORTS_START( totcarn ) PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNUSED ) /* video freeze */ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_BIT( 0x3c00, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM(adpcm_irq_state_r, NULL) + PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, midyunit_state,adpcm_irq_state_r, NULL) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("IN2") diff --git a/src/mame/drivers/midzeus.c b/src/mame/drivers/midzeus.c index 7f695a9426b..2a5c41d9653 100644 --- a/src/mame/drivers/midzeus.c +++ b/src/mame/drivers/midzeus.c @@ -420,12 +420,12 @@ WRITE32_MEMBER(midzeus_state::tms32031_control_w) * *************************************/ -static CUSTOM_INPUT( custom_49way_r ) +CUSTOM_INPUT_MEMBER(midzeus_state::custom_49way_r) { static const UINT8 translate49[7] = { 0x8, 0xc, 0xe, 0xf, 0x3, 0x1, 0x0 }; const char *namex = (const char *)param; const char *namey = namex + strlen(namex) + 1; - return (translate49[input_port_read(field.machine(), namey) >> 4] << 4) | translate49[input_port_read(field.machine(), namex) >> 4]; + return (translate49[input_port_read(machine(), namey) >> 4] << 4) | translate49[input_port_read(machine(), namex) >> 4]; } @@ -436,9 +436,9 @@ WRITE32_MEMBER(midzeus_state::keypad_select_w) } -static CUSTOM_INPUT( keypad_r ) +CUSTOM_INPUT_MEMBER(midzeus_state::keypad_r) { - UINT32 bits = input_port_read(field.machine(), (const char *)param); + UINT32 bits = input_port_read(machine(), (const char *)param); UINT8 select = keypad_select; while ((select & 1) != 0) { @@ -931,7 +931,7 @@ static INPUT_PORTS_START( crusnexo ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("IN2") - PORT_BIT( 0x0007, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM( keypad_r, "KEYPAD" ) + PORT_BIT( 0x0007, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM_MEMBER(DEVICE_SELF, midzeus_state, keypad_r, "KEYPAD" ) PORT_BIT( 0xfff8, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("KEYPAD") @@ -1067,7 +1067,7 @@ static INPUT_PORTS_START( thegrid ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("IN2") - PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM(custom_49way_r, "49WAYX\0" "49WAYY") + PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, midzeus_state,custom_49way_r, "49WAYX\0" "49WAYY") PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("49WAYX") diff --git a/src/mame/drivers/model2.c b/src/mame/drivers/model2.c index 1f307da0db7..48e9d2ccbe3 100644 --- a/src/mame/drivers/model2.c +++ b/src/mame/drivers/model2.c @@ -458,31 +458,29 @@ static READ32_HANDLER( videoctl_r ) return (space->machine().primary_screen->frame_number() & 1) << 2; } -static CUSTOM_INPUT( _1c00000_r ) +CUSTOM_INPUT_MEMBER(model2_state::_1c00000_r) { - model2_state *state = field.machine().driver_data(); - UINT32 ret = input_port_read(field.machine(), "IN0"); + UINT32 ret = input_port_read(machine(), "IN0"); - if(state->m_ctrlmode == 0) + if(m_ctrlmode == 0) { return ret; } else { ret &= ~0x0030; - return ret | 0x00d0 | (field.machine().device("eeprom")->read_bit() << 5); + return ret | 0x00d0 | (machine().device("eeprom")->read_bit() << 5); } } -static CUSTOM_INPUT( _1c0001c_r ) +CUSTOM_INPUT_MEMBER(model2_state::_1c0001c_r) { - model2_state *state = field.machine().driver_data(); UINT32 iptval = 0x00ff; - if(state->m_analog_channel < 4) + if(m_analog_channel < 4) { static const char *const ports[] = { "ANA0", "ANA1", "ANA2", "ANA3" }; - iptval = input_port_read_safe(field.machine(), ports[state->m_analog_channel], 0); - ++state->m_analog_channel; + iptval = input_port_read_safe(machine(), ports[m_analog_channel], 0); + ++m_analog_channel; } return iptval; } @@ -558,7 +556,7 @@ static CUSTOM_INPUT( _1c0001c_r ) */ -static CUSTOM_INPUT( rchase2_devices_r ) +CUSTOM_INPUT_MEMBER(model2_state::rchase2_devices_r) { return 0xffff; } @@ -1533,7 +1531,7 @@ ADDRESS_MAP_END static INPUT_PORTS_START( model2 ) PORT_START("1c00000") PORT_BIT( 0x0000ffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0xffff0000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(_1c00000_r, NULL) + PORT_BIT( 0xffff0000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, model2_state,_1c00000_r, NULL) PORT_START("1c00004") PORT_BIT( 0x0000ffff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(custom_port_read, "IN1") @@ -1550,7 +1548,7 @@ static INPUT_PORTS_START( model2 ) PORT_START("1c0001c") PORT_BIT( 0x0000001a, IP_ACTIVE_HIGH, IPT_SPECIAL ) // these must be high PORT_BIT( 0x0000ffe5, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0xffff0000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(_1c0001c_r, NULL) + PORT_BIT( 0xffff0000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, model2_state,_1c0001c_r, NULL) PORT_START("IN0") PORT_BIT(0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) @@ -1670,7 +1668,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( srallyc ) PORT_START("1c00000") PORT_BIT( 0x0000ffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0xffff0000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(_1c00000_r, NULL) + PORT_BIT( 0xffff0000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, model2_state,_1c00000_r, NULL) PORT_START("1c00004") PORT_BIT( 0x0000ffff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(custom_port_read, "IN1") @@ -1687,7 +1685,7 @@ static INPUT_PORTS_START( srallyc ) PORT_START("1c0001c") PORT_BIT( 0x0000001a, IP_ACTIVE_HIGH, IPT_SPECIAL ) // these must be high PORT_BIT( 0x0000ffe5, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0xffff0000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(_1c0001c_r, NULL) + PORT_BIT( 0xffff0000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, model2_state,_1c0001c_r, NULL) PORT_START("IN0") PORT_BIT(0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) @@ -1721,7 +1719,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( bel ) PORT_START("1c00000") PORT_BIT( 0x0000ffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0xffff0000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(_1c00000_r, NULL) + PORT_BIT( 0xffff0000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, model2_state,_1c00000_r, NULL) PORT_START("1c00004") PORT_BIT( 0x0000ffff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(custom_port_read, "IN1") @@ -1738,7 +1736,7 @@ static INPUT_PORTS_START( bel ) PORT_START("1c0001c") PORT_BIT( 0x0000001a, IP_ACTIVE_HIGH, IPT_SPECIAL ) // these must be high PORT_BIT( 0x0000ffe5, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0xffff0000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(_1c0001c_r, NULL) + PORT_BIT( 0xffff0000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, model2_state,_1c0001c_r, NULL) PORT_START("IN0") PORT_BIT(0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) @@ -1769,7 +1767,7 @@ static INPUT_PORTS_START( rchase2 ) PORT_BIT( 0xfffc, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_MODIFY("IN2") - PORT_BIT( 0xffff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(rchase2_devices_r, NULL) + PORT_BIT( 0xffff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, model2_state,rchase2_devices_r, NULL) /* FIXME: don't know yet if min max values are really correct, we'll see ... */ PORT_START("ANA0") diff --git a/src/mame/drivers/ms32.c b/src/mame/drivers/ms32.c index ebd70dda08a..4ee30dd712b 100644 --- a/src/mame/drivers/ms32.c +++ b/src/mame/drivers/ms32.c @@ -176,27 +176,26 @@ Super Strong Warriors /********** READ INPUTS **********/ -static CUSTOM_INPUT( mahjong_ctrl_r ) +CUSTOM_INPUT_MEMBER(ms32_state::mahjong_ctrl_r) { - ms32_state *state = field.machine().driver_data(); UINT32 mj_input; - switch (state->m_mahjong_input_select[0]) + switch (m_mahjong_input_select[0]) { case 0x01: - mj_input = input_port_read(field.machine(), "MJ0"); + mj_input = input_port_read(machine(), "MJ0"); break; case 0x02: - mj_input = input_port_read(field.machine(), "MJ1"); + mj_input = input_port_read(machine(), "MJ1"); break; case 0x04: - mj_input = input_port_read(field.machine(), "MJ2"); + mj_input = input_port_read(machine(), "MJ2"); break; case 0x08: - mj_input = input_port_read(field.machine(), "MJ3"); + mj_input = input_port_read(machine(), "MJ3"); break; case 0x10: - mj_input = input_port_read(field.machine(), "MJ4"); + mj_input = input_port_read(machine(), "MJ4"); break; default: mj_input = 0; @@ -624,7 +623,7 @@ static INPUT_PORTS_START( ms32_mahjong ) PORT_INCLUDE( ms32 ) PORT_MODIFY("INPUTS") - PORT_BIT( 0x000000ff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(mahjong_ctrl_r, NULL) // here we read mahjong keys + PORT_BIT( 0x000000ff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, ms32_state,mahjong_ctrl_r, NULL) // here we read mahjong keys PORT_BIT( 0x0000ff00, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x00010000, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x00020000, IP_ACTIVE_LOW, IPT_COIN2 ) diff --git a/src/mame/drivers/mw8080bw.c b/src/mame/drivers/mw8080bw.c index 274636c1a71..f5c2701c7fe 100644 --- a/src/mame/drivers/mw8080bw.c +++ b/src/mame/drivers/mw8080bw.c @@ -313,10 +313,10 @@ WRITE8_MEMBER(mw8080bw_state::seawolf_periscope_lamp_w) } -static CUSTOM_INPUT( seawolf_erase_input_r ) +CUSTOM_INPUT_MEMBER(mw8080bw_state::seawolf_erase_input_r) { - return input_port_read(field.machine(), SEAWOLF_ERASE_SW_PORT_TAG) & - input_port_read(field.machine(), SEAWOLF_ERASE_DIP_PORT_TAG); + return input_port_read(machine(), SEAWOLF_ERASE_SW_PORT_TAG) & + input_port_read(machine(), SEAWOLF_ERASE_DIP_PORT_TAG); } @@ -371,7 +371,7 @@ static INPUT_PORTS_START( seawolf ) PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x0c, DEF_STR( 2C_3C ) ) PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(seawolf_erase_input_r, NULL) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, mw8080bw_state,seawolf_erase_input_r, NULL) PORT_DIPNAME( 0xe0, 0x60, "Extended Time At" ) PORT_DIPLOCATION("G4:6,7,8") PORT_DIPSETTING( 0x00, DEF_STR( None ) ) PORT_DIPSETTING( 0x20, "2000" ) @@ -552,26 +552,26 @@ UINT8 tornbase_get_cabinet_type(running_machine &machine) } -static CUSTOM_INPUT( tornbase_hit_left_input_r ) +CUSTOM_INPUT_MEMBER(mw8080bw_state::tornbase_hit_left_input_r) { - return input_port_read(field.machine(), TORNBASE_L_HIT_PORT_TAG); + return input_port_read(machine(), TORNBASE_L_HIT_PORT_TAG); } -static CUSTOM_INPUT( tornbase_hit_right_input_r ) +CUSTOM_INPUT_MEMBER(mw8080bw_state::tornbase_hit_right_input_r) { UINT32 ret; - switch (tornbase_get_cabinet_type(field.machine())) + switch (tornbase_get_cabinet_type(machine())) { case TORNBASE_CAB_TYPE_UPRIGHT_OLD: - ret = input_port_read(field.machine(), TORNBASE_L_HIT_PORT_TAG); + ret = input_port_read(machine(), TORNBASE_L_HIT_PORT_TAG); break; case TORNBASE_CAB_TYPE_UPRIGHT_NEW: case TORNBASE_CAB_TYPE_COCKTAIL: default: - ret = input_port_read(field.machine(), TORNBASE_R_HIT_PORT_TAG); + ret = input_port_read(machine(), TORNBASE_R_HIT_PORT_TAG); break; } @@ -579,20 +579,20 @@ static CUSTOM_INPUT( tornbase_hit_right_input_r ) } -static CUSTOM_INPUT( tornbase_pitch_left_input_r ) +CUSTOM_INPUT_MEMBER(mw8080bw_state::tornbase_pitch_left_input_r) { UINT32 ret; - switch (tornbase_get_cabinet_type(field.machine())) + switch (tornbase_get_cabinet_type(machine())) { case TORNBASE_CAB_TYPE_UPRIGHT_OLD: case TORNBASE_CAB_TYPE_UPRIGHT_NEW: - ret = input_port_read(field.machine(), TORNBASE_L_PITCH_PORT_TAG); + ret = input_port_read(machine(), TORNBASE_L_PITCH_PORT_TAG); break; case TORNBASE_CAB_TYPE_COCKTAIL: default: - ret = input_port_read(field.machine(), TORNBASE_R_PITCH_PORT_TAG); + ret = input_port_read(machine(), TORNBASE_R_PITCH_PORT_TAG); break; } @@ -600,16 +600,16 @@ static CUSTOM_INPUT( tornbase_pitch_left_input_r ) } -static CUSTOM_INPUT( tornbase_pitch_right_input_r ) +CUSTOM_INPUT_MEMBER(mw8080bw_state::tornbase_pitch_right_input_r) { - return input_port_read(field.machine(), TORNBASE_L_PITCH_PORT_TAG); + return input_port_read(machine(), TORNBASE_L_PITCH_PORT_TAG); } -static CUSTOM_INPUT( tornbase_score_input_r ) +CUSTOM_INPUT_MEMBER(mw8080bw_state::tornbase_score_input_r) { - return input_port_read(field.machine(), TORNBASE_SCORE_SW_PORT_TAG) & - input_port_read(field.machine(), TORNBASE_SCORE_DIP_PORT_TAG); + return input_port_read(machine(), TORNBASE_SCORE_SW_PORT_TAG) & + input_port_read(machine(), TORNBASE_SCORE_DIP_PORT_TAG); } @@ -641,21 +641,21 @@ ADDRESS_MAP_END static INPUT_PORTS_START( tornbase ) PORT_START("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(tornbase_hit_left_input_r, NULL) - PORT_BIT( 0x7e, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(tornbase_pitch_left_input_r, NULL) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, mw8080bw_state,tornbase_hit_left_input_r, NULL) + PORT_BIT( 0x7e, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, mw8080bw_state,tornbase_pitch_left_input_r, NULL) PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unused ) ) PORT_CONDITION("IN2", 0x80, PORTCOND_EQUALS, 0x00) PORT_DIPLOCATION("B1:7") PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x80, DEF_STR( On ) ) PORT_START("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(tornbase_hit_right_input_r, NULL) - PORT_BIT( 0x7e, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(tornbase_pitch_right_input_r, NULL) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, mw8080bw_state,tornbase_hit_right_input_r, NULL) + PORT_BIT( 0x7e, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, mw8080bw_state,tornbase_pitch_right_input_r, NULL) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED) /* not connected */ PORT_START("IN2") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* schematics shows it as "START", but not used by the software */ - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(tornbase_score_input_r, NULL) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, mw8080bw_state,tornbase_score_input_r, NULL) PORT_DIPNAME( 0x78, 0x40, DEF_STR( Coinage ) ) PORT_CONDITION("IN2", 0x80, PORTCOND_EQUALS, 0x00) PORT_DIPLOCATION("B1:2,3,4,5") PORT_DIPSETTING( 0x18, "4 Coins/1 Inning" ) PORT_DIPSETTING( 0x10, "3 Coins/1 Inning" ) @@ -1185,29 +1185,27 @@ static MACHINE_START( desertgu ) } -static CUSTOM_INPUT( desertgu_gun_input_r ) +CUSTOM_INPUT_MEMBER(mw8080bw_state::desertgu_gun_input_r) { - mw8080bw_state *state = field.machine().driver_data(); UINT32 ret; - if (state->m_desertgun_controller_select) - ret = input_port_read(field.machine(), DESERTGU_GUN_X_PORT_TAG); + if (m_desertgun_controller_select) + ret = input_port_read(machine(), DESERTGU_GUN_X_PORT_TAG); else - ret = input_port_read(field.machine(), DESERTGU_GUN_Y_PORT_TAG); + ret = input_port_read(machine(), DESERTGU_GUN_Y_PORT_TAG); return ret; } -static CUSTOM_INPUT( desertgu_dip_sw_0_1_r ) +CUSTOM_INPUT_MEMBER(mw8080bw_state::desertgu_dip_sw_0_1_r) { - mw8080bw_state *state = field.machine().driver_data(); UINT32 ret; - if (state->m_desertgun_controller_select) - ret = input_port_read(field.machine(), DESERTGU_DIP_SW_0_1_SET_2_TAG); + if (m_desertgun_controller_select) + ret = input_port_read(machine(), DESERTGU_DIP_SW_0_1_SET_2_TAG); else - ret = input_port_read(field.machine(), DESERTGU_DIP_SW_0_1_SET_1_TAG); + ret = input_port_read(machine(), DESERTGU_DIP_SW_0_1_SET_1_TAG); return ret; } @@ -1232,10 +1230,10 @@ ADDRESS_MAP_END static INPUT_PORTS_START( desertgu ) PORT_START("IN0") - PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(desertgu_gun_input_r, NULL) + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, mw8080bw_state,desertgu_gun_input_r, NULL) PORT_START("IN1") - PORT_BIT( 0x03, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(desertgu_dip_sw_0_1_r, NULL) + PORT_BIT( 0x03, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, mw8080bw_state,desertgu_dip_sw_0_1_r, NULL) PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Language ) ) PORT_CONDITION("IN1", 0x30, PORTCOND_NOTEQUALS, 0x30) PORT_DIPLOCATION("C2:5,6") PORT_DIPSETTING( 0x00, DEF_STR( English ) ) PORT_DIPSETTING( 0x04, DEF_STR( German ) ) @@ -1316,22 +1314,22 @@ MACHINE_CONFIG_END #define DPLAY_CAB_TYPE_COCKTAIL (1) -static CUSTOM_INPUT( dplay_pitch_left_input_r ) +CUSTOM_INPUT_MEMBER(mw8080bw_state::dplay_pitch_left_input_r) { UINT32 ret; - if (input_port_read(field.machine(), DPLAY_CAB_TYPE_PORT_TAG) == DPLAY_CAB_TYPE_UPRIGHT) - ret = input_port_read(field.machine(), DPLAY_L_PITCH_PORT_TAG); + if (input_port_read(machine(), DPLAY_CAB_TYPE_PORT_TAG) == DPLAY_CAB_TYPE_UPRIGHT) + ret = input_port_read(machine(), DPLAY_L_PITCH_PORT_TAG); else - ret = input_port_read(field.machine(), DPLAY_R_PITCH_PORT_TAG); + ret = input_port_read(machine(), DPLAY_R_PITCH_PORT_TAG); return ret; } -static CUSTOM_INPUT( dplay_pitch_right_input_r ) +CUSTOM_INPUT_MEMBER(mw8080bw_state::dplay_pitch_right_input_r) { - return input_port_read(field.machine(), DPLAY_L_PITCH_PORT_TAG); + return input_port_read(machine(), DPLAY_L_PITCH_PORT_TAG); } @@ -1354,12 +1352,12 @@ ADDRESS_MAP_END static INPUT_PORTS_START( dplay ) PORT_START("IN0") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Hit") PORT_PLAYER(1) - PORT_BIT( 0x7e, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(dplay_pitch_left_input_r, NULL) + PORT_BIT( 0x7e, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, mw8080bw_state,dplay_pitch_left_input_r, NULL) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) PORT_START("IN1") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P2 Hit") PORT_PLAYER(2) - PORT_BIT( 0x7e, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(dplay_pitch_right_input_r, NULL) + PORT_BIT( 0x7e, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, mw8080bw_state,dplay_pitch_right_input_r, NULL) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) PORT_START("IN2") @@ -1418,12 +1416,12 @@ INPUT_PORTS_END static INPUT_PORTS_START( einning ) PORT_START("IN0") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Hit") PORT_PLAYER(1) - PORT_BIT( 0x7e, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(dplay_pitch_left_input_r, NULL) + PORT_BIT( 0x7e, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, mw8080bw_state,dplay_pitch_left_input_r, NULL) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) PORT_START("IN1") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P2 Hit") PORT_PLAYER(2) - PORT_BIT( 0x7e, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(dplay_pitch_right_input_r, NULL) + PORT_BIT( 0x7e, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, mw8080bw_state,dplay_pitch_right_input_r, NULL) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) PORT_START("IN2") @@ -1707,18 +1705,17 @@ static MACHINE_START( clowns ) } -static CUSTOM_INPUT( clowns_controller_r ) +CUSTOM_INPUT_MEMBER(mw8080bw_state::clowns_controller_r) { - mw8080bw_state *state = field.machine().driver_data(); UINT32 ret; - if (state->m_clowns_controller_select) + if (m_clowns_controller_select) { - ret = input_port_read(field.machine(), CLOWNS_CONTROLLER_P2_TAG); + ret = input_port_read(machine(), CLOWNS_CONTROLLER_P2_TAG); } else { - ret = input_port_read(field.machine(), CLOWNS_CONTROLLER_P1_TAG); + ret = input_port_read(machine(), CLOWNS_CONTROLLER_P1_TAG); } return ret; @@ -1744,7 +1741,7 @@ ADDRESS_MAP_END static INPUT_PORTS_START( clowns ) PORT_START("IN0") - PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(clowns_controller_r, NULL) + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, mw8080bw_state,clowns_controller_r, NULL) PORT_START("IN1") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) /* not connected */ @@ -1793,7 +1790,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( clowns1 ) PORT_START("IN0") - PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(clowns_controller_r, NULL) + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, mw8080bw_state,clowns_controller_r, NULL) PORT_START("IN1") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) @@ -1881,7 +1878,7 @@ ADDRESS_MAP_END static INPUT_PORTS_START( spacwalk ) PORT_START("IN0") - PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(clowns_controller_r, NULL) + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, mw8080bw_state,clowns_controller_r, NULL) PORT_START("IN1") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -2535,59 +2532,59 @@ static MACHINE_START( invaders ) -static CUSTOM_INPUT( invaders_coin_input_r ) +CUSTOM_INPUT_MEMBER(mw8080bw_state::invaders_coin_input_r) { - UINT32 ret = input_port_read(field.machine(), INVADERS_COIN_INPUT_PORT_TAG); + UINT32 ret = input_port_read(machine(), INVADERS_COIN_INPUT_PORT_TAG); - coin_counter_w(field.machine(), 0, !ret); + coin_counter_w(machine(), 0, !ret); return ret; } -static CUSTOM_INPUT( invaders_sw6_sw7_r ) +CUSTOM_INPUT_MEMBER(mw8080bw_state::invaders_sw6_sw7_r) { UINT32 ret; /* upright PCB : switches visible cocktail PCB: HI */ - if (invaders_is_cabinet_cocktail(field.machine())) + if (invaders_is_cabinet_cocktail(machine())) ret = 0x03; else - ret = input_port_read(field.machine(), INVADERS_SW6_SW7_PORT_TAG); + ret = input_port_read(machine(), INVADERS_SW6_SW7_PORT_TAG); return ret; } -static CUSTOM_INPUT( invaders_sw5_r ) +CUSTOM_INPUT_MEMBER(mw8080bw_state::invaders_sw5_r) { UINT32 ret; /* upright PCB : switch visible cocktail PCB: HI */ - if (invaders_is_cabinet_cocktail(field.machine())) + if (invaders_is_cabinet_cocktail(machine())) ret = 0x01; else - ret = input_port_read(field.machine(), INVADERS_SW5_PORT_TAG); + ret = input_port_read(machine(), INVADERS_SW5_PORT_TAG); return ret; } -static CUSTOM_INPUT( invaders_in0_control_r ) +CUSTOM_INPUT_MEMBER(mw8080bw_state::invaders_in0_control_r) { UINT32 ret; /* upright PCB : P1 controls cocktail PCB: HI */ - if (invaders_is_cabinet_cocktail(field.machine())) + if (invaders_is_cabinet_cocktail(machine())) ret = 0x07; else - ret = input_port_read(field.machine(), INVADERS_P1_CONTROL_PORT_TAG); + ret = input_port_read(machine(), INVADERS_P1_CONTROL_PORT_TAG); return ret; } @@ -2641,13 +2638,13 @@ static INPUT_PORTS_START( invaders ) PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW:8") PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_BIT( 0x06, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(invaders_sw6_sw7_r, NULL) + PORT_BIT( 0x06, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, mw8080bw_state,invaders_sw6_sw7_r, NULL) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x70, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(invaders_in0_control_r, NULL) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(invaders_sw5_r, NULL) + PORT_BIT( 0x70, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, mw8080bw_state,invaders_in0_control_r, NULL) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, mw8080bw_state,invaders_sw5_r, NULL) PORT_START("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(invaders_coin_input_r, NULL) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, mw8080bw_state,invaders_coin_input_r, NULL) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -2742,11 +2739,11 @@ MACHINE_CONFIG_END #define BLUESHRK_COIN_INPUT_PORT_TAG ("COIN") -static CUSTOM_INPUT( blueshrk_coin_input_r ) +CUSTOM_INPUT_MEMBER(mw8080bw_state::blueshrk_coin_input_r) { - UINT32 ret = input_port_read(field.machine(), BLUESHRK_COIN_INPUT_PORT_TAG); + UINT32 ret = input_port_read(machine(), BLUESHRK_COIN_INPUT_PORT_TAG); - coin_counter_w(field.machine(), 0, !ret); + coin_counter_w(machine(), 0, !ret); return ret; } @@ -2772,7 +2769,7 @@ static INPUT_PORTS_START( blueshrk ) PORT_START("IN1") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(blueshrk_coin_input_r, NULL) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, mw8080bw_state,blueshrk_coin_input_r, NULL) PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) ) PORT_CONDITION("IN1", 0x80, PORTCOND_EQUALS, 0x80) PORT_DIPLOCATION("SW:3") PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) @@ -2861,7 +2858,7 @@ static INPUT_PORTS_START( invad2ct ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(invaders_coin_input_r, NULL) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, mw8080bw_state,invaders_coin_input_r, NULL) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) diff --git a/src/mame/drivers/namcos22.c b/src/mame/drivers/namcos22.c index 80b6040267f..03dda1d8612 100644 --- a/src/mame/drivers/namcos22.c +++ b/src/mame/drivers/namcos22.c @@ -4762,10 +4762,9 @@ ROM_END /*******************************************************************/ -static CUSTOM_INPUT( alpine_motor_read ) +CUSTOM_INPUT_MEMBER(namcos22_state::alpine_motor_read) { - namcos22_state *state = field.machine().driver_data(); - return state->m_motor_status >> (FPTR)param & 1; + return m_motor_status >> (FPTR)param & 1; } static INPUT_PORTS_START( alpiner ) @@ -4803,7 +4802,7 @@ static INPUT_PORTS_START( alpiner ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START ) // Decision / View Change PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_16WAY // L Selection PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) PORT_16WAY // R Selection - PORT_BIT( 0x80, IP_ACTIVE_HIGH,IPT_SPECIAL ) PORT_CUSTOM(alpine_motor_read, (void *)0) // steps are free + PORT_BIT( 0x80, IP_ACTIVE_HIGH,IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, namcos22_state,alpine_motor_read, (void *)0) // steps are free PORT_START("SWING") PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_NAME("Steps Swing") @@ -4812,7 +4811,7 @@ static INPUT_PORTS_START( alpiner ) PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_NAME("Steps Edge") PORT_START("MCUP5B") - PORT_BIT( 0x01, IP_ACTIVE_HIGH,IPT_SPECIAL ) PORT_CUSTOM(alpine_motor_read, (void *)1) // steps are locked + PORT_BIT( 0x01, IP_ACTIVE_HIGH,IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, namcos22_state,alpine_motor_read, (void *)1) // steps are locked PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNKNOWN ) INPUT_PORTS_END /* Alpine Racer */ diff --git a/src/mame/drivers/neodrvr.c b/src/mame/drivers/neodrvr.c index fe66d13af0a..6f42315d13e 100644 --- a/src/mame/drivers/neodrvr.c +++ b/src/mame/drivers/neodrvr.c @@ -9005,7 +9005,7 @@ static INPUT_PORTS_START( mjneogeo ) PORT_DIPNAME( 0x0080, 0x0080, "Freeze" ) PORT_DIPLOCATION("SW:8") PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(mahjong_controller_r, NULL) + PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, neogeo_state,mahjong_controller_r, NULL) STANDARD_IN1 @@ -9064,7 +9064,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( irrmaze ) PORT_START("IN0") STANDARD_DIPS - PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(multiplexed_controller_r, (void *)0) + PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, neogeo_state,multiplexed_controller_r, (void *)0) PORT_START("IN1") PORT_BIT( 0x0fff, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -9079,7 +9079,7 @@ static INPUT_PORTS_START( irrmaze ) PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x7000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(get_memcard_status, NULL) + PORT_BIT( 0x7000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, neogeo_state,get_memcard_status, NULL) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) STANDARD_IN3 @@ -9106,11 +9106,11 @@ INPUT_PORTS_END static INPUT_PORTS_START( popbounc ) PORT_START("IN0") STANDARD_DIPS - PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(multiplexed_controller_r, (void *)0) + PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, neogeo_state,multiplexed_controller_r, (void *)0) PORT_START("IN1") PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(multiplexed_controller_r, (void *)1) + PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, neogeo_state,multiplexed_controller_r, (void *)1) STANDARD_IN2 @@ -9166,13 +9166,13 @@ static INPUT_PORTS_START( vliner ) PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* this bit is used.. */ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* this bit is used.. */ - PORT_BIT( 0x7000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(get_memcard_status, NULL) + PORT_BIT( 0x7000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, neogeo_state,get_memcard_status, NULL) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("IN3") PORT_BIT( 0x003f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x00c0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(get_calendar_status, NULL) - PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(get_audio_result, NULL) + PORT_BIT( 0x00c0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, neogeo_state,get_calendar_status, NULL) + PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, neogeo_state,get_audio_result, NULL) STANDARD_IN4 @@ -9205,7 +9205,7 @@ static INPUT_PORTS_START( jockeygp ) PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Next Game") PORT_CODE(KEYCODE_7) PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* game freezes with this bit enabled */ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Previous Game") PORT_CODE(KEYCODE_8) - PORT_BIT( 0x7000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(get_memcard_status, NULL) + PORT_BIT( 0x7000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, neogeo_state,get_memcard_status, NULL) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) STANDARD_IN3 diff --git a/src/mame/drivers/neogeo.c b/src/mame/drivers/neogeo.c index c9fa725d7c5..c859ca1c528 100644 --- a/src/mame/drivers/neogeo.c +++ b/src/mame/drivers/neogeo.c @@ -377,9 +377,8 @@ static void select_controller( running_machine &machine, UINT8 data ) } -static CUSTOM_INPUT( multiplexed_controller_r ) +CUSTOM_INPUT_MEMBER(neogeo_state::multiplexed_controller_r) { - neogeo_state *state = field.machine().driver_data(); int port = (FPTR)param; static const char *const cntrl[2][2] = @@ -387,13 +386,12 @@ static CUSTOM_INPUT( multiplexed_controller_r ) { "IN0-0", "IN0-1" }, { "IN1-0", "IN1-1" } }; - return input_port_read_safe(field.machine(), cntrl[port][state->m_controller_select & 0x01], 0x00); + return input_port_read_safe(machine(), cntrl[port][m_controller_select & 0x01], 0x00); } #if 1 // this needs to be added dynamically somehow -static CUSTOM_INPUT( mahjong_controller_r ) +CUSTOM_INPUT_MEMBER(neogeo_state::mahjong_controller_r) { - neogeo_state *state = field.machine().driver_data(); UINT32 ret; /* @@ -403,14 +401,14 @@ cpu #0 (PC=00C18D54): unmapped memory word write to 00380000 = 0024 & 00FF cpu #0 (PC=00C18D6C): unmapped memory word write to 00380000 = 0009 & 00FF cpu #0 (PC=00C18C40): unmapped memory word write to 00380000 = 0000 & 00FF */ - switch (state->m_controller_select) + switch (m_controller_select) { default: case 0x00: ret = 0x0000; break; /* nothing? */ - case 0x09: ret = input_port_read(field.machine(), "MAHJONG1"); break; - case 0x12: ret = input_port_read(field.machine(), "MAHJONG2"); break; - case 0x1b: ret = input_port_read(field.machine(), "MAHJONG3"); break; /* player 1 normal inputs? */ - case 0x24: ret = input_port_read(field.machine(), "MAHJONG4"); break; + case 0x09: ret = input_port_read(machine(), "MAHJONG1"); break; + case 0x12: ret = input_port_read(machine(), "MAHJONG2"); break; + case 0x1b: ret = input_port_read(machine(), "MAHJONG3"); break; /* player 1 normal inputs? */ + case 0x24: ret = input_port_read(machine(), "MAHJONG4"); break; } return ret; @@ -472,10 +470,9 @@ READ16_MEMBER(neogeo_state::neogeo_unmapped_r) * *************************************/ -static CUSTOM_INPUT( get_calendar_status ) +CUSTOM_INPUT_MEMBER(neogeo_state::get_calendar_status) { - neogeo_state *state = field.machine().driver_data(); - return (upd4990a_databit_r(state->m_upd4990a, 0) << 1) | upd4990a_testbit_r(state->m_upd4990a, 0); + return (upd4990a_databit_r(m_upd4990a, 0) << 1) | upd4990a_testbit_r(m_upd4990a, 0); } @@ -511,11 +508,11 @@ WRITE16_MEMBER(neogeo_state::save_ram_w) #define MEMCARD_SIZE 0x0800 -static CUSTOM_INPUT( get_memcard_status ) +CUSTOM_INPUT_MEMBER(neogeo_state::get_memcard_status) { /* D0 and D1 are memcard presence indicators, D2 indicates memcard write protect status (we are always write enabled) */ - return (memcard_present(field.machine()) == -1) ? 0x07 : 0x00; + return (memcard_present(machine()) == -1) ? 0x07 : 0x00; } @@ -608,12 +605,11 @@ WRITE8_MEMBER(neogeo_state::audio_result_w) } -static CUSTOM_INPUT( get_audio_result ) +CUSTOM_INPUT_MEMBER(neogeo_state::get_audio_result) { - neogeo_state *state = field.machine().driver_data(); - UINT32 ret = state->m_audio_result; + UINT32 ret = m_audio_result; -// if (LOG_CPU_COMM) logerror("MAIN CPU PC %06x: audio_result_r %02x\n", cpu_get_pc(field.machine().device("maincpu")), ret); +// if (LOG_CPU_COMM) logerror("MAIN CPU PC %06x: audio_result_r %02x\n", cpu_get_pc(machine().device("maincpu")), ret); return ret; } @@ -1227,7 +1223,7 @@ static const ym2610_interface ym2610_config = PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Next Game") PORT_CODE(KEYCODE_7) \ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_START2 ) \ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Previous Game") PORT_CODE(KEYCODE_8) \ - PORT_BIT( 0x7000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(get_memcard_status, NULL) \ + PORT_BIT( 0x7000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, neogeo_state,get_memcard_status, NULL) \ PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* In AES 'mode' nitd, kof2000, sengoku3, matrim and mslug5 check if this is ACTIVE_HIGH */ @@ -1239,8 +1235,8 @@ static const ym2610_interface ym2610_config = PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* having this ACTIVE_HIGH causes you to start with 2 credits using USA bios roms; if ACTIVE_HIGH + IN4 bit 6 ACTIVE_HIGH = AES 'mode' */ \ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* having this ACTIVE_HIGH causes you to start with 2 credits using USA bios roms; if ACTIVE_HIGH + IN4 bit 6 ACTIVE_HIGH = AES 'mode' */ \ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_SPECIAL ) /* what is this? When ACTIVE_HIGH + IN4 bit 6 ACTIVE_LOW MVS-4 slot is detected */ \ - PORT_BIT( 0x00c0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(get_calendar_status, NULL) \ - PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(get_audio_result, NULL) + PORT_BIT( 0x00c0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, neogeo_state,get_calendar_status, NULL) \ + PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, neogeo_state,get_audio_result, NULL) #define STANDARD_IN4 \ diff --git a/src/mame/drivers/niyanpai.c b/src/mame/drivers/niyanpai.c index 10fa4161d44..2470f9d6211 100644 --- a/src/mame/drivers/niyanpai.c +++ b/src/mame/drivers/niyanpai.c @@ -314,19 +314,18 @@ READ16_MEMBER(niyanpai_state::musobana_inputport_0_r) return (portdata); } -static CUSTOM_INPUT( musobana_outcoin_flag_r ) +CUSTOM_INPUT_MEMBER(niyanpai_state::musobana_outcoin_flag_r) { - niyanpai_state *state = field.machine().driver_data(); - address_space *space = field.machine().device("maincpu")->memory().space(AS_PROGRAM); + address_space *space = machine().device("maincpu")->memory().space(AS_PROGRAM); // tmp68301_parallel_interface[0x05] // bit 0 coin counter // bit 2 motor on // bit 3 coin lock - if (tmp68301_parallel_interface_r(space, 0x0005, 0x00ff) & 0x0004) state->m_musobana_outcoin_flag ^= 1; - else state->m_musobana_outcoin_flag = 1; + if (tmp68301_parallel_interface_r(space, 0x0005, 0x00ff) & 0x0004) m_musobana_outcoin_flag ^= 1; + else m_musobana_outcoin_flag = 1; - return state->m_musobana_outcoin_flag & 0x01; + return m_musobana_outcoin_flag & 0x01; } WRITE16_MEMBER(niyanpai_state::musobana_inputport_w) @@ -690,7 +689,7 @@ static INPUT_PORTS_START( musobana ) // I don't have manual for this game. PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_START3 ) // CREDIT CLEAR PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER - PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(musobana_outcoin_flag_r, NULL) // OUT COIN + PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, niyanpai_state,musobana_outcoin_flag_r, NULL) // OUT COIN PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_SERVICE( 0x8000, IP_ACTIVE_LOW ) // TEST @@ -756,7 +755,7 @@ static INPUT_PORTS_START( 4psimasy ) // I don't have manual for this game. PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_START3 ) // CREDIT CLEAR PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER - PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(musobana_outcoin_flag_r, NULL) // OUT COIN + PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, niyanpai_state,musobana_outcoin_flag_r, NULL) // OUT COIN PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_SERVICE( 0x8000, IP_ACTIVE_LOW ) // TEST @@ -822,7 +821,7 @@ static INPUT_PORTS_START( mhhonban ) // I don't have manual for this game. PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_START3 ) // CREDIT CLEAR PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER - PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(musobana_outcoin_flag_r, NULL) // OUT COIN + PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, niyanpai_state,musobana_outcoin_flag_r, NULL) // OUT COIN PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_SERVICE( 0x8000, IP_ACTIVE_LOW ) // TEST diff --git a/src/mame/drivers/nova2001.c b/src/mame/drivers/nova2001.c index dd630610328..252fbd2ab27 100644 --- a/src/mame/drivers/nova2001.c +++ b/src/mame/drivers/nova2001.c @@ -132,10 +132,9 @@ e000 - e7ff R/W Work RAM *************************************/ -static CUSTOM_INPUT( ninjakun_io_A002_ctrl_r ) +CUSTOM_INPUT_MEMBER(nova2001_state::ninjakun_io_A002_ctrl_r) { - nova2001_state *state = field.machine().driver_data(); - return state->m_ninjakun_io_a002_ctrl; + return m_ninjakun_io_a002_ctrl; } WRITE8_MEMBER(nova2001_state::ninjakun_cpu1_io_A002_w) @@ -383,7 +382,7 @@ static INPUT_PORTS_START( ninjakun ) PORT_START("IN2") /* 0xa002 */ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_VBLANK ) - PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(ninjakun_io_A002_ctrl_r, NULL) + PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nova2001_state,ninjakun_io_A002_ctrl_r, NULL) PORT_START("DSW1") // printed "SW 2" PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW2:1") diff --git a/src/mame/drivers/pastelg.c b/src/mame/drivers/pastelg.c index 1bd73e5fd27..8e389083676 100644 --- a/src/mame/drivers/pastelg.c +++ b/src/mame/drivers/pastelg.c @@ -212,9 +212,9 @@ static INPUT_PORTS_START( pastelg ) INPUT_PORTS_END // stops the game hanging.. -static CUSTOM_INPUT( nb1413m3_hackbusyflag_r ) +CUSTOM_INPUT_MEMBER(pastelg_state::nb1413m3_hackbusyflag_r) { - return field.machine().rand() & 3; + return machine().rand() & 3; } static INPUT_PORTS_START( threeds ) @@ -369,7 +369,7 @@ static INPUT_PORTS_START( threeds ) PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("SYSTEM") - PORT_BIT( 0x03, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_hackbusyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x03, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, pastelg_state,nb1413m3_hackbusyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER PORT_SERVICE( 0x10, IP_ACTIVE_LOW ) // TEST diff --git a/src/mame/drivers/pirates.c b/src/mame/drivers/pirates.c index 2b539835f81..0e6432d8e71 100644 --- a/src/mame/drivers/pirates.c +++ b/src/mame/drivers/pirates.c @@ -126,20 +126,20 @@ WRITE16_MEMBER(pirates_state::pirates_out_w) // logerror("%06x: out_w %04x\n",cpu_get_pc(&space.device()),data); } -static CUSTOM_INPUT( prot_r ) +CUSTOM_INPUT_MEMBER(pirates_state::prot_r) { // static int prot = 0xa3; // offs_t pc; int bit; -// logerror("%s: IN1_r\n",field.machine().describe_context()); +// logerror("%s: IN1_r\n",machine().describe_context()); #if 0 /* Pirates protection workaround. It more complicated than this... see code at 602e and 62a6 */ /* For Genix, see 6576 for setting values and 67c2,d3b4 and dbc2 for tests. */ - pc = cpu_get_pc(field.machine().device("main")); + pc = cpu_get_pc(machine().device("main")); if (pc == 0x6134) { bit = prot & 1; @@ -212,7 +212,7 @@ static INPUT_PORTS_START( pirates ) PORT_BIT( 0x0010, IP_ACTIVE_HIGH,IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) // EEPROM data PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // seems checked in "test mode" PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // seems checked in "test mode" - PORT_BIT( 0x0080, IP_ACTIVE_HIGH,IPT_SPECIAL ) PORT_CUSTOM(prot_r, NULL) // protection + PORT_BIT( 0x0080, IP_ACTIVE_HIGH,IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, pirates_state,prot_r, NULL) // protection /* What do these bits do ? */ PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_UNKNOWN ) diff --git a/src/mame/drivers/polepos.c b/src/mame/drivers/polepos.c index ec917ff4153..1a4bbcfa2ba 100644 --- a/src/mame/drivers/polepos.c +++ b/src/mame/drivers/polepos.c @@ -340,12 +340,11 @@ WRITE16_MEMBER(polepos_state::polepos_z8002_nvi_enable_w) } -static CUSTOM_INPUT( high_port_r ) { return input_port_read(field.machine(), (const char *)param) >> 4; } -static CUSTOM_INPUT( low_port_r ) { return input_port_read(field.machine(), (const char *)param) & 0x0f; } -static CUSTOM_INPUT( auto_start_r ) +CUSTOM_INPUT_MEMBER(polepos_state::high_port_r){ return input_port_read(field.machine(), (const char *)param) >> 4; } +CUSTOM_INPUT_MEMBER(polepos_state::low_port_r){ return input_port_read(field.machine(), (const char *)param) & 0x0f; } +CUSTOM_INPUT_MEMBER(polepos_state::auto_start_r) { - polepos_state *state = field.machine().driver_data(); - return state->m_auto_start_mask; + return m_auto_start_mask; } static WRITE8_DEVICE_HANDLER( out_0 ) @@ -533,7 +532,7 @@ static INPUT_PORTS_START( polepos ) PORT_START("IN0L") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Gear Change") PORT_CODE(KEYCODE_SPACE) POLEPOS_TOGGLE /* Gear */ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM(auto_start_r, NULL) // start 1, program controlled + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, polepos_state,auto_start_r, NULL) // start 1, program controlled PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("IN0H") @@ -567,7 +566,7 @@ static INPUT_PORTS_START( polepos ) PORT_DIPSETTING( 0x00, "4" ) PORT_START("DSWA_HI") - PORT_BIT( 0x0f, 0x00, IPT_SPECIAL ) PORT_CUSTOM(high_port_r, "DSWA") + PORT_BIT( 0x0f, 0x00, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, polepos_state,high_port_r, "DSWA") PORT_START("DSWB") PORT_DIPNAME( 0x07, 0x07, "Extended Rank" ) @@ -596,7 +595,7 @@ static INPUT_PORTS_START( polepos ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("DSWB_HI") - PORT_BIT( 0x0f, 0x00, IPT_SPECIAL ) PORT_CUSTOM(high_port_r, "DSWB") + PORT_BIT( 0x0f, 0x00, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, polepos_state,high_port_r, "DSWB") PORT_START("BRAKE") PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_MINMAX(0,0x90) PORT_SENSITIVITY(100) PORT_KEYDELTA(16) @@ -675,10 +674,10 @@ static INPUT_PORTS_START( topracern ) PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) PORT_START("IN0L") - PORT_BIT( 0x0f, 0x00, IPT_SPECIAL ) PORT_CUSTOM(low_port_r, "IN0") + PORT_BIT( 0x0f, 0x00, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, polepos_state,low_port_r, "IN0") PORT_START("IN0H") - PORT_BIT( 0x0f, 0x00, IPT_SPECIAL ) PORT_CUSTOM(high_port_r, "IN0") + PORT_BIT( 0x0f, 0x00, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, polepos_state,high_port_r, "IN0") PORT_START("DSWA") PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_A ) ) @@ -705,7 +704,7 @@ static INPUT_PORTS_START( topracern ) PORT_DIPSETTING( 0x00, "4" ) PORT_START("DSWA_HI") - PORT_BIT( 0x0f, 0x00, IPT_SPECIAL ) PORT_CUSTOM(high_port_r, "DSWA") + PORT_BIT( 0x0f, 0x00, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, polepos_state,high_port_r, "DSWA") /* FIXME: these dips don't work and may not even exist on this bootleg */ PORT_START("DSWB") @@ -735,7 +734,7 @@ static INPUT_PORTS_START( topracern ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("DSWB_HI") - PORT_BIT( 0x0f, 0x00, IPT_SPECIAL ) PORT_CUSTOM(high_port_r, "DSWB") + PORT_BIT( 0x0f, 0x00, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, polepos_state,high_port_r, "DSWB") PORT_START("BRAKE") PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_MINMAX(0,0x90) PORT_SENSITIVITY(100) PORT_KEYDELTA(16) diff --git a/src/mame/drivers/policetr.c b/src/mame/drivers/policetr.c index 9120f5c037d..6428e5b8ab0 100644 --- a/src/mame/drivers/policetr.c +++ b/src/mame/drivers/policetr.c @@ -178,9 +178,9 @@ WRITE32_MEMBER(policetr_state::policetr_bsmt2000_data_w) } -static CUSTOM_INPUT( bsmt_status_r ) +CUSTOM_INPUT_MEMBER(policetr_state::bsmt_status_r) { - return field.machine().device("bsmt")->read_status(); + return machine().device("bsmt")->read_status(); } @@ -321,7 +321,7 @@ static INPUT_PORTS_START( policetr ) PORT_BIT( 0x00100000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_SERVICE( 0x00200000, IP_ACTIVE_LOW ) /* Not actually a dipswitch */ PORT_BIT( 0x00400000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x00800000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(bsmt_status_r, NULL) + PORT_BIT( 0x00800000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, policetr_state,bsmt_status_r, NULL) PORT_BIT( 0x01000000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x04000000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) diff --git a/src/mame/drivers/psikyo.c b/src/mame/drivers/psikyo.c index fefb6dcd763..443d1b831aa 100644 --- a/src/mame/drivers/psikyo.c +++ b/src/mame/drivers/psikyo.c @@ -77,27 +77,25 @@ This was pointed out by Bart Puype ***************************************************************************/ -static CUSTOM_INPUT( z80_nmi_r ) +CUSTOM_INPUT_MEMBER(psikyo_state::z80_nmi_r) { - psikyo_state *state = field.machine().driver_data(); int ret = 0x00; - if (state->m_z80_nmi) + if (m_z80_nmi) { ret = 0x01; /* main CPU might be waiting for sound CPU to finish NMI, so set a timer to give sound CPU a chance to run */ - field.machine().scheduler().synchronize(); + machine().scheduler().synchronize(); // logerror("%s - Read coin port during Z80 NMI\n", machine.describe_context()); } return ret; } -static CUSTOM_INPUT( mcu_status_r ) +CUSTOM_INPUT_MEMBER(psikyo_state::mcu_status_r) { - psikyo_state *state = field.machine().driver_data(); int ret = 0x00; /* Don't know exactly what this bit is, but s1945 and tengai @@ -114,10 +112,10 @@ static CUSTOM_INPUT( mcu_status_r ) Interestingly, s1945jn has the code that spins on this bit, but said code is never reached. Prototype? */ - if (state->m_mcu_status) + if (m_mcu_status) ret = 0x01; - state->m_mcu_status = !state->m_mcu_status; /* hack */ + m_mcu_status = !m_mcu_status; /* hack */ return ret; } @@ -582,7 +580,7 @@ static INPUT_PORTS_START( samuraia ) PORT_BIT( 0x00100000, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_SERVICE_NO_TOGGLE( 0x00200000, IP_ACTIVE_LOW ) PORT_BIT( 0x00400000, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x00800000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(z80_nmi_r, NULL) // From Sound CPU + PORT_BIT( 0x00800000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, psikyo_state,z80_nmi_r, NULL) // From Sound CPU PORT_BIT( 0xff000000, IP_ACTIVE_LOW, IPT_UNKNOWN ) // unused? PORT_MODIFY("DSW") /* c00004 -> c00007 */ @@ -652,7 +650,7 @@ static INPUT_PORTS_START( btlkroad ) PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_SERVICE_NO_TOGGLE( 0x00000020, IP_ACTIVE_LOW ) PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x00000080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(z80_nmi_r, NULL) // From Sound CPU + PORT_BIT( 0x00000080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, psikyo_state,z80_nmi_r, NULL) // From Sound CPU PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(2) PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2) @@ -739,7 +737,7 @@ static INPUT_PORTS_START( gunbird ) PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_SERVICE_NO_TOGGLE( 0x00000020, IP_ACTIVE_LOW ) PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x00000080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(z80_nmi_r, NULL) // From Sound CPU + PORT_BIT( 0x00000080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, psikyo_state,z80_nmi_r, NULL) // From Sound CPU PORT_BIT( 0x0000ff00, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_MODIFY("DSW") /* c00004 -> c00007 */ @@ -803,12 +801,12 @@ static INPUT_PORTS_START( s1945 ) PORT_MODIFY("P1_P2") /* c00000 -> c00003 */ PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x00000004, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(mcu_status_r, NULL) + PORT_BIT( 0x00000004, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, psikyo_state,mcu_status_r, NULL) PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_SERVICE_NO_TOGGLE( 0x00000020, IP_ACTIVE_LOW ) PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x00000080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(z80_nmi_r, NULL) // From Sound CPU + PORT_BIT( 0x00000080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, psikyo_state,z80_nmi_r, NULL) // From Sound CPU PORT_BIT( 0x0000ff00, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_MODIFY("DSW") /* c00004 -> c00007 */ @@ -927,12 +925,12 @@ static INPUT_PORTS_START( tengai ) PORT_MODIFY("P1_P2") /* c00000 -> c00003 */ PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x00000004, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(mcu_status_r, NULL) + PORT_BIT( 0x00000004, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, psikyo_state,mcu_status_r, NULL) PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_SERVICE_NO_TOGGLE( 0x00000020, IP_ACTIVE_LOW ) PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x00000080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(z80_nmi_r, NULL) // From Sound CPU + PORT_BIT( 0x00000080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, psikyo_state,z80_nmi_r, NULL) // From Sound CPU PORT_BIT( 0x0000ff00, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_MODIFY("DSW") /* c00004 -> c00007 */ diff --git a/src/mame/drivers/psikyo4.c b/src/mame/drivers/psikyo4.c index 67b7025dd56..6e4afdaa427 100644 --- a/src/mame/drivers/psikyo4.c +++ b/src/mame/drivers/psikyo4.c @@ -195,22 +195,21 @@ static INTERRUPT_GEN(psikyosh_interrupt) device_set_input_line(device, 4, HOLD_LINE); } -static CUSTOM_INPUT( system_port_r ) +CUSTOM_INPUT_MEMBER(psikyo4_state::system_port_r) { - return input_port_read(field.machine(), "SYSTEM"); + return input_port_read(machine(), "SYSTEM"); } -static CUSTOM_INPUT( mahjong_ctrl_r ) /* used by hotgmck/hgkairak */ +CUSTOM_INPUT_MEMBER(psikyo4_state::mahjong_ctrl_r)/* used by hotgmck/hgkairak */ { - psikyo4_state *state = field.machine().driver_data(); int player = (FPTR)param; - int sel = (state->m_io_select[0] & 0x0000ff00) >> 8; + int sel = (m_io_select[0] & 0x0000ff00) >> 8; int ret = 0xff; - if (sel & 1) ret &= input_port_read(field.machine(), player ? "KEY4" : "KEY0" ); - if (sel & 2) ret &= input_port_read(field.machine(), player ? "KEY5" : "KEY1" ); - if (sel & 4) ret &= input_port_read(field.machine(), player ? "KEY6" : "KEY2" ); - if (sel & 8) ret &= input_port_read(field.machine(), player ? "KEY7" : "KEY3" ); + if (sel & 1) ret &= input_port_read(machine(), player ? "KEY4" : "KEY0" ); + if (sel & 2) ret &= input_port_read(machine(), player ? "KEY5" : "KEY1" ); + if (sel & 4) ret &= input_port_read(machine(), player ? "KEY6" : "KEY2" ); + if (sel & 8) ret &= input_port_read(machine(), player ? "KEY7" : "KEY3" ); return ret; } @@ -379,14 +378,14 @@ ADDRESS_MAP_END static INPUT_PORTS_START( hotgmck ) PORT_START("P1_P2") - PORT_BIT( 0x000000ff, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_CUSTOM(system_port_r, NULL) + PORT_BIT( 0x000000ff, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_CUSTOM_MEMBER(DEVICE_SELF, psikyo4_state,system_port_r, NULL) PORT_BIT( 0x00ffff00, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0xff000000, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_CUSTOM(mahjong_ctrl_r, (void *)0) + PORT_BIT( 0xff000000, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_CUSTOM_MEMBER(DEVICE_SELF, psikyo4_state,mahjong_ctrl_r, (void *)0) PORT_START("P3_P4") - PORT_BIT( 0x000000ff, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_CUSTOM(system_port_r, NULL) + PORT_BIT( 0x000000ff, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_CUSTOM_MEMBER(DEVICE_SELF, psikyo4_state,system_port_r, NULL) PORT_BIT( 0x00ffff00, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0xff000000, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_CUSTOM(mahjong_ctrl_r, (void *)1) + PORT_BIT( 0xff000000, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_CUSTOM_MEMBER(DEVICE_SELF, psikyo4_state,mahjong_ctrl_r, (void *)1) PORT_START("JP4")/* jumper pads 'JP4' on the PCB */ /* EEPROM is read here */ diff --git a/src/mame/drivers/punchout.c b/src/mame/drivers/punchout.c index cc9c72dbd2e..152df756a11 100644 --- a/src/mame/drivers/punchout.c +++ b/src/mame/drivers/punchout.c @@ -119,10 +119,10 @@ DIP locations verified for: #include "includes/punchout.h" -static CUSTOM_INPUT( punchout_vlm5030_busy_r ) +CUSTOM_INPUT_MEMBER(punchout_state::punchout_vlm5030_busy_r) { /* bit 4 of DSW1 is busy pin level */ - return (vlm5030_bsy(field.machine().device("vlm"))) ? 0x00 : 0x01; + return (vlm5030_bsy(machine().device("vlm"))) ? 0x00 : 0x01; } static WRITE8_DEVICE_HANDLER( punchout_speech_reset_w ) @@ -437,7 +437,7 @@ static INPUT_PORTS_START( punchout ) PORT_DIPSETTING( 0x0a, DEF_STR( 1C_5C ) ) PORT_DIPSETTING( 0x07, DEF_STR( 1C_6C ) ) PORT_DIPSETTING( 0x0f, DEF_STR( Free_Play ) ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(punchout_vlm5030_busy_r, NULL) /* VLM5030 busy signal */ + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, punchout_state,punchout_vlm5030_busy_r, NULL) /* VLM5030 busy signal */ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_DIPUNUSED_DIPLOC( 0x40, 0x00, "R18:!1" ) /* Not documented, R18 resistor */ PORT_DIPNAME( 0x80, 0x00, "Copyright" ) PORT_DIPLOCATION("R19:!1") /* Not documented, R19 resistor */ @@ -868,7 +868,7 @@ bit 3210 5432 L R C PORT_DIPSETTING( 0x0d, "1101" ) PORT_DIPSETTING( 0x0e, "1110" ) PORT_DIPSETTING( 0x0f, "1111" ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(punchout_vlm5030_busy_r, NULL) /* VLM5030 busy signal */ + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, punchout_state,punchout_vlm5030_busy_r, NULL) /* VLM5030 busy signal */ PORT_DIPNAME( 0x40, 0x00, "Coin Slots" ) PORT_DIPLOCATION("R18:!1") /* R18 resistor */ PORT_DIPSETTING( 0x40, "1" ) PORT_DIPSETTING( 0x00, "2" ) diff --git a/src/mame/drivers/qdrmfgp.c b/src/mame/drivers/qdrmfgp.c index 4a55d3dc887..6f27ec2bbab 100644 --- a/src/mame/drivers/qdrmfgp.c +++ b/src/mame/drivers/qdrmfgp.c @@ -37,15 +37,14 @@ GP1 HDD data contents: * *************************************/ -static CUSTOM_INPUT( inputs_r ) +CUSTOM_INPUT_MEMBER(qdrmfgp_state::inputs_r) { - qdrmfgp_state *state = field.machine().driver_data(); const char *tag1 = (const char *)param; const char *tag2 = tag1 + strlen(tag1) + 1; - return input_port_read(field.machine(), (state->m_control & 0x0080) ? tag1 : tag2); + return input_port_read(machine(), (m_control & 0x0080) ? tag1 : tag2); } -static CUSTOM_INPUT( battery_sensor_r ) +CUSTOM_INPUT_MEMBER(qdrmfgp_state::battery_sensor_r) { /* bit 0-1 battery power sensor: 3=good, 2=low, other=bad */ return 0x0003; @@ -385,7 +384,7 @@ ADDRESS_MAP_END static INPUT_PORTS_START( qdrmfgp ) PORT_START("340000") - PORT_BIT( 0xffff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(inputs_r, "INPUTS\0DSW") + PORT_BIT( 0xffff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, qdrmfgp_state,inputs_r, "INPUTS\0DSW") PORT_START("INPUTS") PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START1 ) @@ -460,7 +459,7 @@ static INPUT_PORTS_START( qdrmfgp ) PORT_DIPSETTING( 0x0000, DEF_STR( Very_Hard ) ) PORT_START("SENSOR") - PORT_BIT( 0x0003, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(battery_sensor_r, NULL) /* battery power sensor */ + PORT_BIT( 0x0003, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, qdrmfgp_state,battery_sensor_r, NULL) /* battery power sensor */ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_SERVICE3 ) PORT_BIT( 0xfff0, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -468,7 +467,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( qdrmfgp2 ) PORT_START("340000") - PORT_BIT( 0xffff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(inputs_r, "INPUTS\0DSW") + PORT_BIT( 0xffff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, qdrmfgp_state,inputs_r, "INPUTS\0DSW") PORT_START("INPUTS") PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START1 ) @@ -543,7 +542,7 @@ static INPUT_PORTS_START( qdrmfgp2 ) PORT_DIPSETTING( 0x0000, DEF_STR( Very_Hard ) ) PORT_START("SENSOR") - PORT_BIT( 0x0003, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(battery_sensor_r, NULL) /* battery power sensor */ + PORT_BIT( 0x0003, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, qdrmfgp_state,battery_sensor_r, NULL) /* battery power sensor */ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_SERVICE3 ) PORT_BIT( 0xfff0, IP_ACTIVE_LOW, IPT_UNUSED ) diff --git a/src/mame/drivers/renegade.c b/src/mame/drivers/renegade.c index 73c0e0fab93..3eecf6f6125 100644 --- a/src/mame/drivers/renegade.c +++ b/src/mame/drivers/renegade.c @@ -593,20 +593,19 @@ READ8_MEMBER(renegade_state::mcu_r) } } -static CUSTOM_INPUT( mcu_status_r ) +CUSTOM_INPUT_MEMBER(renegade_state::mcu_status_r) { - renegade_state *state = field.machine().driver_data(); UINT8 res = 0; - if (state->m_mcu_sim == TRUE) + if (m_mcu_sim == TRUE) { res = 1; } else { - if (!state->m_main_sent) + if (!m_main_sent) res |= 0x01; - if (!state->m_mcu_sent) + if (!m_mcu_sent) res |= 0x02; } @@ -717,7 +716,7 @@ static INPUT_PORTS_START( renegade ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) /* attack right */ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) /* attack right */ - PORT_BIT( 0x30, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM(mcu_status_r, NULL) + PORT_BIT( 0x30, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM_MEMBER(DEVICE_SELF, renegade_state,mcu_status_r, NULL) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_VBLANK ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE1 ) diff --git a/src/mame/drivers/rpunch.c b/src/mame/drivers/rpunch.c index 92b871349f7..88510a534b5 100644 --- a/src/mame/drivers/rpunch.c +++ b/src/mame/drivers/rpunch.c @@ -144,9 +144,9 @@ static MACHINE_RESET( rpunch ) * *************************************/ -static CUSTOM_INPUT( hi_bits_r ) +CUSTOM_INPUT_MEMBER(rpunch_state::hi_bits_r) { - return input_port_read(field.machine(), "SERVICE"); + return input_port_read(machine(), "SERVICE"); } @@ -275,7 +275,7 @@ static INPUT_PORTS_START( rpunch ) PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_BIT( 0x00c0, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(hi_bits_r, NULL) + PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, rpunch_state,hi_bits_r, NULL) PORT_START("P2") /* c001a lower 8 bits */ PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) @@ -285,7 +285,7 @@ static INPUT_PORTS_START( rpunch ) PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_BIT( 0x00c0, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(hi_bits_r, NULL) + PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, rpunch_state,hi_bits_r, NULL) PORT_START("SERVICE") /* c0018/c001a upper 8 bits */ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) diff --git a/src/mame/drivers/scramble.c b/src/mame/drivers/scramble.c index 3767c87ac32..2f91dd1e870 100644 --- a/src/mame/drivers/scramble.c +++ b/src/mame/drivers/scramble.c @@ -472,10 +472,10 @@ INPUT_PORTS_END /* ckongs coinage DIPs are spread across two input ports */ -static CUSTOM_INPUT( ckongs_coinage_r ) +CUSTOM_INPUT_MEMBER(scramble_state::ckongs_coinage_r) { int bit_mask = (FPTR)param; - return (input_port_read(field.machine(), "FAKE") & bit_mask) ? 0x01 : 0x00; + return (input_port_read(machine(), "FAKE") & bit_mask) ? 0x01 : 0x00; } @@ -491,8 +491,8 @@ static INPUT_PORTS_START( ckongs ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_START("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(ckongs_coinage_r, (void *)0x01) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(ckongs_coinage_r, (void *)0x02) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, scramble_state,ckongs_coinage_r, (void *)0x01) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, scramble_state,ckongs_coinage_r, (void *)0x02) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL @@ -508,7 +508,7 @@ static INPUT_PORTS_START( ckongs ) PORT_DIPNAME( 0x04, 0x04, DEF_STR( Lives ) ) PORT_DIPSETTING( 0x04, "3" ) PORT_DIPSETTING( 0x00, "4" ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(ckongs_coinage_r, (void *)0x04) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, scramble_state,ckongs_coinage_r, (void *)0x04) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY diff --git a/src/mame/drivers/segag80v.c b/src/mame/drivers/segag80v.c index db8dec825b2..e62ecf530df 100644 --- a/src/mame/drivers/segag80v.c +++ b/src/mame/drivers/segag80v.c @@ -287,9 +287,9 @@ READ8_MEMBER(segag80v_state::spinner_input_r) * *************************************/ -static CUSTOM_INPUT( elim4_joint_coin_r ) +CUSTOM_INPUT_MEMBER(segag80v_state::elim4_joint_coin_r) { - return (input_port_read(field.machine(), "COINS") & 0xf) != 0xf; + return (input_port_read(machine(), "COINS") & 0xf) != 0xf; } @@ -555,7 +555,7 @@ static INPUT_PORTS_START( elim4 ) PORT_INCLUDE( g80v_generic ) PORT_MODIFY("D7D6") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM(elim4_joint_coin_r, NULL) /* combination of all four coin inputs */ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, segag80v_state,elim4_joint_coin_r, NULL) /* combination of all four coin inputs */ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) diff --git a/src/mame/drivers/seibuspi.c b/src/mame/drivers/seibuspi.c index c153353be4d..78b83d37c21 100644 --- a/src/mame/drivers/seibuspi.c +++ b/src/mame/drivers/seibuspi.c @@ -936,23 +936,22 @@ static READ32_HANDLER( spi_controls2_r ) return 0xffffffff; } -static CUSTOM_INPUT( ejsakura_keyboard_r ) +CUSTOM_INPUT_MEMBER(seibuspi_state::ejsakura_keyboard_r) { - seibuspi_state *state = field.machine().driver_data(); - switch(state->m_ejsakura_input_port) + switch(m_ejsakura_input_port) { case 0x01: - return input_port_read(field.machine(), "INPUT01"); + return input_port_read(machine(), "INPUT01"); case 0x02: - return input_port_read(field.machine(), "INPUT02"); + return input_port_read(machine(), "INPUT02"); case 0x04: - return input_port_read(field.machine(), "INPUT04"); + return input_port_read(machine(), "INPUT04"); case 0x08: - return input_port_read(field.machine(), "INPUT08"); + return input_port_read(machine(), "INPUT08"); case 0x10: - return input_port_read(field.machine(), "INPUT10"); + return input_port_read(machine(), "INPUT10"); default: - return input_port_read(field.machine(), "SYSTEM"); + return input_port_read(machine(), "SYSTEM"); } return 0xffffffff; } @@ -1295,10 +1294,10 @@ INPUT_PORTS_END Start - 000111 port 0 */ -static CUSTOM_INPUT( ejanhs_encode ) +CUSTOM_INPUT_MEMBER(seibuspi_state::ejanhs_encode) { static const UINT8 encoding[] = { 0x02, 0x10, 0x03, 0x18, 0x04, 0x20, 0x05, 0x28, 0x06, 0x30, 0x07 }; - input_port_value state = input_port_read(field.machine(), (const char *)param); + input_port_value state = input_port_read(machine(), (const char *)param); int bit; for (bit = 0; bit < ARRAY_LENGTH(encoding); bit++) @@ -1309,8 +1308,8 @@ static CUSTOM_INPUT( ejanhs_encode ) static INPUT_PORTS_START( spi_ejanhs ) PORT_START("INPUTS") - PORT_BIT( 0x0000003f, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM(ejanhs_encode, "IN0BITS") - PORT_BIT( 0x00003f00, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM(ejanhs_encode, "IN1BITS") + PORT_BIT( 0x0000003f, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, seibuspi_state,ejanhs_encode, "IN0BITS") + PORT_BIT( 0x00003f00, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, seibuspi_state,ejanhs_encode, "IN1BITS") PORT_BIT( 0xffff0000, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("SYSTEM") @@ -1358,7 +1357,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( spi_ejsakura ) PORT_START("INPUTS") - PORT_BIT( 0xffffffff, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM(ejsakura_keyboard_r, NULL) + PORT_BIT( 0xffffffff, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM_MEMBER(DEVICE_SELF, seibuspi_state,ejsakura_keyboard_r, NULL) PORT_START("INPUT01") PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_UNKNOWN ) diff --git a/src/mame/drivers/snk.c b/src/mame/drivers/snk.c index 2d48febd26c..85e96278c26 100644 --- a/src/mame/drivers/snk.c +++ b/src/mame/drivers/snk.c @@ -329,11 +329,10 @@ READ8_MEMBER(snk_state::marvins_soundlatch_r) return soundlatch_r(space, 0); } -static CUSTOM_INPUT( marvins_sound_busy ) +CUSTOM_INPUT_MEMBER(snk_state::marvins_sound_busy) { - snk_state *state = field.machine().driver_data(); - return state->m_marvins_sound_busy_flag; + return m_marvins_sound_busy_flag; } READ8_MEMBER(snk_state::marvins_sound_nmi_ack_r) @@ -496,11 +495,10 @@ WRITE8_MEMBER(snk_state::snk_soundlatch_w) machine().scheduler().synchronize(FUNC(sndirq_update_callback), CMDIRQ_BUSY_ASSERT); } -static CUSTOM_INPUT( snk_sound_busy ) +CUSTOM_INPUT_MEMBER(snk_state::snk_sound_busy) { - snk_state *state = field.machine().driver_data(); - return (state->m_sound_status & 4) ? 1 : 0; + return (m_sound_status & 4) ? 1 : 0; } @@ -739,29 +737,28 @@ hand, always returning 0xf inbetween valid values confuses the game. *****************************************************************************/ -static CUSTOM_INPUT( gwar_rotary ) +CUSTOM_INPUT_MEMBER(snk_state::gwar_rotary) { - snk_state *state = field.machine().driver_data(); static const char *const ports[] = { "P1ROT", "P2ROT" }; int which = (int)(FPTR)param; - int value = input_port_read(field.machine(), ports[which]); + int value = input_port_read(machine(), ports[which]); - if ((state->m_last_value[which] == 0x5 && value == 0x6) || (state->m_last_value[which] == 0x6 && value == 0x5)) + if ((m_last_value[which] == 0x5 && value == 0x6) || (m_last_value[which] == 0x6 && value == 0x5)) { - if (!state->m_cp_count[which]) + if (!m_cp_count[which]) value = 0xf; - state->m_cp_count[which] = (state->m_cp_count[which] + 1) & 0x07; + m_cp_count[which] = (m_cp_count[which] + 1) & 0x07; } - state->m_last_value[which] = value; + m_last_value[which] = value; return value; } -static CUSTOM_INPUT( gwarb_rotary ) +CUSTOM_INPUT_MEMBER(snk_state::gwarb_rotary) { - if (input_port_read(field.machine(), "JOYSTICK_MODE") == 1) + if (input_port_read(machine(), "JOYSTICK_MODE") == 1) { - return gwar_rotary(device, field, param); + return gwar_rotary(field, param); } else { @@ -805,38 +802,36 @@ WRITE8_MEMBER(snk_state::countryc_trackball_w) m_countryc_trackball = data & 1; } -static CUSTOM_INPUT( countryc_trackball_x ) +CUSTOM_INPUT_MEMBER(snk_state::countryc_trackball_x) { - snk_state *state = field.machine().driver_data(); - return input_port_read(field.machine(), state->m_countryc_trackball ? "TRACKBALLX2" : "TRACKBALLX1"); + return input_port_read(machine(), m_countryc_trackball ? "TRACKBALLX2" : "TRACKBALLX1"); } -static CUSTOM_INPUT( countryc_trackball_y ) +CUSTOM_INPUT_MEMBER(snk_state::countryc_trackball_y) { - snk_state *state = field.machine().driver_data(); - return input_port_read(field.machine(), state->m_countryc_trackball ? "TRACKBALLY2" : "TRACKBALLY1"); + return input_port_read(machine(), m_countryc_trackball ? "TRACKBALLY2" : "TRACKBALLY1"); } /************************************************************************/ -static CUSTOM_INPUT( snk_bonus_r ) +CUSTOM_INPUT_MEMBER(snk_state::snk_bonus_r) { int bit_mask = (FPTR)param; switch (bit_mask) { case 0x01: /* older games : "Occurrence" Dip Switch (DSW2:1) */ - return ((input_port_read(field.machine(), "BONUS") & bit_mask) >> 0); + return ((input_port_read(machine(), "BONUS") & bit_mask) >> 0); case 0xc0: /* older games : "Bonus Life" Dip Switches (DSW1:7,8) */ - return ((input_port_read(field.machine(), "BONUS") & bit_mask) >> 6); + return ((input_port_read(machine(), "BONUS") & bit_mask) >> 6); case 0x04: /* later games : "Occurrence" Dip Switch (DSW1:3) */ - return ((input_port_read(field.machine(), "BONUS") & bit_mask) >> 2); + return ((input_port_read(machine(), "BONUS") & bit_mask) >> 2); case 0x30: /* later games : "Bonus Life" Dip Switches (DSW2:5,6) */ - return ((input_port_read(field.machine(), "BONUS") & bit_mask) >> 4); + return ((input_port_read(machine(), "BONUS") & bit_mask) >> 4); default: logerror("snk_bonus_r : invalid %02X bit_mask\n",bit_mask); @@ -1518,7 +1513,7 @@ static INPUT_PORTS_START( marvins ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(marvins_sound_busy, NULL) /* sound CPU status */ + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,marvins_sound_busy, NULL) /* sound CPU status */ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) // service switch according to schematics, see code at 0x0453. Goes to garbage. PORT_START("IN1") @@ -1600,7 +1595,7 @@ static INPUT_PORTS_START( vangrd2 ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(marvins_sound_busy, NULL) /* sound CPU status */ + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,marvins_sound_busy, NULL) /* sound CPU status */ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) @@ -1684,8 +1679,8 @@ static INPUT_PORTS_START( madcrash ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(marvins_sound_busy, NULL) /* sound CPU status */ - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(marvins_sound_busy, NULL) /* sound CPU status */ + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,marvins_sound_busy, NULL) /* sound CPU status */ + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,marvins_sound_busy, NULL) /* sound CPU status */ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_START("IN1") @@ -1762,7 +1757,7 @@ static INPUT_PORTS_START( jcross ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(snk_sound_busy, 0) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,snk_sound_busy, 0) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) @@ -1805,10 +1800,10 @@ static INPUT_PORTS_START( jcross ) PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) // PORT_DIPSETTING( 0x10, "INVALID !" ) /* settings table at 0x0378 is only 5 bytes wide */ // PORT_DIPSETTING( 0x08, "INVALID !" ) /* settings table at 0x0378 is only 5 bytes wide */ - PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(snk_bonus_r, (void *)0xc0) + PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,snk_bonus_r, (void *)0xc0) PORT_START("DSW2") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(snk_bonus_r, (void *)0x01) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,snk_bonus_r, (void *)0x01) PORT_DIPNAME( 0x06, 0x06, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("DSW2:2,3") PORT_DIPSETTING( 0x06, DEF_STR( Easy ) ) PORT_DIPSETTING( 0x04, DEF_STR( Normal ) ) @@ -1847,7 +1842,7 @@ static INPUT_PORTS_START( sgladiat ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(snk_sound_busy, 0) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,snk_sound_busy, 0) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE ) /* code at 0x054e */ @@ -1888,10 +1883,10 @@ static INPUT_PORTS_START( sgladiat ) PORT_DIPSETTING( 0x30, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x28, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(snk_bonus_r, (void *)0xc0) + PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,snk_bonus_r, (void *)0xc0) PORT_START("DSW2") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(snk_bonus_r, (void *)0x01) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,snk_bonus_r, (void *)0x01) PORT_DIPNAME( 0x02, 0x02, "Time" ) PORT_DIPLOCATION("DSW2:2") PORT_DIPSETTING( 0x02, "More" ) /* Hazard race 2:30 / Chariot race 3:30 */ PORT_DIPSETTING( 0x00, "Less" ) /* Hazard race 2:00 / Chariot race 3:00 */ @@ -1931,7 +1926,7 @@ static INPUT_PORTS_START( hal21 ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(snk_sound_busy, 0) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,snk_sound_busy, 0) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) @@ -1972,10 +1967,10 @@ static INPUT_PORTS_START( hal21 ) PORT_DIPSETTING( 0x30, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x28, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(snk_bonus_r, (void *)0xc0) + PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,snk_bonus_r, (void *)0xc0) PORT_START("DSW2") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(snk_bonus_r, (void *)0x01) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,snk_bonus_r, (void *)0x01) PORT_DIPNAME( 0x06, 0x06, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("DSW2:2,3") PORT_DIPSETTING( 0x06, DEF_STR( Easy ) ) PORT_DIPSETTING( 0x04, DEF_STR( Normal ) ) @@ -2014,7 +2009,7 @@ static INPUT_PORTS_START( aso ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) /* uses "Coinage" settings - code at 0x2e04 */ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(snk_sound_busy, 0) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,snk_sound_busy, 0) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) @@ -2057,10 +2052,10 @@ static INPUT_PORTS_START( aso ) PORT_DIPSETTING( 0x10, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x08, DEF_STR( 1C_4C ) ) PORT_DIPSETTING( 0x00, DEF_STR( 1C_6C ) ) - PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(snk_bonus_r, (void *)0xc0) + PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,snk_bonus_r, (void *)0xc0) PORT_START("DSW2") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(snk_bonus_r, (void *)0x01) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,snk_bonus_r, (void *)0x01) PORT_DIPNAME( 0x06, 0x06, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("DSW2:2,3") PORT_DIPSETTING( 0x06, DEF_STR( Easy ) ) PORT_DIPSETTING( 0x04, DEF_STR( Normal ) ) @@ -2100,7 +2095,7 @@ static INPUT_PORTS_START( alphamis ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) /* uses "Coin A" settings - code at 0x2e17 */ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(snk_sound_busy, 0) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,snk_sound_busy, 0) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) @@ -2147,7 +2142,7 @@ static INPUT_PORTS_START( alphamis ) PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "DSW1:8" ) PORT_START("DSW2") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(snk_bonus_r, (void *)0x01) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,snk_bonus_r, (void *)0x01) PORT_DIPNAME( 0x06, 0x06, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("DSW2:2,3") PORT_DIPSETTING( 0x06, DEF_STR( Easy ) ) PORT_DIPSETTING( 0x04, DEF_STR( Normal ) ) @@ -2182,7 +2177,7 @@ static INPUT_PORTS_START( tnk3 ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(snk_sound_busy, 0) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,snk_sound_busy, 0) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) @@ -2229,10 +2224,10 @@ static INPUT_PORTS_START( tnk3 ) PORT_DIPSETTING( 0x30, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x28, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(snk_bonus_r, (void *)0xc0) + PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,snk_bonus_r, (void *)0xc0) PORT_START("DSW2") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(snk_bonus_r, (void *)0x01) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,snk_bonus_r, (void *)0x01) PORT_DIPNAME( 0x06, 0x06, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("DSW2:2,3") PORT_DIPSETTING( 0x06, DEF_STR( Easy ) ) PORT_DIPSETTING( 0x04, DEF_STR( Normal ) ) @@ -2266,7 +2261,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( athena ) PORT_START("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(snk_sound_busy, 0) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,snk_sound_busy, 0) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) /* uses "Coin A" settings - code at 0x09d4 */ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) @@ -2303,7 +2298,7 @@ static INPUT_PORTS_START( athena ) PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("DSW1:2") PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) /* Single Controls */ PORT_DIPSETTING( 0x02, DEF_STR( Cocktail ) ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(snk_bonus_r, (void *)0x04) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,snk_bonus_r, (void *)0x04) PORT_DIPNAME( 0x08, 0x08, DEF_STR( Lives ) ) PORT_DIPLOCATION("DSW1:4") PORT_DIPSETTING( 0x08, "3" ) PORT_DIPSETTING( 0x00, "5" ) @@ -2330,7 +2325,7 @@ static INPUT_PORTS_START( athena ) PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("DSW2:4") PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x30, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(snk_bonus_r, (void *)0x30) + PORT_BIT( 0x30, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,snk_bonus_r, (void *)0x30) PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "DSW2:7" ) PORT_DIPNAME( 0x80, 0x80, "Energy" ) PORT_DIPLOCATION("DSW2:8") PORT_DIPSETTING( 0x80, "12" ) @@ -2351,7 +2346,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( fitegolf ) PORT_START("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(snk_sound_busy, 0) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,snk_sound_busy, 0) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) /* uses "Coin A" settings - code at 0x045b */ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_TILT ) /* reset */ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE ) /* same as the dip switch */ @@ -2436,7 +2431,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( countryc ) PORT_START("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(snk_sound_busy, 0) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,snk_sound_busy, 0) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) /* uses "Coin A" settings - code at 0x0450 */ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_TILT ) /* reset */ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE ) /* same as the dip switch */ @@ -2446,10 +2441,10 @@ static INPUT_PORTS_START( countryc ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) PORT_START("IN1") - PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(countryc_trackball_x, 0) + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,countryc_trackball_x, 0) PORT_START("IN2") - PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(countryc_trackball_y, 0) + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,countryc_trackball_y, 0) PORT_START("IN3") PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -2518,7 +2513,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( ikari ) PORT_START("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(snk_sound_busy, 0) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,snk_sound_busy, 0) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) /* adds 1 credit - code at 0x0a15 */ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) @@ -2558,7 +2553,7 @@ static INPUT_PORTS_START( ikari ) PORT_DIPNAME( 0x02, 0x02, "P1 & P2 Fire Buttons" ) PORT_DIPLOCATION("DSW1:2") PORT_DIPSETTING( 0x02, "Separate" ) PORT_DIPSETTING( 0x00, "Common" ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(snk_bonus_r, (void *)0x04) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,snk_bonus_r, (void *)0x04) PORT_DIPNAME( 0x08, 0x08, DEF_STR( Lives ) ) PORT_DIPLOCATION("DSW1:4") PORT_DIPSETTING( 0x08, "3" ) PORT_DIPSETTING( 0x00, "5" ) @@ -2584,7 +2579,7 @@ static INPUT_PORTS_START( ikari ) PORT_DIPSETTING( 0x08, "Demo Sounds On" ) PORT_DIPSETTING( 0x04, "Freeze" ) PORT_DIPSETTING( 0x00, "Infinite Lives (Cheat)") - PORT_BIT( 0x30, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(snk_bonus_r, (void *)0x30) + PORT_BIT( 0x30, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,snk_bonus_r, (void *)0x30) PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "DSW2:7" ) /* read at 0x07c4, but strange test at 0x07cc */ PORT_DIPNAME( 0x80, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("DSW2:8") PORT_DIPSETTING( 0x80, DEF_STR( No ) ) @@ -2613,7 +2608,7 @@ static INPUT_PORTS_START( ikaria ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) /* adds 1 credit - code at 0x0a00 */ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(snk_sound_busy, 0) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,snk_sound_busy, 0) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_TILT ) /* reset */ INPUT_PORTS_END @@ -2650,7 +2645,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( victroad ) PORT_START("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(snk_sound_busy, 0) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,snk_sound_busy, 0) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) /* adds 1 credit - code at 0x0a19 */ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_TILT ) /* reset */ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) @@ -2690,7 +2685,7 @@ static INPUT_PORTS_START( victroad ) PORT_DIPNAME( 0x02, 0x02, "P1 & P2 Fire Buttons" ) PORT_DIPLOCATION("DSW1:2") PORT_DIPSETTING( 0x02, "Separate" ) PORT_DIPSETTING( 0x00, "Common" ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(snk_bonus_r, (void *)0x04) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,snk_bonus_r, (void *)0x04) PORT_DIPNAME( 0x08, 0x08, DEF_STR( Lives ) ) PORT_DIPLOCATION("DSW1:4") PORT_DIPSETTING( 0x08, "3" ) PORT_DIPSETTING( 0x00, "5" ) @@ -2716,7 +2711,7 @@ static INPUT_PORTS_START( victroad ) PORT_DIPSETTING( 0x08, "Demo Sounds On" ) PORT_DIPSETTING( 0x00, "Freeze" ) PORT_DIPSETTING( 0x04, "Infinite Lives (Cheat)") - PORT_BIT( 0x30, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(snk_bonus_r, (void *)0x30) + PORT_BIT( 0x30, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,snk_bonus_r, (void *)0x30) PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("DSW2:7") PORT_DIPSETTING( 0x40, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) @@ -2754,7 +2749,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( bermudat ) PORT_START("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(snk_sound_busy, 0) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,snk_sound_busy, 0) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) /* uses "Coin A" settings - code at 0x0a0a */ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_TILT ) /* reset */ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) @@ -2792,7 +2787,7 @@ static INPUT_PORTS_START( bermudat ) PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("DSW1:2") PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(snk_bonus_r, (void *)0x04) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,snk_bonus_r, (void *)0x04) PORT_DIPNAME( 0x08, 0x08, DEF_STR( Lives ) ) PORT_DIPLOCATION("DSW1:4") PORT_DIPSETTING( 0x08, "3" ) PORT_DIPSETTING( 0x00, "5" ) @@ -2818,7 +2813,7 @@ static INPUT_PORTS_START( bermudat ) PORT_DIPSETTING( 0x08, "Demo Sounds On" ) PORT_DIPSETTING( 0x00, "Freeze" ) PORT_DIPSETTING( 0x04, "Infinite Lives (Cheat)") - PORT_BIT( 0x30, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(snk_bonus_r, (void *)0x30) + PORT_BIT( 0x30, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,snk_bonus_r, (void *)0x30) PORT_DIPNAME( 0xc0, 0x80, "Game Style" ) PORT_DIPLOCATION("DSW2:7,8") PORT_DIPSETTING( 0xc0, "Normal without continue" ) PORT_DIPSETTING( 0x80, "Normal with continue" ) @@ -2883,7 +2878,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( psychos ) PORT_START("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(snk_sound_busy, 0) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,snk_sound_busy, 0) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_TILT ) /* reset */ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) @@ -2920,7 +2915,7 @@ static INPUT_PORTS_START( psychos ) PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("DSW1:2") PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(snk_bonus_r, (void *)0x04) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,snk_bonus_r, (void *)0x04) PORT_DIPNAME( 0x08, 0x08, DEF_STR( Lives ) ) PORT_DIPLOCATION("DSW1:4") PORT_DIPSETTING( 0x08, "3" ) PORT_DIPSETTING( 0x00, "5" ) @@ -2947,7 +2942,7 @@ static INPUT_PORTS_START( psychos ) PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("DSW2:4") PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x30, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(snk_bonus_r, (void *)0x30) + PORT_BIT( 0x30, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,snk_bonus_r, (void *)0x30) PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("DSW2:7") PORT_DIPSETTING( 0x40, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) @@ -2968,7 +2963,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( gwar ) PORT_START("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(snk_sound_busy, 0) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,snk_sound_busy, 0) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) /* uses "Coin A" settings - code at 0x08c8 */ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_TILT ) /* reset */ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE ) @@ -2982,7 +2977,7 @@ static INPUT_PORTS_START( gwar ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(gwar_rotary, (void*)0) + PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,gwar_rotary, (void*)0) PORT_START("P1ROT") PORT_BIT( 0x0f, 0x00, IPT_POSITIONAL ) PORT_POSITIONS(12) PORT_WRAPS PORT_SENSITIVITY(15) PORT_KEYDELTA(1) PORT_CODE_DEC(KEYCODE_Z) PORT_CODE_INC(KEYCODE_X) PORT_REVERSE PORT_FULL_TURN_COUNT(12) @@ -2992,7 +2987,7 @@ static INPUT_PORTS_START( gwar ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(gwar_rotary, (void*)1) + PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,gwar_rotary, (void*)1) PORT_START("P2ROT") PORT_BIT( 0x0f, 0x00, IPT_POSITIONAL ) PORT_POSITIONS(12) PORT_WRAPS PORT_SENSITIVITY(15) PORT_KEYDELTA(1) PORT_CODE_DEC(KEYCODE_N) PORT_CODE_INC(KEYCODE_M) PORT_PLAYER(2) PORT_REVERSE PORT_FULL_TURN_COUNT(12) @@ -3014,7 +3009,7 @@ static INPUT_PORTS_START( gwar ) PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("DSW1:2") PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(snk_bonus_r, (void *)0x04) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,snk_bonus_r, (void *)0x04) PORT_DIPNAME( 0x08, 0x08, DEF_STR( Lives ) ) PORT_DIPLOCATION("DSW1:4") PORT_DIPSETTING( 0x08, "3" ) PORT_DIPSETTING( 0x00, "5" ) @@ -3040,7 +3035,7 @@ static INPUT_PORTS_START( gwar ) PORT_DIPSETTING( 0x08, "Demo Sounds On" ) PORT_DIPSETTING( 0x00, "Freeze" ) PORT_DIPSETTING( 0x04, "Infinite Lives (Cheat)") - PORT_BIT( 0x30, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(snk_bonus_r, (void *)0x30) + PORT_BIT( 0x30, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,snk_bonus_r, (void *)0x30) PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "DSW2:7" ) PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "DSW2:8" ) @@ -3063,10 +3058,10 @@ static INPUT_PORTS_START( gwarb ) // connected. If rotary is not connected, player fires in the direction he's facing. PORT_MODIFY("IN1") - PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(gwarb_rotary, (void*)0) + PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,gwarb_rotary, (void*)0) PORT_MODIFY("IN2") - PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(gwarb_rotary, (void*)1) + PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,gwarb_rotary, (void*)1) PORT_START("JOYSTICK_MODE") PORT_CONFNAME( 0x01, 0x00, "Joystick mode" ) @@ -3077,7 +3072,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( chopper ) PORT_START("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(snk_sound_busy, 0) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,snk_sound_busy, 0) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) /* uses "Coin A" settings - code at 0x0849 */ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_TILT ) /* reset */ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE ) @@ -3116,7 +3111,7 @@ static INPUT_PORTS_START( chopper ) PORT_DIPNAME( 0x02, 0x02, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("DSW1:2") PORT_DIPSETTING( 0x02, DEF_STR( Upright ) ) /* Single Controls */ PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(snk_bonus_r, (void *)0x04) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,snk_bonus_r, (void *)0x04) PORT_DIPNAME( 0x08, 0x08, DEF_STR( Lives ) ) PORT_DIPLOCATION("DSW1:4") PORT_DIPSETTING( 0x08, "3" ) PORT_DIPSETTING( 0x00, "5" ) @@ -3142,7 +3137,7 @@ static INPUT_PORTS_START( chopper ) PORT_DIPSETTING( 0x0c, "Demo Sounds On" ) PORT_DIPSETTING( 0x00, "Freeze" ) PORT_DIPSETTING( 0x04, "Infinite Lives (Cheat)") - PORT_BIT( 0x30, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(snk_bonus_r, (void *)0x30) + PORT_BIT( 0x30, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,snk_bonus_r, (void *)0x30) PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("DSW2:7") PORT_DIPSETTING( 0x00, DEF_STR( No ) ) PORT_DIPSETTING( 0x40, DEF_STR( Yes ) ) @@ -3198,7 +3193,7 @@ static INPUT_PORTS_START( tdfever ) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE ) /* also reset - code at 0x074a */ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) /* adds 1 credit - code at 0x1065 */ - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(snk_sound_busy, 0) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,snk_sound_busy, 0) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Start Game A") @@ -3339,7 +3334,7 @@ static INPUT_PORTS_START( fsoccer ) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE ) /* same as the dip switch / also reset - code at 0x00cc */ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) /* uses "Coin A" settings - code at 0x677f */ - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(snk_sound_busy, 0) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk_state,snk_sound_busy, 0) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Start Game A") diff --git a/src/mame/drivers/snk6502.c b/src/mame/drivers/snk6502.c index 2cfb4b1bf08..d30ea250732 100644 --- a/src/mame/drivers/snk6502.c +++ b/src/mame/drivers/snk6502.c @@ -319,16 +319,15 @@ static void sasuke_start_counter(running_machine &machine) * *************************************/ -static CUSTOM_INPUT( snk6502_music0_r ) +CUSTOM_INPUT_MEMBER(snk6502_state::snk6502_music0_r) { - return (snk6502_music0_playing(field.machine()) ? 0x01 : 0x00); + return (snk6502_music0_playing(machine()) ? 0x01 : 0x00); } -static CUSTOM_INPUT( sasuke_count_r ) +CUSTOM_INPUT_MEMBER(snk6502_state::sasuke_count_r) { - snk6502_state *state = field.machine().driver_data(); - return (state->m_sasuke_counter >> 4); + return (m_sasuke_counter >> 4); } @@ -518,12 +517,12 @@ static INPUT_PORTS_START( satansat ) PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 ) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) PORT_BIT( 0x7c, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(snk6502_music0_r, NULL) /* music0 playing */ + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk6502_state,snk6502_music0_r, NULL) /* music0 playing */ PORT_START("IN2") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(1) PORT_CHANGED(coin_inserted, 0) PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* NC */ - PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(sasuke_count_r, NULL) /* connected to a binary counter */ + PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk6502_state,sasuke_count_r, NULL) /* connected to a binary counter */ PORT_START("DSW") PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:!1") @@ -583,7 +582,7 @@ static INPUT_PORTS_START( vanguard ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL /* fire left */ PORT_MODIFY("IN2") - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(snk6502_music0_r, NULL) /* music0 playing */ + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, snk6502_state,snk6502_music0_r, NULL) /* music0 playing */ INPUT_PORTS_END static INPUT_PORTS_START( fantasy ) diff --git a/src/mame/drivers/sprint4.c b/src/mame/drivers/sprint4.c index 5661f4cc576..4f1a2329d73 100644 --- a/src/mame/drivers/sprint4.c +++ b/src/mame/drivers/sprint4.c @@ -17,30 +17,27 @@ Atari Sprint 4 driver #define PIXEL_CLOCK (MASTER_CLOCK / 2) -static CUSTOM_INPUT( get_lever ) +CUSTOM_INPUT_MEMBER(sprint4_state::get_lever) { - sprint4_state *state = field.machine().driver_data(); int n = (FPTR) param; - return 4 * state->m_gear[n] > state->m_da_latch; + return 4 * m_gear[n] > m_da_latch; } -static CUSTOM_INPUT( get_wheel ) +CUSTOM_INPUT_MEMBER(sprint4_state::get_wheel) { - sprint4_state *state = field.machine().driver_data(); int n = (FPTR) param; - return 8 * state->m_steer_FF1[n] + 8 * state->m_steer_FF2[n] > state->m_da_latch; + return 8 * m_steer_FF1[n] + 8 * m_steer_FF2[n] > m_da_latch; } -static CUSTOM_INPUT( get_collision ) +CUSTOM_INPUT_MEMBER(sprint4_state::get_collision) { - sprint4_state *state = field.machine().driver_data(); int n = (FPTR) param; - return state->m_collision[n]; + return m_collision[n]; } @@ -269,13 +266,13 @@ static INPUT_PORTS_START( sprint4 ) PORT_START("COLLISION") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Player 1 Gas") PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM( get_collision, (void *)0 ) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, sprint4_state, get_collision, (void *)0 ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Player 2 Gas") PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM( get_collision, (void *)1 ) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, sprint4_state, get_collision, (void *)1 ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Player 3 Gas") PORT_PLAYER(3) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM( get_collision, (void *)2 ) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, sprint4_state, get_collision, (void *)2 ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Player 4 Gas") PORT_PLAYER(4) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM( get_collision, (void *)3 ) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, sprint4_state, get_collision, (void *)3 ) PORT_START("COIN") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) @@ -306,14 +303,14 @@ static INPUT_PORTS_START( sprint4 ) PORT_DIPSETTING( 0xe0, "150 seconds" ) PORT_START("ANALOG") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM( get_wheel, (void *)0) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM( get_lever, (void *)0) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM( get_wheel, (void *)1) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM( get_lever, (void *)1) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM( get_wheel, (void *)2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM( get_lever, (void *)2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM( get_wheel, (void *)3) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM( get_lever, (void *)3) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, sprint4_state, get_wheel, (void *)0) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, sprint4_state, get_lever, (void *)0) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, sprint4_state, get_wheel, (void *)1) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, sprint4_state, get_lever, (void *)1) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, sprint4_state, get_wheel, (void *)2) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, sprint4_state, get_lever, (void *)2) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, sprint4_state, get_wheel, (void *)3) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, sprint4_state, get_lever, (void *)3) PORT_START("WHEEL1") PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(16) PORT_PLAYER(1) diff --git a/src/mame/drivers/stactics.c b/src/mame/drivers/stactics.c index 14ea843713d..c5007ecde77 100644 --- a/src/mame/drivers/stactics.c +++ b/src/mame/drivers/stactics.c @@ -53,13 +53,12 @@ Verify Color PROM resistor values (Last 8 colors) * *************************************/ -static CUSTOM_INPUT( get_motor_not_ready ) +CUSTOM_INPUT_MEMBER(stactics_state::get_motor_not_ready) { - stactics_state *state = field.machine().driver_data(); /* if the motor is self-centering, but not centered yet */ - return ((*state->m_motor_on & 0x01) == 0) && - ((state->m_horiz_pos != 0) || (state->m_vert_pos != 0)); + return ((*m_motor_on & 0x01) == 0) && + ((m_horiz_pos != 0) || (m_vert_pos != 0)); } @@ -125,10 +124,10 @@ static void move_motor(running_machine &machine, stactics_state *state) * *************************************/ -static CUSTOM_INPUT( get_rng ) +CUSTOM_INPUT_MEMBER(stactics_state::get_rng) { /* this is a 555 timer, but cannot read one of the resistor values */ - return field.machine().rand() & 0x07; + return machine().rand() & 0x07; } @@ -216,7 +215,7 @@ static INPUT_PORTS_START( stactics ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(get_motor_not_ready, NULL) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, stactics_state,get_motor_not_ready, NULL) PORT_START("IN1") /* IN1 */ PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_B ) ) @@ -245,7 +244,7 @@ static INPUT_PORTS_START( stactics ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("IN2") /* IN2 */ - PORT_BIT( 0x07, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(get_rng, NULL) + PORT_BIT( 0x07, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, stactics_state,get_rng, NULL) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, stactics_state,stactics_get_frame_count_d3, NULL) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) diff --git a/src/mame/drivers/starshp1.c b/src/mame/drivers/starshp1.c index b2423eb4271..d4f587fda60 100644 --- a/src/mame/drivers/starshp1.c +++ b/src/mame/drivers/starshp1.c @@ -64,24 +64,23 @@ WRITE8_MEMBER(starshp1_state::starshp1_collision_reset_w) } -static CUSTOM_INPUT( starshp1_analog_r ) +CUSTOM_INPUT_MEMBER(starshp1_state::starshp1_analog_r) { - starshp1_state *state = field.machine().driver_data(); int val = 0; - switch (state->m_analog_in_select) + switch (m_analog_in_select) { case 0: - val = input_port_read(field.machine(), "STICKY"); + val = input_port_read(machine(), "STICKY"); break; case 1: - val = input_port_read(field.machine(), "STICKX"); + val = input_port_read(machine(), "STICKX"); break; case 2: val = 0x20; /* DAC feedback, not used */ break; case 3: - val = input_port_read(field.machine(), "PLAYTIME"); + val = input_port_read(machine(), "PLAYTIME"); break; } @@ -89,10 +88,9 @@ static CUSTOM_INPUT( starshp1_analog_r ) } -static CUSTOM_INPUT( collision_latch_r ) +CUSTOM_INPUT_MEMBER(starshp1_state::collision_latch_r) { - starshp1_state *state = field.machine().driver_data(); - return state->m_collision_latch & 0x0f; + return m_collision_latch & 0x0f; } @@ -202,12 +200,12 @@ static INPUT_PORTS_START( starshp1 ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_START("VBLANK") - PORT_BIT( 0x3f, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(starshp1_analog_r, NULL) /* analog in */ + PORT_BIT( 0x3f, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, starshp1_state,starshp1_analog_r, NULL) /* analog in */ PORT_SERVICE( 0x40, IP_ACTIVE_LOW ) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK ) PORT_START("COINAGE") - PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(collision_latch_r, NULL) /* collision latch */ + PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, starshp1_state,collision_latch_r, NULL) /* collision latch */ PORT_DIPNAME( 0x70, 0x20, DEF_STR( Coinage ) ) PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x20, DEF_STR( 1C_1C ) ) diff --git a/src/mame/drivers/suprnova.c b/src/mame/drivers/suprnova.c index c7899599cfe..668b6c0ce49 100644 --- a/src/mame/drivers/suprnova.c +++ b/src/mame/drivers/suprnova.c @@ -455,10 +455,10 @@ static TIMER_DEVICE_CALLBACK(skns_irq) **********************************************************************************/ -static CUSTOM_INPUT( paddle_r ) +CUSTOM_INPUT_MEMBER(skns_state::paddle_r) { const char *tag = (const char *)param; - return input_port_read(field.machine(), tag); + return input_port_read(machine(), tag); } static INPUT_PORTS_START( skns ) /* 3 buttons, 2 players */ @@ -513,12 +513,12 @@ static INPUT_PORTS_START( skns ) /* 3 buttons, 2 players */ PORT_DIPNAME( 0x00000080, 0x00000080, "Freeze" ) PORT_DIPSETTING( 0x00000000, "Freezes the game") PORT_DIPSETTING( 0x00000080, "Right value") - PORT_BIT( 0x0000ff00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(paddle_r, "Paddle C") - PORT_BIT( 0x00ff0000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(paddle_r, "Paddle B") - PORT_BIT( 0xff000000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(paddle_r, "Paddle A") + PORT_BIT( 0x0000ff00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, skns_state,paddle_r, "Paddle C") + PORT_BIT( 0x00ff0000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, skns_state,paddle_r, "Paddle B") + PORT_BIT( 0xff000000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, skns_state,paddle_r, "Paddle A") PORT_START("40000c") - PORT_BIT( 0x000000ff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(paddle_r, "Paddle D") + PORT_BIT( 0x000000ff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, skns_state,paddle_r, "Paddle D") PORT_BIT( 0xffffff00, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("Paddle A") diff --git a/src/mame/drivers/suprridr.c b/src/mame/drivers/suprridr.c index 4573a4bad92..8dd34f53a73 100644 --- a/src/mame/drivers/suprridr.c +++ b/src/mame/drivers/suprridr.c @@ -224,15 +224,15 @@ ADDRESS_MAP_END #define SUPRRIDR_P1_CONTROL_PORT_TAG ("CONTP1") #define SUPRRIDR_P2_CONTROL_PORT_TAG ("CONTP2") -static CUSTOM_INPUT( suprridr_control_r ) +CUSTOM_INPUT_MEMBER(suprridr_state::suprridr_control_r) { UINT32 ret; /* screen flip multiplexes controls */ - if (suprridr_is_screen_flipped(field.machine())) - ret = input_port_read(field.machine(), SUPRRIDR_P2_CONTROL_PORT_TAG); + if (suprridr_is_screen_flipped(machine())) + ret = input_port_read(machine(), SUPRRIDR_P2_CONTROL_PORT_TAG); else - ret = input_port_read(field.machine(), SUPRRIDR_P1_CONTROL_PORT_TAG); + ret = input_port_read(machine(), SUPRRIDR_P1_CONTROL_PORT_TAG); return ret; } @@ -240,7 +240,7 @@ static CUSTOM_INPUT( suprridr_control_r ) static INPUT_PORTS_START( suprridr ) PORT_START("INPUTS") - PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(suprridr_control_r, NULL) + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, suprridr_state,suprridr_control_r, NULL) PORT_START("SYSTEM") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) diff --git a/src/mame/drivers/system1.c b/src/mame/drivers/system1.c index 75c99a5b6dd..af9917dd68e 100644 --- a/src/mame/drivers/system1.c +++ b/src/mame/drivers/system1.c @@ -439,19 +439,17 @@ WRITE8_MEMBER(system1_state::videomode_w) * *************************************/ -static CUSTOM_INPUT( dakkochn_mux_data_r ) +CUSTOM_INPUT_MEMBER(system1_state::dakkochn_mux_data_r) { - system1_state *state = field.machine().driver_data(); static const char *const ports[] = { "KEY0", "KEY1", "KEY2", "KEY3", "KEY4", "KEY5", "KEY6" }; - return input_port_read(field.machine(), ports[state->m_dakkochn_mux_data]); + return input_port_read(machine(), ports[m_dakkochn_mux_data]); } -static CUSTOM_INPUT( dakkochn_mux_status_r ) +CUSTOM_INPUT_MEMBER(system1_state::dakkochn_mux_status_r) { - system1_state *state = field.machine().driver_data(); /* reads from here indicate which mux port is selected */ - return 1 << (state->m_dakkochn_mux_data); + return 1 << (m_dakkochn_mux_data); } @@ -1955,10 +1953,10 @@ static INPUT_PORTS_START( dakkochn ) PORT_INCLUDE( choplift ) PORT_MODIFY("P1") - PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(dakkochn_mux_data_r, NULL) + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, system1_state,dakkochn_mux_data_r, NULL) PORT_MODIFY("P2") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM(dakkochn_mux_status_r, NULL) + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, system1_state,dakkochn_mux_status_r, NULL) PORT_MODIFY("SYSTEM") PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) /* start 1 & 2 not connected. */ diff --git a/src/mame/drivers/taito_f3.c b/src/mame/drivers/taito_f3.c index e2b0293ec62..25d0f45b915 100644 --- a/src/mame/drivers/taito_f3.c +++ b/src/mame/drivers/taito_f3.c @@ -41,21 +41,20 @@ /******************************************************************************/ -static CUSTOM_INPUT( f3_analog_r ) +CUSTOM_INPUT_MEMBER(taito_f3_state::f3_analog_r) { const char *tag = (const char *)param; UINT32 ipt = 0; - ipt = ((input_port_read(field.machine(), tag) & 0xf)<<12) | ((input_port_read(field.machine(), tag) & 0xff0)>>4); + ipt = ((input_port_read(machine(), tag) & 0xf)<<12) | ((input_port_read(machine(), tag) & 0xff0)>>4); return ipt; } -static CUSTOM_INPUT( f3_coin_r ) +CUSTOM_INPUT_MEMBER(taito_f3_state::f3_coin_r) { - taito_f3_state *state = field.machine().driver_data(); int num = (FPTR)param; - return state->m_coin_word[num]; + return m_coin_word[num]; } READ32_MEMBER(taito_f3_state::f3_control_r) @@ -244,7 +243,7 @@ static INPUT_PORTS_START( f3 ) PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0000ff00, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* These must be high */ - PORT_BIT( 0xffff0000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(f3_coin_r, (void *)0) + PORT_BIT( 0xffff0000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, taito_f3_state,f3_coin_r, (void *)0) /* Player 3 & 4 fire buttons (Player 2 top fire buttons in Kaiser Knuckle) */ PORT_START("IN2") @@ -270,16 +269,16 @@ static INPUT_PORTS_START( f3 ) PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) PORT_BIT( 0x0000ff00, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0xffff0000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(f3_coin_r, (void *)1) + PORT_BIT( 0xffff0000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, taito_f3_state,f3_coin_r, (void *)1) /* Analog control 1 */ PORT_START("AN0") - PORT_BIT( 0x0000ffff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(f3_analog_r, "DIAL1") + PORT_BIT( 0x0000ffff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, taito_f3_state,f3_analog_r, "DIAL1") PORT_BIT( 0xffff0000, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Analog control 2 */ PORT_START("AN1") - PORT_BIT( 0x0000ffff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(f3_analog_r, "DIAL2") + PORT_BIT( 0x0000ffff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, taito_f3_state,f3_analog_r, "DIAL2") PORT_BIT( 0xffff0000, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* These are not read directly, but through PORT_CUSTOMs above */ diff --git a/src/mame/drivers/taitojc.c b/src/mame/drivers/taitojc.c index 6952402b31f..eead0d78cbf 100644 --- a/src/mame/drivers/taitojc.c +++ b/src/mame/drivers/taitojc.c @@ -1163,10 +1163,10 @@ INPUT_PORTS_END /* Mascon must always be in a defined state, Densha de Go 2 in particular returns black screen if the Mascon input is undefined We convert the 6 lever "shifter" into a fake analog port for now. */ -static CUSTOM_INPUT( mascon_state_r ) +CUSTOM_INPUT_MEMBER(taitojc_state::mascon_state_r) { static const UINT8 mascon_table[6] = { 0x01, 0x10, 0x02, 0x20, 0x04, 0x40 }; - UINT8 res = input_port_read(field.machine(), "MASCON"); + UINT8 res = input_port_read(machine(), "MASCON"); int i; //popmessage("%02x",res); @@ -1205,7 +1205,7 @@ static INPUT_PORTS_START( dendego ) PORT_START("BUTTONS") /* TODO: fix this */ PORT_BIT( 0x88, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x77, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM(mascon_state_r,NULL) + PORT_BIT( 0x77, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, taitojc_state,mascon_state_r,NULL) // PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("Mascon 5") // Mascon 5 // PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Mascon 3") // Mascon 3 // PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Mascon 1") // Mascon 1 diff --git a/src/mame/drivers/taitosj.c b/src/mame/drivers/taitosj.c index c90d6213b5e..0d7b6d297be 100644 --- a/src/mame/drivers/taitosj.c +++ b/src/mame/drivers/taitosj.c @@ -190,10 +190,9 @@ static WRITE8_DEVICE_HANDLER( input_port_4_f0_w ) state->m_input_port_4_f0 = data >> 4; } -static CUSTOM_INPUT( input_port_4_f0_r ) +CUSTOM_INPUT_MEMBER(taitosj_state::input_port_4_f0_r) { - taitosj_state *state = field.machine().driver_data(); - return state->m_input_port_4_f0; + return m_input_port_4_f0; } @@ -279,9 +278,8 @@ ADDRESS_MAP_END /* seems the most logical way to do the gears */ -static CUSTOM_INPUT( kikstart_gear_r ) +CUSTOM_INPUT_MEMBER(taitosj_state::kikstart_gear_r) { - taitosj_state *state = field.machine().driver_data(); const char *port_tag; int player = (int)(FPTR)param; @@ -292,11 +290,11 @@ static CUSTOM_INPUT( kikstart_gear_r ) port_tag = "GEARP2"; /* gear MUST be 1, 2 or 3 */ - if (input_port_read(field.machine(), port_tag) & 0x01) state->m_kikstart_gears[player] = 0x02; - if (input_port_read(field.machine(), port_tag) & 0x02) state->m_kikstart_gears[player] = 0x03; - if (input_port_read(field.machine(), port_tag) & 0x04) state->m_kikstart_gears[player] = 0x01; + if (input_port_read(machine(), port_tag) & 0x01) m_kikstart_gears[player] = 0x02; + if (input_port_read(machine(), port_tag) & 0x02) m_kikstart_gears[player] = 0x03; + if (input_port_read(machine(), port_tag) & 0x04) m_kikstart_gears[player] = 0x01; - return state->m_kikstart_gears[player]; + return m_kikstart_gears[player]; } @@ -491,7 +489,7 @@ static INPUT_PORTS_START( spaceskr ) PORT_START("IN4") PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(input_port_4_f0_r, NULL) // from sound CPU + PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, taitosj_state,input_port_4_f0_r, NULL) // from sound CPU PORT_START("DSW1") PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) @@ -573,7 +571,7 @@ static INPUT_PORTS_START( spacecr ) PORT_START("IN4") PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(input_port_4_f0_r, NULL) // from sound CPU + PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, taitosj_state,input_port_4_f0_r, NULL) // from sound CPU PORT_START("DSW1") PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) @@ -657,7 +655,7 @@ static INPUT_PORTS_START( junglek ) PORT_START("IN4") PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(input_port_4_f0_r, NULL) // from sound CPU + PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, taitosj_state,input_port_4_f0_r, NULL) // from sound CPU PORT_START("DSW1") PORT_DIPNAME( 0x03, 0x03, "Finish Bonus" ) @@ -779,7 +777,7 @@ static INPUT_PORTS_START( alpine ) PORT_START("IN4") PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(input_port_4_f0_r, NULL) // from sound CPU + PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, taitosj_state,input_port_4_f0_r, NULL) // from sound CPU PORT_START("DSW1") PORT_DIPNAME( 0x03, 0x03, "Jump Bonus" ) @@ -864,7 +862,7 @@ static INPUT_PORTS_START( alpinea ) PORT_START("IN4") PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(input_port_4_f0_r, NULL) // from sound CPU + PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, taitosj_state,input_port_4_f0_r, NULL) // from sound CPU PORT_START("DSW1") PORT_DIPNAME( 0x03, 0x03, "Jump Bonus" ) @@ -942,7 +940,7 @@ static INPUT_PORTS_START( timetunl ) PORT_START("IN4") PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(input_port_4_f0_r, NULL) // from sound CPU + PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, taitosj_state,input_port_4_f0_r, NULL) // from sound CPU PORT_START("DSW1") PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) ) @@ -1142,7 +1140,7 @@ static INPUT_PORTS_START( elevator ) PORT_START("IN4") PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(input_port_4_f0_r, NULL) // from sound CPU + PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, taitosj_state,input_port_4_f0_r, NULL) // from sound CPU PORT_START("DSW1") PORT_DIPNAME( 0x03, 0x03, DEF_STR( Bonus_Life ) ) @@ -1225,7 +1223,7 @@ static INPUT_PORTS_START( tinstar ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_RIGHT ) PORT_8WAY PORT_COCKTAIL PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN ) PORT_8WAY PORT_COCKTAIL PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(input_port_4_f0_r, NULL) // from sound CPU + PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, taitosj_state,input_port_4_f0_r, NULL) // from sound CPU PORT_START("DSW1") PORT_DIPNAME( 0x03, 0x03, "Bonus Life?" ) @@ -1308,7 +1306,7 @@ static INPUT_PORTS_START( waterski ) PORT_START("IN4") PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(input_port_4_f0_r, NULL) // from sound CPU + PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, taitosj_state,input_port_4_f0_r, NULL) // from sound CPU PORT_START("DSW1") PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) @@ -1397,7 +1395,7 @@ static INPUT_PORTS_START( bioatack ) PORT_START("IN4") PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(input_port_4_f0_r, NULL) // from sound CPU + PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, taitosj_state,input_port_4_f0_r, NULL) // from sound CPU PORT_START("DSW1") /* d50a */ PORT_DIPNAME( 0x03, 0x03, DEF_STR( Bonus_Life ) ) @@ -1464,7 +1462,7 @@ static INPUT_PORTS_START( sfposeid ) PORT_START("IN4") PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(input_port_4_f0_r, NULL) // from sound CPU + PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, taitosj_state,input_port_4_f0_r, NULL) // from sound CPU PORT_START("DSW1") PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) @@ -1532,7 +1530,7 @@ static INPUT_PORTS_START( hwrace ) PORT_START("IN4") PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(input_port_4_f0_r, NULL) // from sound CPU + PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, taitosj_state,input_port_4_f0_r, NULL) // from sound CPU PORT_START("DSW1") PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) @@ -1609,7 +1607,7 @@ static INPUT_PORTS_START( kikstart ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) PORT_START("IN3") /* Service */ - PORT_BIT( 0x03, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(kikstart_gear_r, (void *)0) + PORT_BIT( 0x03, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, taitosj_state,kikstart_gear_r, (void *)0) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* needs to be 0, otherwise cannot shift */ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SERVICE1 ) @@ -1618,7 +1616,7 @@ static INPUT_PORTS_START( kikstart ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("IN4") - PORT_BIT( 0x03, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(kikstart_gear_r, (void *)1) + PORT_BIT( 0x03, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, taitosj_state,kikstart_gear_r, (void *)1) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* needs to be 0, otherwise cannot shift */ PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNKNOWN ) diff --git a/src/mame/drivers/tetrisp2.c b/src/mame/drivers/tetrisp2.c index 25d81e67f4f..cd0a5cee9bd 100644 --- a/src/mame/drivers/tetrisp2.c +++ b/src/mame/drivers/tetrisp2.c @@ -252,10 +252,9 @@ WRITE16_MEMBER(tetrisp2_state::rocknms_main2sub_w) m_rocknms_main2sub = (data ^ 0xffff); } -static CUSTOM_INPUT( rocknms_main2sub_status_r ) +CUSTOM_INPUT_MEMBER(tetrisp2_state::rocknms_main2sub_status_r) { - tetrisp2_state *state = field.machine().driver_data(); - return state->m_rocknms_sub2main & 0x0003; + return m_rocknms_sub2main & 0x0003; } WRITE16_MEMBER(tetrisp2_state::rocknms_sub2main_w) @@ -858,7 +857,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( rocknms ) PORT_START("PLAYERS") // IN0 - $be0002.w - PORT_BIT( 0x0003, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(rocknms_main2sub_status_r, NULL) // MAIN -> SUB Communication + PORT_BIT( 0x0003, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, tetrisp2_state,rocknms_main2sub_status_r, NULL) // MAIN -> SUB Communication PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) diff --git a/src/mame/drivers/toaplan2.c b/src/mame/drivers/toaplan2.c index b0ef8d92102..450a630b955 100644 --- a/src/mame/drivers/toaplan2.c +++ b/src/mame/drivers/toaplan2.c @@ -646,16 +646,15 @@ WRITE16_MEMBER(toaplan2_state::toaplan2_hd647180_cpu_w) } -static CUSTOM_INPUT( c2map_r ) +CUSTOM_INPUT_MEMBER(toaplan2_state::c2map_r) { - toaplan2_state *state = field.machine().driver_data(); // For Teki Paki hardware // bit 4 high signifies secondary CPU is ready // bit 5 is tested low before V-Blank bit ??? - state->m_mcu_data = 0xff; + m_mcu_data = 0xff; - return (state->m_mcu_data == 0xff) ? 0x01 : 0x00; + return (m_mcu_data == 0xff) ? 0x01 : 0x00; } @@ -1673,7 +1672,7 @@ static INPUT_PORTS_START( tekipaki ) // PORT_DIPSETTING( 0x000d, DEF_STR( Japan ) ) // PORT_DIPSETTING( 0x000e, DEF_STR( Japan ) ) PORT_DIPSETTING( 0x000f, "Japan (Distributed by Tecmo)" ) - PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(c2map_r, NULL) + PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, toaplan2_state,c2map_r, NULL) INPUT_PORTS_END @@ -2019,7 +2018,7 @@ static INPUT_PORTS_START( whoopee ) PORT_INCLUDE( pipibibs ) PORT_MODIFY("JMPR") - PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(c2map_r, NULL) // bit 0x10 sound ready + PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, toaplan2_state,c2map_r, NULL) // bit 0x10 sound ready INPUT_PORTS_END diff --git a/src/mame/drivers/ultratnk.c b/src/mame/drivers/ultratnk.c index 100ee3a30ba..f7860f61d2c 100644 --- a/src/mame/drivers/ultratnk.c +++ b/src/mame/drivers/ultratnk.c @@ -18,21 +18,19 @@ Atari Ultra Tank driver -static CUSTOM_INPUT( get_collision ) +CUSTOM_INPUT_MEMBER(ultratnk_state::get_collision) { - ultratnk_state *state = field.machine().driver_data(); - return state->m_collision[(FPTR) param]; + return m_collision[(FPTR) param]; } -static CUSTOM_INPUT( get_joystick ) +CUSTOM_INPUT_MEMBER(ultratnk_state::get_joystick) { - ultratnk_state *state = field.machine().driver_data(); - UINT8 joy = input_port_read(field.machine(), (const char *)param) & 3; + UINT8 joy = input_port_read(machine(), (const char *)param) & 3; if (joy == 1) { - return (state->m_da_latch < 8) ? 1 : 0; + return (m_da_latch < 8) ? 1 : 0; } if (joy == 2) { @@ -190,13 +188,13 @@ static INPUT_PORTS_START( ultratnk ) PORT_START("COLLISION") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM( get_collision, (void *)0 ) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, ultratnk_state, get_collision, (void *)0 ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM( get_collision, (void *)1 ) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, ultratnk_state, get_collision, (void *)1 ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) /* VCC */ - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM( get_collision, (void *)2 ) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, ultratnk_state, get_collision, (void *)2 ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_TILT ) /* SLAM */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM( get_collision, (void *)3 ) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, ultratnk_state, get_collision, (void *)3 ) PORT_START("COIN") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) @@ -229,13 +227,13 @@ static INPUT_PORTS_START( ultratnk ) PORT_START("ANALOG") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM( get_joystick, "JOY-W" ) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, ultratnk_state, get_joystick, "JOY-W" ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM( get_joystick, "JOY-Y" ) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, ultratnk_state, get_joystick, "JOY-Y" ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM( get_joystick, "JOY-X" ) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, ultratnk_state, get_joystick, "JOY-X" ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM( get_joystick, "JOY-Z" ) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, ultratnk_state, get_joystick, "JOY-Z" ) PORT_START("JOY-W") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_DOWN ) PORT_PLAYER(1) diff --git a/src/mame/drivers/undrfire.c b/src/mame/drivers/undrfire.c index 5e872c1459f..9d2ee172d9b 100644 --- a/src/mame/drivers/undrfire.c +++ b/src/mame/drivers/undrfire.c @@ -251,10 +251,9 @@ static const eeprom_interface undrfire_eeprom_interface = GAME INPUTS **********************************************************/ -static CUSTOM_INPUT(frame_counter_r) +CUSTOM_INPUT_MEMBER(undrfire_state::frame_counter_r) { - undrfire_state *state = field.machine().driver_data(); - return state->m_frame_counter; + return m_frame_counter; } READ32_MEMBER(undrfire_state::undrfire_input_r) @@ -527,7 +526,7 @@ ADDRESS_MAP_END static INPUT_PORTS_START( undrfire ) PORT_START("INPUTS") - PORT_BIT( 0x00000001, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(frame_counter_r, NULL) /* Frame counter */ + PORT_BIT( 0x00000001, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, undrfire_state,frame_counter_r, NULL) /* Frame counter */ PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_UNKNOWN ) @@ -595,7 +594,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( cbombers ) PORT_START("INPUTS") - PORT_BIT( 0x00000001, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(frame_counter_r, NULL) /* Frame counter */ + PORT_BIT( 0x00000001, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, undrfire_state,frame_counter_r, NULL) /* Frame counter */ PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_UNKNOWN ) diff --git a/src/mame/drivers/vicdual.c b/src/mame/drivers/vicdual.c index 7e73a604ad9..a2a1b503417 100644 --- a/src/mame/drivers/vicdual.c +++ b/src/mame/drivers/vicdual.c @@ -81,10 +81,9 @@ static void assert_coin_status(running_machine &machine) } -static CUSTOM_INPUT( vicdual_read_coin_status ) +CUSTOM_INPUT_MEMBER(vicdual_state::vicdual_read_coin_status) { - vicdual_state *state = field.machine().driver_data(); - return state->m_coin_status; + return m_coin_status; } @@ -135,28 +134,28 @@ static int get_vcounter(running_machine &machine) } -static CUSTOM_INPUT( vicdual_get_64v ) +CUSTOM_INPUT_MEMBER(vicdual_state::vicdual_get_64v) { - return (get_vcounter(field.machine()) >> 6) & 0x01; + return (get_vcounter(machine()) >> 6) & 0x01; } -static CUSTOM_INPUT( vicdual_get_vblank_comp ) +CUSTOM_INPUT_MEMBER(vicdual_state::vicdual_get_vblank_comp) { - return (get_vcounter(field.machine()) < VICDUAL_VBSTART); + return (get_vcounter(machine()) < VICDUAL_VBSTART); } -static CUSTOM_INPUT( vicdual_get_composite_blank_comp ) +CUSTOM_INPUT_MEMBER(vicdual_state::vicdual_get_composite_blank_comp) { - return (vicdual_get_vblank_comp(device, field, 0) && !field.machine().primary_screen->hblank()); + return (vicdual_get_vblank_comp(field, 0) && !machine().primary_screen->hblank()); } -static CUSTOM_INPUT( vicdual_get_timer_value ) +CUSTOM_INPUT_MEMBER(vicdual_state::vicdual_get_timer_value) { /* return the state of the timer (old code claims "4MHz square wave", but it was toggled once every 2msec, or 500Hz) */ - return field.machine().time().as_ticks(500) & 1; + return machine().time().as_ticks(500) & 1; } @@ -279,9 +278,9 @@ static INPUT_PORTS_START( depthch ) PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */ PORT_START("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_get_64v, NULL) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_64v, NULL) PORT_BIT( 0x7e, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_read_coin_status, NULL) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_read_coin_status, NULL) PORT_COIN INPUT_PORTS_END @@ -361,7 +360,7 @@ static INPUT_PORTS_START( safari ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_START("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_get_64v, NULL) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_64v, NULL) PORT_BIT( 0x0e, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */ PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coinage ) ) PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) @@ -369,7 +368,7 @@ static INPUT_PORTS_START( safari ) PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_read_coin_status, NULL) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_read_coin_status, NULL) PORT_COIN INPUT_PORTS_END @@ -451,9 +450,9 @@ static INPUT_PORTS_START( frogs ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_START("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_get_64v, NULL) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_64v, NULL) PORT_BIT( 0x7e, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_read_coin_status, NULL) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_read_coin_status, NULL) PORT_COIN @@ -579,9 +578,9 @@ static INPUT_PORTS_START( headon ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_START("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_get_64v, NULL) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_64v, NULL) PORT_BIT( 0x7e, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_read_coin_status, NULL) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_read_coin_status, NULL) PORT_CABINET_COLOR_OR_BW @@ -609,12 +608,12 @@ static INPUT_PORTS_START( supcrash ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_START("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_get_timer_value, NULL) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_timer_value, NULL) PORT_DIPNAME( 0x04, 0x04, "Rom Test" ) PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_BIT( 0x7a, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_read_coin_status, NULL) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_read_coin_status, NULL) PORT_CABINET_COLOR_OR_BW @@ -656,9 +655,9 @@ static INPUT_PORTS_START( sspaceat ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("IN2") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_get_timer_value, NULL) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_timer_value, NULL) PORT_BIT( 0x7e, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_read_coin_status, NULL) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_read_coin_status, NULL) PORT_CABINET_COLOR_OR_BW @@ -803,12 +802,12 @@ static INPUT_PORTS_START( headon2 ) PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */ PORT_START("IN2") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_get_timer_value, NULL) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_timer_value, NULL) PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) ) PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x02, DEF_STR( On ) ) PORT_BIT( 0x7c, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_read_coin_status, NULL) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_read_coin_status, NULL) PORT_COIN INPUT_PORTS_END @@ -836,12 +835,12 @@ static INPUT_PORTS_START( car2 ) PORT_BIT( 0xe0, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* probably unused */ PORT_START("IN2") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_get_timer_value, NULL) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_timer_value, NULL) PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) ) PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x02, DEF_STR( On ) ) PORT_BIT( 0x7c, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_read_coin_status, NULL) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_read_coin_status, NULL) PORT_COIN INPUT_PORTS_END @@ -878,9 +877,9 @@ static INPUT_PORTS_START( digger ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("IN2") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_get_timer_value, NULL) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_timer_value, NULL) PORT_BIT( 0x7e, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_read_coin_status, NULL) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_read_coin_status, NULL) PORT_COIN INPUT_PORTS_END @@ -1203,7 +1202,7 @@ static INPUT_PORTS_START( invho2 ) PORT_DIPNAME( 0x04, 0x00, "Head On Lives (2/2)" ) PORT_DIPSETTING( 0x04, "+0" ) PORT_DIPSETTING( 0x00, "+1" ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_get_composite_blank_comp, NULL) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_composite_blank_comp, NULL) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -1214,7 +1213,7 @@ static INPUT_PORTS_START( invho2 ) PORT_DIPNAME( 0x04, 0x00, "Invinco Lives" ) PORT_DIPSETTING( 0x00, "5" ) PORT_DIPSETTING( 0x04, "6" ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_get_timer_value, NULL) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_timer_value, NULL) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) /* probably unused */ @@ -1228,7 +1227,7 @@ static INPUT_PORTS_START( invho2 ) PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) ) PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_read_coin_status, NULL) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_read_coin_status, NULL) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Game Select") PORT_TOGGLE PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -1257,7 +1256,7 @@ static INPUT_PORTS_START( invds ) PORT_DIPNAME( 0x04, 0x00, "Invinco Lives (2/2)" ) PORT_DIPSETTING( 0x00, "+0" ) PORT_DIPSETTING( 0x04, "+2" ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_get_composite_blank_comp, NULL) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_composite_blank_comp, NULL) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -1268,7 +1267,7 @@ static INPUT_PORTS_START( invds ) PORT_DIPNAME( 0x04, 0x00, "Deep Scan Lives (1/2)" ) PORT_DIPSETTING( 0x00, "+0" ) PORT_DIPSETTING( 0x04, "+1" ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_get_timer_value, NULL) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_timer_value, NULL) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -1280,7 +1279,7 @@ static INPUT_PORTS_START( invds ) PORT_DIPNAME( 0x04, 0x00, "Deep Scan Lives (2/2)" ) PORT_DIPSETTING( 0x04, "+0" ) PORT_DIPSETTING( 0x00, "+2" ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_read_coin_status, NULL) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_read_coin_status, NULL) PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Game Select") PORT_TOGGLE PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -1309,7 +1308,7 @@ static INPUT_PORTS_START( sspacaho ) PORT_DIPNAME( 0x04, 0x00, "S.A. Lives (2/2)" ) PORT_DIPSETTING( 0x00, "+0" ) PORT_DIPSETTING( 0x04, "+2" ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_get_composite_blank_comp, NULL) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_composite_blank_comp, NULL) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -1320,7 +1319,7 @@ static INPUT_PORTS_START( sspacaho ) PORT_DIPNAME( 0x04, 0x00, "S.A. Bonus Life" ) PORT_DIPSETTING( 0x00, "10000" ) PORT_DIPSETTING( 0x04, "15000" ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_get_timer_value, NULL) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_timer_value, NULL) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -1331,7 +1330,7 @@ static INPUT_PORTS_START( sspacaho ) PORT_DIPNAME( 0x04, 0x00, "S.A. Bonus Life For Final UFO" ) PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_read_coin_status, NULL) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_read_coin_status, NULL) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Game Select") PORT_TOGGLE PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -1360,7 +1359,7 @@ static INPUT_PORTS_START( tranqgun ) PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_get_vblank_comp, NULL) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_vblank_comp, NULL) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -1371,7 +1370,7 @@ static INPUT_PORTS_START( tranqgun ) PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_get_timer_value, NULL) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_timer_value, NULL) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -1382,7 +1381,7 @@ static INPUT_PORTS_START( tranqgun ) PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_read_coin_status, NULL) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_read_coin_status, NULL) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -1411,7 +1410,7 @@ static INPUT_PORTS_START( spacetrk ) PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) /* unknown, but used */ PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_get_composite_blank_comp, NULL) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_composite_blank_comp, NULL) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -1422,7 +1421,7 @@ static INPUT_PORTS_START( spacetrk ) PORT_DIPNAME( 0x04, 0x04, DEF_STR( Bonus_Life ) ) PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x04, DEF_STR( On ) ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_get_timer_value, NULL) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_timer_value, NULL) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -1433,7 +1432,7 @@ static INPUT_PORTS_START( spacetrk ) PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) ) PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_read_coin_status, NULL) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_read_coin_status, NULL) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -1462,7 +1461,7 @@ static INPUT_PORTS_START( sptrekct ) PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) /* unknown, but used */ PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_get_composite_blank_comp, NULL) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_composite_blank_comp, NULL) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -1473,7 +1472,7 @@ static INPUT_PORTS_START( sptrekct ) PORT_DIPNAME( 0x04, 0x04, DEF_STR( Bonus_Life ) ) PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x04, DEF_STR( On ) ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_get_timer_value, NULL) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_timer_value, NULL) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -1484,7 +1483,7 @@ static INPUT_PORTS_START( sptrekct ) PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) ) PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_read_coin_status, NULL) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_read_coin_status, NULL) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -1515,7 +1514,7 @@ static INPUT_PORTS_START( carnival ) PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) ) PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_get_composite_blank_comp, NULL) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_composite_blank_comp, NULL) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -1526,7 +1525,7 @@ static INPUT_PORTS_START( carnival ) PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) ) PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_get_timer_value, NULL) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_timer_value, NULL) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -1537,7 +1536,7 @@ static INPUT_PORTS_START( carnival ) PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) ) PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_read_coin_status, NULL) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_read_coin_status, NULL) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -1563,9 +1562,9 @@ static INPUT_PORTS_START( carnivalh ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_START("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_get_64v, NULL) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_64v, NULL) PORT_BIT( 0x7e, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_read_coin_status, NULL) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_read_coin_status, NULL) PORT_CABINET_COLOR_OR_BW @@ -1595,7 +1594,7 @@ static INPUT_PORTS_START( carnvckt ) PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) ) PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_get_composite_blank_comp, NULL) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_composite_blank_comp, NULL) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -1606,7 +1605,7 @@ static INPUT_PORTS_START( carnvckt ) PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) ) PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_get_timer_value, NULL) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_timer_value, NULL) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -1617,7 +1616,7 @@ static INPUT_PORTS_START( carnvckt ) PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) ) PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_read_coin_status, NULL) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_read_coin_status, NULL) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -1626,10 +1625,10 @@ static INPUT_PORTS_START( carnvckt ) INPUT_PORTS_END /* brdrline lives DIPs are spread across two input ports */ -static CUSTOM_INPUT( brdrline_lives ) +CUSTOM_INPUT_MEMBER(vicdual_state::brdrline_lives) { int bit_mask = (FPTR)param; - return (input_port_read(field.machine(), "FAKE_LIVES") & bit_mask) ? 0x00 : 0x01; + return (input_port_read(machine(), "FAKE_LIVES") & bit_mask) ? 0x00 : 0x01; } static INPUT_PORTS_START( brdrline ) @@ -1654,8 +1653,8 @@ static INPUT_PORTS_START( brdrline ) PORT_START("IN1") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */ - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(brdrline_lives, (void *)0x01) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_get_vblank_comp, NULL) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,brdrline_lives, (void *)0x01) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_vblank_comp, NULL) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -1663,8 +1662,8 @@ static INPUT_PORTS_START( brdrline ) PORT_START("IN2") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */ - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(brdrline_lives, (void *)0x02) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_get_64v, NULL) /* yes, this is different */ + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,brdrline_lives, (void *)0x02) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_64v, NULL) /* yes, this is different */ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -1675,7 +1674,7 @@ static INPUT_PORTS_START( brdrline ) PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) ) PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM(vicdual_read_coin_status, NULL) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_read_coin_status, NULL) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -1711,8 +1710,8 @@ static INPUT_PORTS_START( starrkr ) PORT_START("IN1") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */ - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(brdrline_lives, (void *)0x01) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_get_vblank_comp, NULL) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,brdrline_lives, (void *)0x01) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_vblank_comp, NULL) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -1720,8 +1719,8 @@ static INPUT_PORTS_START( starrkr ) PORT_START("IN2") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */ - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(brdrline_lives, (void *)0x02) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_get_64v, NULL) /* yes, this is different */ + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,brdrline_lives, (void *)0x02) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_64v, NULL) /* yes, this is different */ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -1732,7 +1731,7 @@ static INPUT_PORTS_START( starrkr ) PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) ) PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM(vicdual_read_coin_status, NULL) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_read_coin_status, NULL) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -1766,7 +1765,7 @@ static INPUT_PORTS_START( pulsar ) PORT_DIPNAME( 0x04, 0x04, "Lives (2/2)" ) PORT_DIPSETTING( 0x04, "+0" ) PORT_DIPSETTING( 0x00, "+1" ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_get_composite_blank_comp, NULL) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_composite_blank_comp, NULL) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -1777,7 +1776,7 @@ static INPUT_PORTS_START( pulsar ) PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) ) PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_get_timer_value, NULL) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_timer_value, NULL) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -1788,7 +1787,7 @@ static INPUT_PORTS_START( pulsar ) PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) ) PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_read_coin_status, NULL) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_read_coin_status, NULL) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -1817,7 +1816,7 @@ static INPUT_PORTS_START( heiankyo ) PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) /* bonus life? */ PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_get_composite_blank_comp, NULL) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_composite_blank_comp, NULL) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -1828,7 +1827,7 @@ static INPUT_PORTS_START( heiankyo ) PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) /* bonus life? */ PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_get_timer_value, NULL) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_timer_value, NULL) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* has to be 0, protection? */ PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) /* probably unused */ @@ -1839,7 +1838,7 @@ static INPUT_PORTS_START( heiankyo ) PORT_DIPNAME( 0x04, 0x00, DEF_STR( Lives ) ) PORT_DIPSETTING( 0x00, "3" ) PORT_DIPSETTING( 0x04, "5" ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_read_coin_status, NULL) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_read_coin_status, NULL) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -1868,7 +1867,7 @@ static INPUT_PORTS_START( alphaho ) PORT_DIPNAME( 0x04, 0x00, "Alpha Fighter Lives (2/2)" ) PORT_DIPSETTING( 0x00, "+0" ) PORT_DIPSETTING( 0x04, "+2" ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_get_composite_blank_comp, NULL) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_composite_blank_comp, NULL) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */ @@ -1877,7 +1876,7 @@ static INPUT_PORTS_START( alphaho ) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */ - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_get_timer_value, NULL) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_timer_value, NULL) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */ @@ -1888,7 +1887,7 @@ static INPUT_PORTS_START( alphaho ) PORT_DIPNAME( 0x04, 0x00, "Alpha Fighter Unknown" ) // related to soccer frequency (code at 0x4950) PORT_DIPSETTING( 0x00, DEF_STR ( Off ) ) PORT_DIPSETTING( 0x04, DEF_STR ( On ) ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_read_coin_status, NULL) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_read_coin_status, NULL) PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Game Select") PORT_TOGGLE PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */ @@ -2047,15 +2046,14 @@ WRITE8_MEMBER(vicdual_state::samurai_protection_w) } -static CUSTOM_INPUT( samurai_protection_r ) +CUSTOM_INPUT_MEMBER(vicdual_state::samurai_protection_r) { - vicdual_state *state = field.machine().driver_data(); int offset = (FPTR)param; UINT32 answer = 0; - if (state->m_samurai_protection_data == 0xab) + if (m_samurai_protection_data == 0xab) answer = 0x02; - else if (state->m_samurai_protection_data == 0x1d) + else if (m_samurai_protection_data == 0x1d) answer = 0x0c; return (answer >> offset) & 0x01; @@ -2109,33 +2107,33 @@ static INPUT_PORTS_START( samurai ) PORT_START("IN1") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */ - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(samurai_protection_r, (void *)1) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,samurai_protection_r, (void *)1) PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) /* unknown, but used */ PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_get_composite_blank_comp, NULL) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_composite_blank_comp, NULL) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("IN2") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */ - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(samurai_protection_r, (void *)2) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,samurai_protection_r, (void *)2) PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) ) PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_get_timer_value, NULL) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_timer_value, NULL) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("IN3") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */ - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(samurai_protection_r, (void *)3) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,samurai_protection_r, (void *)3) PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) ) PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_read_coin_status, NULL) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_read_coin_status, NULL) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -2214,7 +2212,7 @@ static INPUT_PORTS_START( nsub ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_START("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_get_composite_blank_comp, NULL) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_composite_blank_comp, NULL) PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) @@ -2233,7 +2231,7 @@ static INPUT_PORTS_START( nsub ) PORT_DIPNAME(0x40, 0x40, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_read_coin_status, NULL) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_read_coin_status, NULL) PORT_COIN INPUT_PORTS_END @@ -2330,9 +2328,9 @@ static INPUT_PORTS_START( invinco ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("IN2") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_get_composite_blank_comp, NULL) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_composite_blank_comp, NULL) PORT_BIT( 0x7e, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vicdual_read_coin_status, NULL) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_read_coin_status, NULL) PORT_COIN INPUT_PORTS_END diff --git a/src/mame/drivers/welltris.c b/src/mame/drivers/welltris.c index b617571091e..4281ec442b3 100644 --- a/src/mame/drivers/welltris.c +++ b/src/mame/drivers/welltris.c @@ -339,10 +339,9 @@ WRITE16_MEMBER(welltris_state::sound_command_w) } } -static CUSTOM_INPUT( pending_sound_r ) +CUSTOM_INPUT_MEMBER(welltris_state::pending_sound_r) { - welltris_state *state = field.machine().driver_data(); - return state->m_pending_command ? 1 : 0; + return m_pending_command ? 1 : 0; } WRITE8_MEMBER(welltris_state::pending_command_clear_w) @@ -399,7 +398,7 @@ static INPUT_PORTS_START( welltris ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE2 ) /* Test (used to go through tests in service mode) */ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_TILT ) /* Tested at start of irq 1 */ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) /* Service (adds a coin) */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(pending_sound_r, NULL) /* pending sound command */ + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, welltris_state,pending_sound_r, NULL) /* pending sound command */ PORT_START("P1") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY diff --git a/src/mame/drivers/wolfpack.c b/src/mame/drivers/wolfpack.c index fa7e0b84a40..08108c2f387 100644 --- a/src/mame/drivers/wolfpack.c +++ b/src/mame/drivers/wolfpack.c @@ -30,10 +30,10 @@ static MACHINE_RESET( wolfpack ) } -static CUSTOM_INPUT( wolfpack_dial_r ) +CUSTOM_INPUT_MEMBER(wolfpack_state::wolfpack_dial_r) { int bit = (FPTR)param; - return ((input_port_read(field.machine(), "DIAL") + bit) / 2) & 0x01; + return ((input_port_read(machine(), "DIAL") + bit) / 2) & 0x01; } @@ -149,8 +149,8 @@ ADDRESS_MAP_END static INPUT_PORTS_START( wolfpack ) PORT_START("INPUTS") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(wolfpack_dial_r, (void *)0) /* dial connects here */ - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(wolfpack_dial_r, (void *)1) /* dial connects here */ + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, wolfpack_state,wolfpack_dial_r, (void *)0) /* dial connects here */ + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, wolfpack_state,wolfpack_dial_r, (void *)1) /* dial connects here */ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_TILT ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_SERVICE( 0x10, IP_ACTIVE_HIGH ) diff --git a/src/mame/drivers/wwfsstar.c b/src/mame/drivers/wwfsstar.c index 50b620fc2aa..9bb2e8d7651 100644 --- a/src/mame/drivers/wwfsstar.c +++ b/src/mame/drivers/wwfsstar.c @@ -271,11 +271,10 @@ static TIMER_DEVICE_CALLBACK( wwfsstar_scanline ) } } -static CUSTOM_INPUT( wwfsstar_vblank_r ) +CUSTOM_INPUT_MEMBER(wwfsstar_state::wwfsstar_vblank_r) { - wwfsstar_state *state = field.machine().driver_data(); - return state->m_vblank; + return m_vblank; } /******************************************************************************* @@ -308,7 +307,7 @@ static INPUT_PORTS_START( wwfsstar ) PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START2 ) PORT_NAME("Button B (1P VS 2P - Buy-in)") PORT_START("SYSTEM") - PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(wwfsstar_vblank_r, NULL) /* VBlank */ + PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, wwfsstar_state,wwfsstar_vblank_r, NULL) /* VBlank */ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_SERVICE1 ) diff --git a/src/mame/drivers/wwfwfest.c b/src/mame/drivers/wwfwfest.c index 78545ab5b7b..580dd9a310c 100644 --- a/src/mame/drivers/wwfwfest.c +++ b/src/mame/drivers/wwfwfest.c @@ -174,16 +174,16 @@ WRITE16_MEMBER(wwfwfest_state::wwfwfest_soundwrite) *******************************************************************************/ /* DIPs are spread across the other input ports */ -static CUSTOM_INPUT( dsw_3f_r ) +CUSTOM_INPUT_MEMBER(wwfwfest_state::dsw_3f_r) { const char *tag = (const char *)param; - return input_port_read(field.machine(), tag) & 0x3f; + return input_port_read(machine(), tag) & 0x3f; } -static CUSTOM_INPUT( dsw_c0_r ) +CUSTOM_INPUT_MEMBER(wwfwfest_state::dsw_c0_r) { const char *tag = (const char *)param; - return (input_port_read(field.machine(), tag) & 0xc0) >> 6; + return (input_port_read(machine(), tag) & 0xc0) >> 6; } @@ -201,7 +201,7 @@ static INPUT_PORTS_START( wwfwfest ) PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x3000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(dsw_c0_r, "DSW2") + PORT_BIT( 0x3000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, wwfwfest_state,dsw_c0_r, "DSW2") PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) @@ -214,7 +214,7 @@ static INPUT_PORTS_START( wwfwfest ) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x3f00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(dsw_3f_r, "DSW2") + PORT_BIT( 0x3f00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, wwfwfest_state,dsw_3f_r, "DSW2") PORT_START("P3") PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(3) @@ -225,7 +225,7 @@ static INPUT_PORTS_START( wwfwfest ) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0x3f00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(dsw_3f_r, "DSW1") + PORT_BIT( 0x3f00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, wwfwfest_state,dsw_3f_r, "DSW1") PORT_START("P4") PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(4) @@ -236,7 +236,7 @@ static INPUT_PORTS_START( wwfwfest ) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START4 ) - PORT_BIT( 0x0300, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(dsw_c0_r, "DSW1") + PORT_BIT( 0x0300, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, wwfwfest_state,dsw_c0_r, "DSW1") PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_VBLANK ) PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN ) diff --git a/src/mame/drivers/xain.c b/src/mame/drivers/xain.c index db9980720e1..20100d686a4 100644 --- a/src/mame/drivers/xain.c +++ b/src/mame/drivers/xain.c @@ -271,10 +271,9 @@ WRITE8_MEMBER(xain_state::xain_68705_w) cputag_set_input_line(machine(), "mcu", 0, ASSERT_LINE); } -static CUSTOM_INPUT( xain_vblank_r ) +CUSTOM_INPUT_MEMBER(xain_state::xain_vblank_r) { - xain_state *state = field.machine().driver_data(); - return state->m_vblank; + return m_vblank; } @@ -354,16 +353,15 @@ WRITE8_MEMBER(xain_state::xain_68705_ddr_c_w) m_ddr_c = data; } -static CUSTOM_INPUT( mcu_status_r ) +CUSTOM_INPUT_MEMBER(xain_state::mcu_status_r) { - xain_state *state = field.machine().driver_data(); UINT8 res = 0; - if (field.machine().device("mcu") != NULL) + if (machine().device("mcu") != NULL) { - if (state->m_mcu_ready == 1) + if (m_mcu_ready == 1) res |= 0x01; - if (state->m_mcu_accept == 1) + if (m_mcu_accept == 1) res |= 0x02; } else @@ -516,8 +514,8 @@ static INPUT_PORTS_START( xsleena ) PORT_START("VBLANK") PORT_BIT( 0x03, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x18, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM(mcu_status_r, NULL) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(xain_vblank_r, NULL) /* VBLANK */ + PORT_BIT( 0x18, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM_MEMBER(DEVICE_SELF, xain_state,mcu_status_r, NULL) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, xain_state,xain_vblank_r, NULL) /* VBLANK */ PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END diff --git a/src/mame/drivers/xmen.c b/src/mame/drivers/xmen.c index 9d566297159..42e156cae88 100644 --- a/src/mame/drivers/xmen.c +++ b/src/mame/drivers/xmen.c @@ -254,10 +254,9 @@ static INPUT_PORTS_START( xmen2p ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) INPUT_PORTS_END -static CUSTOM_INPUT( xmen_frame_r ) +CUSTOM_INPUT_MEMBER(xmen_state::xmen_frame_r) { - //xmen_state *state = field.machine().driver_data(); - return field.machine().primary_screen->frame_number() & 1; + return machine().primary_screen->frame_number() & 1; } static INPUT_PORTS_START( xmen6p ) @@ -284,7 +283,7 @@ static INPUT_PORTS_START( xmen6p ) PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_START5 ) /* not verified */ PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_START6 ) /* not verified */ PORT_SERVICE_NO_TOGGLE( 0x4000, IP_ACTIVE_LOW ) - PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(xmen_frame_r, NULL) /* screen indicator? */ + PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, xmen_state,xmen_frame_r, NULL) /* screen indicator? */ PORT_START( "EEPROMOUT" ) PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) diff --git a/src/mame/drivers/xxmissio.c b/src/mame/drivers/xxmissio.c index 377ebf8fe59..18a7f01f242 100644 --- a/src/mame/drivers/xxmissio.c +++ b/src/mame/drivers/xxmissio.c @@ -19,11 +19,10 @@ WRITE8_MEMBER(xxmissio_state::xxmissio_bank_sel_w) memory_set_bank(machine(), "bank1", data & 7); } -static CUSTOM_INPUT( xxmissio_status_r ) +CUSTOM_INPUT_MEMBER(xxmissio_state::xxmissio_status_r) { - xxmissio_state *state = field.machine().driver_data(); int bit_mask = (FPTR)param; - return (state->m_status & bit_mask) ? 1 : 0; + return (m_status & bit_mask) ? 1 : 0; } WRITE8_MEMBER(xxmissio_state::xxmissio_status_m_w) @@ -199,14 +198,14 @@ static INPUT_PORTS_START( xxmissio ) PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW2:8" ) /* Shown as "Unused" in the manual */ PORT_START("STATUS") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(xxmissio_status_r, (void *)0x01) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, xxmissio_state,xxmissio_status_r, (void *)0x01) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_VBLANK ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(xxmissio_status_r, (void *)0x04) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(xxmissio_status_r, (void *)0x08) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(xxmissio_status_r, (void *)0x10) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(xxmissio_status_r, (void *)0x20) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(xxmissio_status_r, (void *)0x40) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(xxmissio_status_r, (void *)0x80) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, xxmissio_state,xxmissio_status_r, (void *)0x04) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, xxmissio_state,xxmissio_status_r, (void *)0x08) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, xxmissio_state,xxmissio_status_r, (void *)0x10) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, xxmissio_state,xxmissio_status_r, (void *)0x20) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, xxmissio_state,xxmissio_status_r, (void *)0x40) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, xxmissio_state,xxmissio_status_r, (void *)0x80) INPUT_PORTS_END /****************************************************************************/ diff --git a/src/mame/drivers/zaccaria.c b/src/mame/drivers/zaccaria.c index 4bbdf668458..0710d9efd2b 100644 --- a/src/mame/drivers/zaccaria.c +++ b/src/mame/drivers/zaccaria.c @@ -338,10 +338,9 @@ static ADDRESS_MAP_START( sound_map_2, AS_PROGRAM, 8, zaccaria_state ) ADDRESS_MAP_END -static CUSTOM_INPUT( acs_r ) +CUSTOM_INPUT_MEMBER(zaccaria_state::acs_r) { - zaccaria_state *state = field.machine().driver_data(); - return (state->m_acs & 0x08) ? 1 : 0; + return (m_acs & 0x08) ? 1 : 0; } static INPUT_PORTS_START( monymony ) @@ -449,7 +448,7 @@ static INPUT_PORTS_START( monymony ) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(acs_r, NULL) /* "ACS" - from pin 13 of a PIA on the sound board */ + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, zaccaria_state,acs_r, NULL) /* "ACS" - from pin 13 of a PIA on the sound board */ /* other bits come from a protection device */ INPUT_PORTS_END diff --git a/src/mame/drivers/zaxxon.c b/src/mame/drivers/zaxxon.c index 65460be190d..026c5d7299a 100644 --- a/src/mame/drivers/zaxxon.c +++ b/src/mame/drivers/zaxxon.c @@ -350,26 +350,25 @@ READ8_MEMBER(zaxxon_state::razmataz_counter_r) } -static CUSTOM_INPUT( razmataz_dial_r ) +CUSTOM_INPUT_MEMBER(zaxxon_state::razmataz_dial_r) { - zaxxon_state *state = field.machine().driver_data(); static const char *const dialname[2] = { "DIAL0", "DIAL1" }; int num = (FPTR)param; int delta, res; - delta = input_port_read(field.machine(), dialname[num]); + delta = input_port_read(machine(), dialname[num]); if (delta < 0x80) { // right - state->m_razmataz_dial_pos[num] -= delta; - res = (state->m_razmataz_dial_pos[num] << 1) | 1; + m_razmataz_dial_pos[num] -= delta; + res = (m_razmataz_dial_pos[num] << 1) | 1; } else { // left - state->m_razmataz_dial_pos[num] += delta; - res = (state->m_razmataz_dial_pos[num] << 1); + m_razmataz_dial_pos[num] += delta; + res = (m_razmataz_dial_pos[num] << 1); } return res; @@ -411,11 +410,10 @@ static INPUT_CHANGED( zaxxon_coin_inserted ) } -static CUSTOM_INPUT( zaxxon_coin_r ) +CUSTOM_INPUT_MEMBER(zaxxon_state::zaxxon_coin_r) { - zaxxon_state *state = field.machine().driver_data(); - return state->m_coin_status[(int)(FPTR)param]; + return m_coin_status[(int)(FPTR)param]; } @@ -514,9 +512,9 @@ static INPUT_PORTS_START( zaxxon ) PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START2 ) PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(zaxxon_coin_r, (void *)0) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(zaxxon_coin_r, (void *)1) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(zaxxon_coin_r, (void *)2) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, zaxxon_state,zaxxon_coin_r, (void *)0) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, zaxxon_state,zaxxon_coin_r, (void *)1) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, zaxxon_state,zaxxon_coin_r, (void *)2) PORT_START("COIN") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_CHANGED(zaxxon_coin_inserted, (void *)0) @@ -675,7 +673,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( razmataz ) PORT_START("SW00") - PORT_BIT( 0xff, 0x00, IPT_SPECIAL) PORT_CUSTOM(razmataz_dial_r, (void *)0) + PORT_BIT( 0xff, 0x00, IPT_SPECIAL) PORT_CUSTOM_MEMBER(DEVICE_SELF, zaxxon_state,razmataz_dial_r, (void *)0) PORT_START("DIAL0") PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(30) PORT_KEYDELTA(15) PORT_RESET PORT_PLAYER(1) @@ -690,7 +688,7 @@ static INPUT_PORTS_START( razmataz ) PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_START("SW08") - PORT_BIT( 0xff, 0x00, IPT_SPECIAL) PORT_CUSTOM(razmataz_dial_r, (void *)1) + PORT_BIT( 0xff, 0x00, IPT_SPECIAL) PORT_CUSTOM_MEMBER(DEVICE_SELF, zaxxon_state,razmataz_dial_r, (void *)1) PORT_START("DIAL1") PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(30) PORT_KEYDELTA(15) PORT_RESET PORT_PLAYER(2) @@ -703,9 +701,9 @@ static INPUT_PORTS_START( razmataz ) PORT_START("SW100") PORT_BIT( 0x1f, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(zaxxon_coin_r, (void *)0) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(zaxxon_coin_r, (void *)1) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(zaxxon_coin_r, (void *)2) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, zaxxon_state,zaxxon_coin_r, (void *)0) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, zaxxon_state,zaxxon_coin_r, (void *)1) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, zaxxon_state,zaxxon_coin_r, (void *)2) PORT_START("COIN") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_CHANGED(zaxxon_coin_inserted, (void *)0) @@ -768,7 +766,7 @@ static INPUT_PORTS_START( ixion ) PORT_INCLUDE(zaxxon) PORT_MODIFY("SW00") - PORT_BIT( 0xff, 0x00, IPT_SPECIAL) PORT_CUSTOM(razmataz_dial_r, (void *)0) + PORT_BIT( 0xff, 0x00, IPT_SPECIAL) PORT_CUSTOM_MEMBER(DEVICE_SELF, zaxxon_state,razmataz_dial_r, (void *)0) PORT_START("DIAL0") PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(30) PORT_KEYDELTA(15) PORT_CODE_DEC(KEYCODE_Z) PORT_CODE_INC(KEYCODE_X) PORT_RESET diff --git a/src/mame/includes/8080bw.h b/src/mame/includes/8080bw.h index 658fca68a84..012fb725b87 100644 --- a/src/mame/includes/8080bw.h +++ b/src/mame/includes/8080bw.h @@ -32,6 +32,7 @@ public: UINT8 m_screen_red; device_t *m_speaker; + DECLARE_CUSTOM_INPUT_MEMBER(sflush_80_r); }; diff --git a/src/mame/includes/artmagic.h b/src/mame/includes/artmagic.h index 6dbc95225a8..a6a888ce2b5 100644 --- a/src/mame/includes/artmagic.h +++ b/src/mame/includes/artmagic.h @@ -38,6 +38,7 @@ public: DECLARE_READ16_MEMBER(unk_r); DECLARE_READ16_MEMBER(artmagic_blitter_r); DECLARE_WRITE16_MEMBER(artmagic_blitter_w); + DECLARE_CUSTOM_INPUT_MEMBER(prot_r); }; diff --git a/src/mame/includes/asteroid.h b/src/mame/includes/asteroid.h index b2a005b02e6..b6354b5c70c 100644 --- a/src/mame/includes/asteroid.h +++ b/src/mame/includes/asteroid.h @@ -23,6 +23,7 @@ public: DECLARE_WRITE8_MEMBER(asteroid_bank_switch_w); DECLARE_WRITE8_MEMBER(astdelux_bank_switch_w); DECLARE_WRITE8_MEMBER(astdelux_led_w); + DECLARE_CUSTOM_INPUT_MEMBER(clock_r); }; diff --git a/src/mame/includes/astrocde.h b/src/mame/includes/astrocde.h index 655f0eadafd..de62ba73bfe 100644 --- a/src/mame/includes/astrocde.h +++ b/src/mame/includes/astrocde.h @@ -100,6 +100,8 @@ public: DECLARE_WRITE8_MEMBER(profpac_screenram_ctrl_w); DECLARE_READ8_MEMBER(profpac_videoram_r); DECLARE_WRITE8_MEMBER(profpac_videoram_w); + DECLARE_CUSTOM_INPUT_MEMBER(ebases_trackball_r); + DECLARE_CUSTOM_INPUT_MEMBER(demndragn_joystick_r); }; diff --git a/src/mame/includes/astrof.h b/src/mame/includes/astrof.h index 3e4c440ef12..511f8bb46d9 100644 --- a/src/mame/includes/astrof.h +++ b/src/mame/includes/astrof.h @@ -48,6 +48,9 @@ public: DECLARE_READ8_MEMBER(abattle_coin_prot_r); DECLARE_READ8_MEMBER(afire_coin_prot_r); DECLARE_READ8_MEMBER(tomahawk_protection_r); + DECLARE_CUSTOM_INPUT_MEMBER(astrof_p1_controls_r); + DECLARE_CUSTOM_INPUT_MEMBER(astrof_p2_controls_r); + DECLARE_CUSTOM_INPUT_MEMBER(tomahawk_controls_r); }; /*----------- defined in audio/astrof.c -----------*/ diff --git a/src/mame/includes/battlex.h b/src/mame/includes/battlex.h index 7d2a60af252..23ae52b98d0 100644 --- a/src/mame/includes/battlex.h +++ b/src/mame/includes/battlex.h @@ -27,6 +27,7 @@ public: DECLARE_WRITE8_MEMBER(battlex_scroll_starfield_w); DECLARE_WRITE8_MEMBER(battlex_videoram_w); DECLARE_WRITE8_MEMBER(battlex_flipscreen_w); + DECLARE_CUSTOM_INPUT_MEMBER(battlex_in0_b4_r); }; diff --git a/src/mame/includes/bzone.h b/src/mame/includes/bzone.h index d244dc2c4f2..b52774f0f19 100644 --- a/src/mame/includes/bzone.h +++ b/src/mame/includes/bzone.h @@ -20,6 +20,7 @@ public: DECLARE_WRITE8_MEMBER(bzone_coin_counter_w); DECLARE_READ8_MEMBER(analog_data_r); DECLARE_WRITE8_MEMBER(analog_select_w); + DECLARE_CUSTOM_INPUT_MEMBER(clock_r); }; diff --git a/src/mame/includes/cave.h b/src/mame/includes/cave.h index 718090a3d99..5c2c938793d 100644 --- a/src/mame/includes/cave.h +++ b/src/mame/includes/cave.h @@ -148,6 +148,8 @@ public: DECLARE_WRITE16_MEMBER(cave_vram_1_8x8_w); DECLARE_WRITE16_MEMBER(cave_vram_2_8x8_w); DECLARE_WRITE16_MEMBER(cave_vram_3_8x8_w); + DECLARE_CUSTOM_INPUT_MEMBER(korokoro_hopper_r); + DECLARE_CUSTOM_INPUT_MEMBER(tjumpman_hopper_r); }; /*----------- defined in video/cave.c -----------*/ diff --git a/src/mame/includes/ccastles.h b/src/mame/includes/ccastles.h index 9c8c301b3dd..208894c7572 100644 --- a/src/mame/includes/ccastles.h +++ b/src/mame/includes/ccastles.h @@ -61,6 +61,7 @@ public: DECLARE_READ8_MEMBER(ccastles_bitmode_r); DECLARE_WRITE8_MEMBER(ccastles_bitmode_w); DECLARE_WRITE8_MEMBER(ccastles_bitmode_addr_w); + DECLARE_CUSTOM_INPUT_MEMBER(get_vblank); }; diff --git a/src/mame/includes/cd32.h b/src/mame/includes/cd32.h index 2df93dce5f5..c8aa87359fd 100644 --- a/src/mame/includes/cd32.h +++ b/src/mame/includes/cd32.h @@ -25,6 +25,7 @@ public: int m_cd32_shifter[2]; void (*m_input_hack)(running_machine &machine); int m_oldstate[2]; + DECLARE_CUSTOM_INPUT_MEMBER(cubo_input); }; /*----------- defined in machine/cd32.c -----------*/ diff --git a/src/mame/includes/champbas.h b/src/mame/includes/champbas.h index 1eba0c44051..1beb661c167 100644 --- a/src/mame/includes/champbas.h +++ b/src/mame/includes/champbas.h @@ -43,6 +43,7 @@ public: DECLARE_WRITE8_MEMBER(champbas_gfxbank_w); DECLARE_WRITE8_MEMBER(champbas_palette_bank_w); DECLARE_WRITE8_MEMBER(champbas_flipscreen_w); + DECLARE_CUSTOM_INPUT_MEMBER(champbas_watchdog_bit2); }; diff --git a/src/mame/includes/cidelsa.h b/src/mame/includes/cidelsa.h index bd4e9cbf803..585e0f69b76 100644 --- a/src/mame/includes/cidelsa.h +++ b/src/mame/includes/cidelsa.h @@ -70,6 +70,7 @@ public: UINT8 *m_pageram; UINT8 *m_pcbram; UINT8 *m_charram; + DECLARE_CUSTOM_INPUT_MEMBER(cdp1869_pcb_r); }; class draco_state : public cidelsa_state diff --git a/src/mame/includes/cloud9.h b/src/mame/includes/cloud9.h index b30cccf806f..01470678699 100644 --- a/src/mame/includes/cloud9.h +++ b/src/mame/includes/cloud9.h @@ -52,6 +52,7 @@ public: DECLARE_READ8_MEMBER(cloud9_bitmode_r); DECLARE_WRITE8_MEMBER(cloud9_bitmode_w); DECLARE_WRITE8_MEMBER(cloud9_bitmode_addr_w); + DECLARE_CUSTOM_INPUT_MEMBER(get_vblank); }; diff --git a/src/mame/includes/cop01.h b/src/mame/includes/cop01.h index b07beae6701..68d18d86fd8 100644 --- a/src/mame/includes/cop01.h +++ b/src/mame/includes/cop01.h @@ -36,6 +36,7 @@ public: DECLARE_WRITE8_MEMBER(cop01_background_w); DECLARE_WRITE8_MEMBER(cop01_foreground_w); DECLARE_WRITE8_MEMBER(cop01_vreg_w); + DECLARE_CUSTOM_INPUT_MEMBER(mightguy_area_r); }; diff --git a/src/mame/includes/crbaloon.h b/src/mame/includes/crbaloon.h index ea88221d073..0c8d869d9bc 100644 --- a/src/mame/includes/crbaloon.h +++ b/src/mame/includes/crbaloon.h @@ -27,6 +27,7 @@ public: DECLARE_WRITE8_MEMBER(port_sound_w); DECLARE_WRITE8_MEMBER(crbaloon_videoram_w); DECLARE_WRITE8_MEMBER(crbaloon_colorram_w); + DECLARE_CUSTOM_INPUT_MEMBER(pc3092_r); }; diff --git a/src/mame/includes/crshrace.h b/src/mame/includes/crshrace.h index 5b5e3e6bfe7..65c3f67d45d 100644 --- a/src/mame/includes/crshrace.h +++ b/src/mame/includes/crshrace.h @@ -40,6 +40,7 @@ public: DECLARE_WRITE16_MEMBER(crshrace_videoram2_w); DECLARE_WRITE16_MEMBER(crshrace_roz_bank_w); DECLARE_WRITE16_MEMBER(crshrace_gfxctrl_w); + DECLARE_CUSTOM_INPUT_MEMBER(country_sndpending_r); }; /*----------- defined in video/crshrace.c -----------*/ diff --git a/src/mame/includes/dcheese.h b/src/mame/includes/dcheese.h index ea3c8e67f1d..3bd9e12285a 100644 --- a/src/mame/includes/dcheese.h +++ b/src/mame/includes/dcheese.h @@ -42,6 +42,7 @@ public: DECLARE_WRITE16_MEMBER(madmax_blitter_vidparam_w); DECLARE_WRITE16_MEMBER(madmax_blitter_unknown_w); DECLARE_READ16_MEMBER(madmax_blitter_vidparam_r); + DECLARE_CUSTOM_INPUT_MEMBER(sound_latch_state_r); }; diff --git a/src/mame/includes/ddragon.h b/src/mame/includes/ddragon.h index f51e2dc68c1..51bd9bfe440 100644 --- a/src/mame/includes/ddragon.h +++ b/src/mame/includes/ddragon.h @@ -60,6 +60,7 @@ public: device_t *m_adpcm_2; DECLARE_WRITE8_MEMBER(ddragon_bgvideoram_w); DECLARE_WRITE8_MEMBER(ddragon_fgvideoram_w); + DECLARE_CUSTOM_INPUT_MEMBER(sub_cpu_busy); }; diff --git a/src/mame/includes/equites.h b/src/mame/includes/equites.h index ba97c208fe5..9d9ed164fca 100644 --- a/src/mame/includes/equites.h +++ b/src/mame/includes/equites.h @@ -79,6 +79,7 @@ public: DECLARE_WRITE16_MEMBER(splndrbt_flip1_w); DECLARE_WRITE16_MEMBER(splndrbt_bg_scrollx_w); DECLARE_WRITE16_MEMBER(splndrbt_bg_scrolly_w); + DECLARE_CUSTOM_INPUT_MEMBER(gekisou_unknown_status); }; diff --git a/src/mame/includes/exerion.h b/src/mame/includes/exerion.h index 279fdb2f4df..13ec22ae5a2 100644 --- a/src/mame/includes/exerion.h +++ b/src/mame/includes/exerion.h @@ -50,6 +50,7 @@ public: DECLARE_WRITE8_MEMBER(exerion_videoreg_w); DECLARE_WRITE8_MEMBER(exerion_video_latch_w); DECLARE_READ8_MEMBER(exerion_video_timing_r); + DECLARE_CUSTOM_INPUT_MEMBER(exerion_controls_r); }; diff --git a/src/mame/includes/exidy.h b/src/mame/includes/exidy.h index 0cca66ad70c..307f5a8d5f4 100644 --- a/src/mame/includes/exidy.h +++ b/src/mame/includes/exidy.h @@ -45,6 +45,7 @@ public: bitmap_ind16 m_motion_object_2_clip; DECLARE_WRITE8_MEMBER(fax_bank_select_w); DECLARE_READ8_MEMBER(exidy_interrupt_r); + DECLARE_CUSTOM_INPUT_MEMBER(teetert_input_r); }; diff --git a/src/mame/includes/exidy440.h b/src/mame/includes/exidy440.h index e3f304481da..b576de9a4c8 100644 --- a/src/mame/includes/exidy440.h +++ b/src/mame/includes/exidy440.h @@ -50,6 +50,9 @@ public: DECLARE_WRITE8_MEMBER(exidy440_spriteram_w); DECLARE_WRITE8_MEMBER(exidy440_control_w); DECLARE_WRITE8_MEMBER(exidy440_interrupt_clear_w); + DECLARE_CUSTOM_INPUT_MEMBER(firq_beam_r); + DECLARE_CUSTOM_INPUT_MEMBER(firq_vblank_r); + DECLARE_CUSTOM_INPUT_MEMBER(hitnmiss_button1_r); }; diff --git a/src/mame/includes/fantland.h b/src/mame/includes/fantland.h index a048ea96fb0..351ada008d8 100644 --- a/src/mame/includes/fantland.h +++ b/src/mame/includes/fantland.h @@ -40,6 +40,7 @@ public: DECLARE_WRITE8_MEMBER(borntofi_nmi_enable_w); DECLARE_READ8_MEMBER(borntofi_inputs_r); DECLARE_WRITE8_MEMBER(borntofi_msm5205_w); + DECLARE_CUSTOM_INPUT_MEMBER(wheelrun_wheel_r); }; diff --git a/src/mame/includes/fgoal.h b/src/mame/includes/fgoal.h index 171a2a42917..bd04d267a4e 100644 --- a/src/mame/includes/fgoal.h +++ b/src/mame/includes/fgoal.h @@ -40,6 +40,7 @@ public: DECLARE_WRITE8_MEMBER(fgoal_color_w); DECLARE_WRITE8_MEMBER(fgoal_ypos_w); DECLARE_WRITE8_MEMBER(fgoal_xpos_w); + DECLARE_CUSTOM_INPUT_MEMBER(fgoal_80_r); }; diff --git a/src/mame/includes/firetrk.h b/src/mame/includes/firetrk.h index 4163f61dadc..b0ad46349e1 100644 --- a/src/mame/includes/firetrk.h +++ b/src/mame/includes/firetrk.h @@ -72,6 +72,11 @@ public: DECLARE_WRITE8_MEMBER(montecar_drone_reset_w); DECLARE_WRITE8_MEMBER(steer_reset_w); DECLARE_WRITE8_MEMBER(crash_reset_w); + DECLARE_CUSTOM_INPUT_MEMBER(steer_dir_r); + DECLARE_CUSTOM_INPUT_MEMBER(steer_flag_r); + DECLARE_CUSTOM_INPUT_MEMBER(skid_r); + DECLARE_CUSTOM_INPUT_MEMBER(crash_r); + DECLARE_CUSTOM_INPUT_MEMBER(gear_r); }; diff --git a/src/mame/includes/flstory.h b/src/mame/includes/flstory.h index eee181bfe0a..40253a09955 100644 --- a/src/mame/includes/flstory.h +++ b/src/mame/includes/flstory.h @@ -97,6 +97,7 @@ public: DECLARE_READ8_MEMBER(victnine_gfxctrl_r); DECLARE_WRITE8_MEMBER(victnine_gfxctrl_w); DECLARE_WRITE8_MEMBER(flstory_scrlram_w); + DECLARE_CUSTOM_INPUT_MEMBER(victnine_mcu_status_bit01_r); }; diff --git a/src/mame/includes/fromanc2.h b/src/mame/includes/fromanc2.h index fd86e9ebd6b..dd332e4ad64 100644 --- a/src/mame/includes/fromanc2.h +++ b/src/mame/includes/fromanc2.h @@ -78,6 +78,9 @@ public: DECLARE_WRITE16_MEMBER(fromanc4_gfxreg_0_w); DECLARE_WRITE16_MEMBER(fromanc4_gfxreg_1_w); DECLARE_WRITE16_MEMBER(fromanc4_gfxreg_2_w); + DECLARE_CUSTOM_INPUT_MEMBER(subcpu_int_r); + DECLARE_CUSTOM_INPUT_MEMBER(sndcpu_nmi_r); + DECLARE_CUSTOM_INPUT_MEMBER(subcpu_nmi_r); }; diff --git a/src/mame/includes/gaelco3d.h b/src/mame/includes/gaelco3d.h index 37718ca2919..e13161061ea 100644 --- a/src/mame/includes/gaelco3d.h +++ b/src/mame/includes/gaelco3d.h @@ -97,6 +97,7 @@ public: DECLARE_WRITE32_MEMBER(gaelco3d_render_w); DECLARE_WRITE16_MEMBER(gaelco3d_paletteram_w); DECLARE_WRITE32_MEMBER(gaelco3d_paletteram_020_w); + DECLARE_CUSTOM_INPUT_MEMBER(analog_bit_r); }; diff --git a/src/mame/includes/galaga.h b/src/mame/includes/galaga.h index 9fac4dc7874..98ca5cc2778 100644 --- a/src/mame/includes/galaga.h +++ b/src/mame/includes/galaga.h @@ -37,6 +37,7 @@ public: DECLARE_WRITE8_MEMBER(bosco_latch_w); DECLARE_WRITE8_MEMBER(galaga_videoram_w); DECLARE_WRITE8_MEMBER(gatsbee_bank_w); + DECLARE_CUSTOM_INPUT_MEMBER(shifted_port_r); }; class xevious_state : public galaga_state diff --git a/src/mame/includes/galastrm.h b/src/mame/includes/galastrm.h index 3c8d49ff9fe..f2e848f4e40 100644 --- a/src/mame/includes/galastrm.h +++ b/src/mame/includes/galastrm.h @@ -41,6 +41,8 @@ public: DECLARE_WRITE32_MEMBER(galastrm_input_w); DECLARE_READ32_MEMBER(galastrm_adstick_ctrl_r); DECLARE_WRITE32_MEMBER(galastrm_adstick_ctrl_w); + DECLARE_CUSTOM_INPUT_MEMBER(frame_counter_r); + DECLARE_CUSTOM_INPUT_MEMBER(coin_word_r); }; diff --git a/src/mame/includes/galaxian.h b/src/mame/includes/galaxian.h index 80e215294b7..a2a7bffa057 100644 --- a/src/mame/includes/galaxian.h +++ b/src/mame/includes/galaxian.h @@ -90,6 +90,11 @@ public: DECLARE_WRITE8_MEMBER(scramble_background_green_w); DECLARE_WRITE8_MEMBER(scramble_background_blue_w); DECLARE_WRITE8_MEMBER(galaxian_gfxbank_w); + DECLARE_CUSTOM_INPUT_MEMBER(scramble_protection_alt_r); + DECLARE_CUSTOM_INPUT_MEMBER(gmgalax_port_r); + DECLARE_CUSTOM_INPUT_MEMBER(azurian_port_r); + DECLARE_CUSTOM_INPUT_MEMBER(kingball_muxbit_r); + DECLARE_CUSTOM_INPUT_MEMBER(kingball_noise_r); }; diff --git a/src/mame/includes/galaxold.h b/src/mame/includes/galaxold.h index 2f8febef8c3..88a00f602dc 100644 --- a/src/mame/includes/galaxold.h +++ b/src/mame/includes/galaxold.h @@ -124,6 +124,9 @@ public: DECLARE_WRITE8_MEMBER(dambustr_bg_split_line_w); DECLARE_WRITE8_MEMBER(dambustr_bg_color_w); DECLARE_CUSTOM_INPUT_MEMBER(_4in1_fake_port_r); + DECLARE_CUSTOM_INPUT_MEMBER(vpool_lives_r); + DECLARE_CUSTOM_INPUT_MEMBER(ckongg_coinage_r); + DECLARE_CUSTOM_INPUT_MEMBER(dkongjrm_coinage_r); }; diff --git a/src/mame/includes/gottlieb.h b/src/mame/includes/gottlieb.h index 0a4fca58b02..413211a0a09 100644 --- a/src/mame/includes/gottlieb.h +++ b/src/mame/includes/gottlieb.h @@ -253,6 +253,8 @@ public: DECLARE_WRITE8_MEMBER(gottlieb_laserdisc_video_control_w); DECLARE_WRITE8_MEMBER(gottlieb_videoram_w); DECLARE_WRITE8_MEMBER(gottlieb_charram_w); + DECLARE_CUSTOM_INPUT_MEMBER(analog_delta_r); + DECLARE_CUSTOM_INPUT_MEMBER(stooges_joystick_r); }; diff --git a/src/mame/includes/groundfx.h b/src/mame/includes/groundfx.h index 8d5fcea0dac..570a1ec6d63 100644 --- a/src/mame/includes/groundfx.h +++ b/src/mame/includes/groundfx.h @@ -30,6 +30,8 @@ public: DECLARE_WRITE32_MEMBER(rotate_control_w); DECLARE_WRITE32_MEMBER(motor_control_w); DECLARE_READ32_MEMBER(irq_speedup_r_groundfx); + DECLARE_CUSTOM_INPUT_MEMBER(frame_counter_r); + DECLARE_CUSTOM_INPUT_MEMBER(coin_word_r); }; diff --git a/src/mame/includes/gunbustr.h b/src/mame/includes/gunbustr.h index 12989ebc453..8015305ff9e 100644 --- a/src/mame/includes/gunbustr.h +++ b/src/mame/includes/gunbustr.h @@ -26,6 +26,7 @@ public: DECLARE_READ32_MEMBER(gunbustr_gun_r); DECLARE_WRITE32_MEMBER(gunbustr_gun_w); DECLARE_READ32_MEMBER(main_cycle_r); + DECLARE_CUSTOM_INPUT_MEMBER(coin_word_r); }; diff --git a/src/mame/includes/homerun.h b/src/mame/includes/homerun.h index 0dc237015e7..fd4aef92f9c 100644 --- a/src/mame/includes/homerun.h +++ b/src/mame/includes/homerun.h @@ -27,6 +27,7 @@ public: int m_gc_down; DECLARE_WRITE8_MEMBER(homerun_videoram_w); DECLARE_WRITE8_MEMBER(homerun_color_w); + DECLARE_CUSTOM_INPUT_MEMBER(homerun_40_r); }; diff --git a/src/mame/includes/inufuku.h b/src/mame/includes/inufuku.h index c56fb17c16a..896280a3926 100644 --- a/src/mame/includes/inufuku.h +++ b/src/mame/includes/inufuku.h @@ -39,6 +39,7 @@ public: DECLARE_WRITE16_MEMBER(inufuku_bg_videoram_w); DECLARE_READ16_MEMBER(inufuku_tx_videoram_r); DECLARE_WRITE16_MEMBER(inufuku_tx_videoram_w); + DECLARE_CUSTOM_INPUT_MEMBER(soundflag_r); }; diff --git a/src/mame/includes/itech32.h b/src/mame/includes/itech32.h index fa6d18ca876..5f60c20a616 100644 --- a/src/mame/includes/itech32.h +++ b/src/mame/includes/itech32.h @@ -123,6 +123,7 @@ public: DECLARE_WRITE32_MEMBER(itech020_video_w); DECLARE_WRITE32_MEMBER(drivedge_zbuf_control_w); DECLARE_READ32_MEMBER(itech020_video_r); + DECLARE_CUSTOM_INPUT_MEMBER(special_port_r); }; diff --git a/src/mame/includes/itech8.h b/src/mame/includes/itech8.h index 5e6e16c5c2f..e5527b83949 100644 --- a/src/mame/includes/itech8.h +++ b/src/mame/includes/itech8.h @@ -71,6 +71,8 @@ public: DECLARE_READ8_MEMBER(itech8_tms34061_r); DECLARE_WRITE8_MEMBER(grmatch_palette_w); DECLARE_WRITE8_MEMBER(grmatch_xscroll_w); + DECLARE_CUSTOM_INPUT_MEMBER(special_r); + DECLARE_CUSTOM_INPUT_MEMBER(gtg_mux); }; diff --git a/src/mame/includes/jack.h b/src/mame/includes/jack.h index 2d175685656..85d67d5fa85 100644 --- a/src/mame/includes/jack.h +++ b/src/mame/includes/jack.h @@ -38,6 +38,7 @@ public: DECLARE_WRITE8_MEMBER(jack_paletteram_w); DECLARE_READ8_MEMBER(jack_flipscreen_r); DECLARE_WRITE8_MEMBER(jack_flipscreen_w); + DECLARE_CUSTOM_INPUT_MEMBER(sound_check_r); }; diff --git a/src/mame/includes/konamigx.h b/src/mame/includes/konamigx.h index a4b528770ce..b186e3eac99 100644 --- a/src/mame/includes/konamigx.h +++ b/src/mame/includes/konamigx.h @@ -42,6 +42,7 @@ public: DECLARE_WRITE32_MEMBER(konamigx_tilebank_w); DECLARE_WRITE32_MEMBER(konamigx_t1_psacmap_w); DECLARE_WRITE32_MEMBER(konamigx_t4_psacmap_w); + DECLARE_CUSTOM_INPUT_MEMBER(gx_rdport1_3_r); }; diff --git a/src/mame/includes/ladybug.h b/src/mame/includes/ladybug.h index 9fb25465ddd..2a35a87725e 100644 --- a/src/mame/includes/ladybug.h +++ b/src/mame/includes/ladybug.h @@ -51,6 +51,8 @@ public: DECLARE_WRITE8_MEMBER(ladybug_colorram_w); DECLARE_WRITE8_MEMBER(ladybug_flipscreen_w); DECLARE_WRITE8_MEMBER(sraider_io_w); + DECLARE_CUSTOM_INPUT_MEMBER(ladybug_p1_control_r); + DECLARE_CUSTOM_INPUT_MEMBER(ladybug_p2_control_r); }; diff --git a/src/mame/includes/lethalj.h b/src/mame/includes/lethalj.h index 37dfaf469a5..ee227eb6e1f 100644 --- a/src/mame/includes/lethalj.h +++ b/src/mame/includes/lethalj.h @@ -24,6 +24,7 @@ public: DECLARE_READ16_MEMBER(lethalj_gun_r); DECLARE_WRITE16_MEMBER(lethalj_blitter_w); void do_blit(); + DECLARE_CUSTOM_INPUT_MEMBER(cclownz_paddle); }; diff --git a/src/mame/includes/m92.h b/src/mame/includes/m92.h index 5e2a11e74e0..b052d6e3a45 100644 --- a/src/mame/includes/m92.h +++ b/src/mame/includes/m92.h @@ -54,6 +54,7 @@ public: DECLARE_WRITE16_MEMBER(m92_pf2_control_w); DECLARE_WRITE16_MEMBER(m92_pf3_control_w); DECLARE_WRITE16_MEMBER(m92_master_control_w); + DECLARE_CUSTOM_INPUT_MEMBER(m92_sprite_busy_r); }; diff --git a/src/mame/includes/mainsnk.h b/src/mame/includes/mainsnk.h index f1692ffd8c5..8e19de86f4e 100644 --- a/src/mame/includes/mainsnk.h +++ b/src/mame/includes/mainsnk.h @@ -18,6 +18,7 @@ public: DECLARE_WRITE8_MEMBER(mainsnk_c600_w); DECLARE_WRITE8_MEMBER(mainsnk_fgram_w); DECLARE_WRITE8_MEMBER(mainsnk_bgram_w); + DECLARE_CUSTOM_INPUT_MEMBER(mainsnk_sound_r); }; diff --git a/src/mame/includes/metro.h b/src/mame/includes/metro.h index 7470b2484cb..2495746593b 100644 --- a/src/mame/includes/metro.h +++ b/src/mame/includes/metro.h @@ -118,6 +118,7 @@ public: DECLARE_WRITE16_MEMBER(metro_vram_2_w); DECLARE_WRITE16_MEMBER(metro_window_w); void blt_write( address_space *space, const int tmap, const offs_t offs, const UINT16 data, const UINT16 mask ); + DECLARE_CUSTOM_INPUT_MEMBER(custom_soundstatus_r); }; diff --git a/src/mame/includes/mhavoc.h b/src/mame/includes/mhavoc.h index 51d383fee92..c73bfe66f2a 100644 --- a/src/mame/includes/mhavoc.h +++ b/src/mame/includes/mhavoc.h @@ -56,6 +56,7 @@ public: DECLARE_CUSTOM_INPUT_MEMBER(gamma_xmtd_r); DECLARE_CUSTOM_INPUT_MEMBER(alpha_rcvd_r); DECLARE_CUSTOM_INPUT_MEMBER(alpha_xmtd_r); + DECLARE_CUSTOM_INPUT_MEMBER(clock_r); }; diff --git a/src/mame/includes/midyunit.h b/src/mame/includes/midyunit.h index ed0a4189d08..67367ce3eb9 100644 --- a/src/mame/includes/midyunit.h +++ b/src/mame/includes/midyunit.h @@ -75,6 +75,9 @@ public: DECLARE_WRITE16_MEMBER(midyunit_paletteram_w); DECLARE_READ16_MEMBER(midyunit_dma_r); DECLARE_WRITE16_MEMBER(midyunit_dma_w); + DECLARE_CUSTOM_INPUT_MEMBER(narc_talkback_strobe_r); + DECLARE_CUSTOM_INPUT_MEMBER(narc_talkback_data_r); + DECLARE_CUSTOM_INPUT_MEMBER(adpcm_irq_state_r); }; diff --git a/src/mame/includes/midzeus.h b/src/mame/includes/midzeus.h index 0adf610b22e..9ead325be26 100644 --- a/src/mame/includes/midzeus.h +++ b/src/mame/includes/midzeus.h @@ -35,6 +35,8 @@ public: DECLARE_READ8_MEMBER(PIC16C5X_T0_clk_r); DECLARE_READ32_MEMBER(zeus_r); DECLARE_WRITE32_MEMBER(zeus_w); + DECLARE_CUSTOM_INPUT_MEMBER(custom_49way_r); + DECLARE_CUSTOM_INPUT_MEMBER(keypad_r); }; diff --git a/src/mame/includes/model2.h b/src/mame/includes/model2.h index 6f4659b16f0..b1b2ab46090 100644 --- a/src/mame/includes/model2.h +++ b/src/mame/includes/model2.h @@ -69,6 +69,9 @@ public: bitmap_rgb32 m_sys24_bitmap; required_device m_maincpu; + DECLARE_CUSTOM_INPUT_MEMBER(_1c00000_r); + DECLARE_CUSTOM_INPUT_MEMBER(_1c0001c_r); + DECLARE_CUSTOM_INPUT_MEMBER(rchase2_devices_r); }; diff --git a/src/mame/includes/ms32.h b/src/mame/includes/ms32.h index 0bd6dfd70da..5a4209df552 100644 --- a/src/mame/includes/ms32.h +++ b/src/mame/includes/ms32.h @@ -65,6 +65,7 @@ public: DECLARE_WRITE8_MEMBER(to_main_w); DECLARE_WRITE32_MEMBER(ms32_brightness_w); DECLARE_WRITE32_MEMBER(ms32_gfxctrl_w); + DECLARE_CUSTOM_INPUT_MEMBER(mahjong_ctrl_r); }; diff --git a/src/mame/includes/mw8080bw.h b/src/mame/includes/mw8080bw.h index 2d1e75e6575..c74b74370c1 100644 --- a/src/mame/includes/mw8080bw.h +++ b/src/mame/includes/mw8080bw.h @@ -89,6 +89,22 @@ public: DECLARE_READ8_MEMBER(bowler_shift_result_r); DECLARE_WRITE8_MEMBER(bowler_lights_1_w); DECLARE_WRITE8_MEMBER(bowler_lights_2_w); + DECLARE_CUSTOM_INPUT_MEMBER(seawolf_erase_input_r); + DECLARE_CUSTOM_INPUT_MEMBER(tornbase_hit_left_input_r); + DECLARE_CUSTOM_INPUT_MEMBER(tornbase_hit_right_input_r); + DECLARE_CUSTOM_INPUT_MEMBER(tornbase_pitch_left_input_r); + DECLARE_CUSTOM_INPUT_MEMBER(tornbase_pitch_right_input_r); + DECLARE_CUSTOM_INPUT_MEMBER(tornbase_score_input_r); + DECLARE_CUSTOM_INPUT_MEMBER(desertgu_gun_input_r); + DECLARE_CUSTOM_INPUT_MEMBER(desertgu_dip_sw_0_1_r); + DECLARE_CUSTOM_INPUT_MEMBER(dplay_pitch_left_input_r); + DECLARE_CUSTOM_INPUT_MEMBER(dplay_pitch_right_input_r); + DECLARE_CUSTOM_INPUT_MEMBER(clowns_controller_r); + DECLARE_CUSTOM_INPUT_MEMBER(invaders_coin_input_r); + DECLARE_CUSTOM_INPUT_MEMBER(invaders_sw6_sw7_r); + DECLARE_CUSTOM_INPUT_MEMBER(invaders_sw5_r); + DECLARE_CUSTOM_INPUT_MEMBER(invaders_in0_control_r); + DECLARE_CUSTOM_INPUT_MEMBER(blueshrk_coin_input_r); }; diff --git a/src/mame/includes/namcos22.h b/src/mame/includes/namcos22.h index 790e750d6e9..12fe2709bcb 100644 --- a/src/mame/includes/namcos22.h +++ b/src/mame/includes/namcos22.h @@ -127,6 +127,7 @@ public: DECLARE_WRITE16_MEMBER(namcos22_dspram16_bank_w); DECLARE_READ16_MEMBER(namcos22_dspram16_r); DECLARE_WRITE16_MEMBER(namcos22_dspram16_w); + DECLARE_CUSTOM_INPUT_MEMBER(alpine_motor_read); }; diff --git a/src/mame/includes/neogeo.h b/src/mame/includes/neogeo.h index 0c9fa165f22..ad1c5915b48 100644 --- a/src/mame/includes/neogeo.h +++ b/src/mame/includes/neogeo.h @@ -128,6 +128,11 @@ public: DECLARE_WRITE16_MEMBER(neogeo_paletteram_w); DECLARE_READ16_MEMBER(neogeo_video_register_r); DECLARE_WRITE16_MEMBER(neogeo_video_register_w); + DECLARE_CUSTOM_INPUT_MEMBER(multiplexed_controller_r); + DECLARE_CUSTOM_INPUT_MEMBER(mahjong_controller_r); + DECLARE_CUSTOM_INPUT_MEMBER(get_calendar_status); + DECLARE_CUSTOM_INPUT_MEMBER(get_memcard_status); + DECLARE_CUSTOM_INPUT_MEMBER(get_audio_result); }; diff --git a/src/mame/includes/niyanpai.h b/src/mame/includes/niyanpai.h index cde22ec330f..f9ac24c462b 100644 --- a/src/mame/includes/niyanpai.h +++ b/src/mame/includes/niyanpai.h @@ -75,6 +75,7 @@ public: DECLARE_WRITE16_MEMBER(niyanpai_clutsel_0_w); DECLARE_WRITE16_MEMBER(niyanpai_clutsel_1_w); DECLARE_WRITE16_MEMBER(niyanpai_clutsel_2_w); + DECLARE_CUSTOM_INPUT_MEMBER(musobana_outcoin_flag_r); }; diff --git a/src/mame/includes/nova2001.h b/src/mame/includes/nova2001.h index 69bb7a011d3..a50c210b453 100644 --- a/src/mame/includes/nova2001.h +++ b/src/mame/includes/nova2001.h @@ -21,6 +21,7 @@ public: DECLARE_WRITE8_MEMBER(nova2001_scroll_y_w); DECLARE_WRITE8_MEMBER(nova2001_flipscreen_w); DECLARE_WRITE8_MEMBER(pkunwar_flipscreen_w); + DECLARE_CUSTOM_INPUT_MEMBER(ninjakun_io_A002_ctrl_r); }; diff --git a/src/mame/includes/pastelg.h b/src/mame/includes/pastelg.h index b6665035fb5..e09183b84be 100644 --- a/src/mame/includes/pastelg.h +++ b/src/mame/includes/pastelg.h @@ -30,6 +30,7 @@ public: DECLARE_WRITE8_MEMBER(threeds_output_w); DECLARE_READ8_MEMBER(threeds_rom_readback_r); DECLARE_WRITE8_MEMBER(pastelg_romsel_w); + DECLARE_CUSTOM_INPUT_MEMBER(nb1413m3_hackbusyflag_r); }; diff --git a/src/mame/includes/pirates.h b/src/mame/includes/pirates.h index 47a5fc0a1ad..26ac848976f 100644 --- a/src/mame/includes/pirates.h +++ b/src/mame/includes/pirates.h @@ -17,6 +17,7 @@ public: DECLARE_WRITE16_MEMBER(pirates_tx_tileram_w); DECLARE_WRITE16_MEMBER(pirates_fg_tileram_w); DECLARE_WRITE16_MEMBER(pirates_bg_tileram_w); + DECLARE_CUSTOM_INPUT_MEMBER(prot_r); }; diff --git a/src/mame/includes/polepos.h b/src/mame/includes/polepos.h index 11295d84b22..d355d6ec866 100644 --- a/src/mame/includes/polepos.h +++ b/src/mame/includes/polepos.h @@ -58,6 +58,9 @@ public: DECLARE_WRITE16_MEMBER(polepos_alpha16_w); DECLARE_READ8_MEMBER(polepos_alpha_r); DECLARE_WRITE8_MEMBER(polepos_alpha_w); + DECLARE_CUSTOM_INPUT_MEMBER(high_port_r); + DECLARE_CUSTOM_INPUT_MEMBER(low_port_r); + DECLARE_CUSTOM_INPUT_MEMBER(auto_start_r); }; diff --git a/src/mame/includes/policetr.h b/src/mame/includes/policetr.h index a2faad21e6c..3eb883bce03 100644 --- a/src/mame/includes/policetr.h +++ b/src/mame/includes/policetr.h @@ -39,6 +39,7 @@ public: DECLARE_READ32_MEMBER(policetr_video_r); DECLARE_WRITE32_MEMBER(policetr_palette_offset_w); DECLARE_WRITE32_MEMBER(policetr_palette_data_w); + DECLARE_CUSTOM_INPUT_MEMBER(bsmt_status_r); }; diff --git a/src/mame/includes/psikyo.h b/src/mame/includes/psikyo.h index 39b2e78807f..88d1988fa12 100644 --- a/src/mame/includes/psikyo.h +++ b/src/mame/includes/psikyo.h @@ -71,6 +71,8 @@ public: DECLARE_WRITE8_MEMBER(gunbird_sound_bankswitch_w); DECLARE_WRITE32_MEMBER(psikyo_vram_0_w); DECLARE_WRITE32_MEMBER(psikyo_vram_1_w); + DECLARE_CUSTOM_INPUT_MEMBER(z80_nmi_r); + DECLARE_CUSTOM_INPUT_MEMBER(mcu_status_r); }; diff --git a/src/mame/includes/psikyo4.h b/src/mame/includes/psikyo4.h index 2e580566ac2..4626ea27fcf 100644 --- a/src/mame/includes/psikyo4.h +++ b/src/mame/includes/psikyo4.h @@ -36,6 +36,8 @@ public: DECLARE_WRITE32_MEMBER(ps4_screen2_brt_w); DECLARE_WRITE32_MEMBER(ps4_vidregs_w); DECLARE_WRITE32_MEMBER(hotgmck_pcm_bank_w); + DECLARE_CUSTOM_INPUT_MEMBER(system_port_r); + DECLARE_CUSTOM_INPUT_MEMBER(mahjong_ctrl_r); }; diff --git a/src/mame/includes/punchout.h b/src/mame/includes/punchout.h index 10b62ebf651..9316dd5bb30 100644 --- a/src/mame/includes/punchout.h +++ b/src/mame/includes/punchout.h @@ -35,6 +35,7 @@ public: DECLARE_WRITE8_MEMBER(armwrest_fg_videoram_w); DECLARE_WRITE8_MEMBER(punchout_spr1_videoram_w); DECLARE_WRITE8_MEMBER(punchout_spr2_videoram_w); + DECLARE_CUSTOM_INPUT_MEMBER(punchout_vlm5030_busy_r); }; diff --git a/src/mame/includes/qdrmfgp.h b/src/mame/includes/qdrmfgp.h index 66c5424e948..e3086b955b7 100644 --- a/src/mame/includes/qdrmfgp.h +++ b/src/mame/includes/qdrmfgp.h @@ -24,6 +24,8 @@ public: DECLARE_READ16_MEMBER(sndram_r); DECLARE_WRITE16_MEMBER(sndram_w); DECLARE_READ16_MEMBER(gp2_ide_std_r); + DECLARE_CUSTOM_INPUT_MEMBER(inputs_r); + DECLARE_CUSTOM_INPUT_MEMBER(battery_sensor_r); }; /*----------- defined in video/qdrmfgp.c -----------*/ diff --git a/src/mame/includes/renegade.h b/src/mame/includes/renegade.h index 3a45ee9cf61..c9edb3a38ee 100644 --- a/src/mame/includes/renegade.h +++ b/src/mame/includes/renegade.h @@ -60,6 +60,7 @@ public: DECLARE_WRITE8_MEMBER(renegade_flipscreen_w); DECLARE_WRITE8_MEMBER(renegade_scroll0_w); DECLARE_WRITE8_MEMBER(renegade_scroll1_w); + DECLARE_CUSTOM_INPUT_MEMBER(mcu_status_r); }; diff --git a/src/mame/includes/rpunch.h b/src/mame/includes/rpunch.h index eb18fa0b344..c02793f602e 100644 --- a/src/mame/includes/rpunch.h +++ b/src/mame/includes/rpunch.h @@ -28,6 +28,7 @@ public: DECLARE_WRITE16_MEMBER(rpunch_crtc_data_w); DECLARE_WRITE16_MEMBER(rpunch_crtc_register_w); DECLARE_WRITE16_MEMBER(rpunch_ins_w); + DECLARE_CUSTOM_INPUT_MEMBER(hi_bits_r); }; diff --git a/src/mame/includes/scramble.h b/src/mame/includes/scramble.h index ee9b1b048d9..2311612eb09 100644 --- a/src/mame/includes/scramble.h +++ b/src/mame/includes/scramble.h @@ -12,6 +12,7 @@ public: UINT8 m_security_2B_counter; UINT8 m_xb; DECLARE_CUSTOM_INPUT_MEMBER(darkplnt_custom_r); + DECLARE_CUSTOM_INPUT_MEMBER(ckongs_coinage_r); }; diff --git a/src/mame/includes/segag80v.h b/src/mame/includes/segag80v.h index 28a93be135a..73c5aedffb0 100644 --- a/src/mame/includes/segag80v.h +++ b/src/mame/includes/segag80v.h @@ -34,6 +34,7 @@ public: DECLARE_READ8_MEMBER(multiply_r); DECLARE_WRITE8_MEMBER(coin_count_w); DECLARE_WRITE8_MEMBER(unknown_w); + DECLARE_CUSTOM_INPUT_MEMBER(elim4_joint_coin_r); }; diff --git a/src/mame/includes/seibuspi.h b/src/mame/includes/seibuspi.h index 0e441b843e2..d9b4eff375b 100644 --- a/src/mame/includes/seibuspi.h +++ b/src/mame/includes/seibuspi.h @@ -53,6 +53,8 @@ public: DECLARE_WRITE32_MEMBER(sprite_dma_start_w); DECLARE_WRITE32_MEMBER(video_dma_length_w); DECLARE_WRITE32_MEMBER(video_dma_address_w); + DECLARE_CUSTOM_INPUT_MEMBER(ejsakura_keyboard_r); + DECLARE_CUSTOM_INPUT_MEMBER(ejanhs_encode); }; diff --git a/src/mame/includes/snk.h b/src/mame/includes/snk.h index 79d2a3e0edd..5b963f9f4e6 100644 --- a/src/mame/includes/snk.h +++ b/src/mame/includes/snk.h @@ -129,6 +129,13 @@ public: DECLARE_WRITE8_MEMBER(gwara_sp_scroll_msb_w); DECLARE_WRITE8_MEMBER(tdfever_sp_scroll_msb_w); DECLARE_WRITE8_MEMBER(tdfever_spriteram_w); + DECLARE_CUSTOM_INPUT_MEMBER(marvins_sound_busy); + DECLARE_CUSTOM_INPUT_MEMBER(snk_sound_busy); + DECLARE_CUSTOM_INPUT_MEMBER(gwar_rotary); + DECLARE_CUSTOM_INPUT_MEMBER(gwarb_rotary); + DECLARE_CUSTOM_INPUT_MEMBER(countryc_trackball_x); + DECLARE_CUSTOM_INPUT_MEMBER(countryc_trackball_y); + DECLARE_CUSTOM_INPUT_MEMBER(snk_bonus_r); }; diff --git a/src/mame/includes/snk6502.h b/src/mame/includes/snk6502.h index 2fcfcc47fda..d6a811dd224 100644 --- a/src/mame/includes/snk6502.h +++ b/src/mame/includes/snk6502.h @@ -40,6 +40,8 @@ public: DECLARE_WRITE8_MEMBER(snk6502_scrolly_w); DECLARE_WRITE8_MEMBER(satansat_b002_w); DECLARE_WRITE8_MEMBER(satansat_backcolor_w); + DECLARE_CUSTOM_INPUT_MEMBER(snk6502_music0_r); + DECLARE_CUSTOM_INPUT_MEMBER(sasuke_count_r); }; diff --git a/src/mame/includes/sprint4.h b/src/mame/includes/sprint4.h index d36d7fe55f3..9a57f834734 100644 --- a/src/mame/includes/sprint4.h +++ b/src/mame/includes/sprint4.h @@ -24,6 +24,9 @@ public: DECLARE_WRITE8_MEMBER(sprint4_lamp_w); DECLARE_WRITE8_MEMBER(sprint4_lockout_w); DECLARE_WRITE8_MEMBER(sprint4_video_ram_w); + DECLARE_CUSTOM_INPUT_MEMBER(get_lever); + DECLARE_CUSTOM_INPUT_MEMBER(get_wheel); + DECLARE_CUSTOM_INPUT_MEMBER(get_collision); }; diff --git a/src/mame/includes/stactics.h b/src/mame/includes/stactics.h index 6c2ed6f8759..c6bf6e6c73a 100644 --- a/src/mame/includes/stactics.h +++ b/src/mame/includes/stactics.h @@ -46,6 +46,8 @@ public: DECLARE_CUSTOM_INPUT_MEMBER(stactics_get_frame_count_d3); DECLARE_CUSTOM_INPUT_MEMBER(stactics_get_shot_standby); DECLARE_CUSTOM_INPUT_MEMBER(stactics_get_not_shot_arrive); + DECLARE_CUSTOM_INPUT_MEMBER(get_motor_not_ready); + DECLARE_CUSTOM_INPUT_MEMBER(get_rng); }; diff --git a/src/mame/includes/starshp1.h b/src/mame/includes/starshp1.h index c35a318953c..7b5532da0c0 100644 --- a/src/mame/includes/starshp1.h +++ b/src/mame/includes/starshp1.h @@ -67,6 +67,8 @@ public: DECLARE_WRITE8_MEMBER(starshp1_ssadd_w); DECLARE_WRITE8_MEMBER(starshp1_sspic_w); DECLARE_WRITE8_MEMBER(starshp1_playfield_w); + DECLARE_CUSTOM_INPUT_MEMBER(starshp1_analog_r); + DECLARE_CUSTOM_INPUT_MEMBER(collision_latch_r); }; diff --git a/src/mame/includes/suprnova.h b/src/mame/includes/suprnova.h index 428e05bfd58..5260c3d3257 100644 --- a/src/mame/includes/suprnova.h +++ b/src/mame/includes/suprnova.h @@ -94,6 +94,7 @@ public: DECLARE_WRITE32_MEMBER(skns_tilemapA_w); DECLARE_WRITE32_MEMBER(skns_tilemapB_w); DECLARE_WRITE32_MEMBER(skns_v3_regs_w); + DECLARE_CUSTOM_INPUT_MEMBER(paddle_r); }; diff --git a/src/mame/includes/suprridr.h b/src/mame/includes/suprridr.h index 9abdda06d4c..a18840228df 100644 --- a/src/mame/includes/suprridr.h +++ b/src/mame/includes/suprridr.h @@ -31,6 +31,7 @@ public: DECLARE_WRITE8_MEMBER(suprridr_bgscrolly_w); DECLARE_WRITE8_MEMBER(suprridr_bgram_w); DECLARE_WRITE8_MEMBER(suprridr_fgram_w); + DECLARE_CUSTOM_INPUT_MEMBER(suprridr_control_r); }; diff --git a/src/mame/includes/system1.h b/src/mame/includes/system1.h index 804537726fb..d6e81518862 100644 --- a/src/mame/includes/system1.h +++ b/src/mame/includes/system1.h @@ -50,6 +50,8 @@ public: DECLARE_READ8_MEMBER(system1_videoram_r); DECLARE_WRITE8_MEMBER(system1_videoram_w); DECLARE_WRITE8_MEMBER(system1_paletteram_w); + DECLARE_CUSTOM_INPUT_MEMBER(dakkochn_mux_data_r); + DECLARE_CUSTOM_INPUT_MEMBER(dakkochn_mux_status_r); }; diff --git a/src/mame/includes/taito_f3.h b/src/mame/includes/taito_f3.h index fe2099678ed..5c29116534a 100644 --- a/src/mame/includes/taito_f3.h +++ b/src/mame/includes/taito_f3.h @@ -216,6 +216,8 @@ public: DECLARE_READ16_MEMBER(f3_lineram_r); DECLARE_WRITE16_MEMBER(f3_lineram_w); DECLARE_WRITE32_MEMBER(f3_palette_24bit_w); + DECLARE_CUSTOM_INPUT_MEMBER(f3_analog_r); + DECLARE_CUSTOM_INPUT_MEMBER(f3_coin_r); }; diff --git a/src/mame/includes/taitojc.h b/src/mame/includes/taitojc.h index 1c29ae8a2ef..ee193ac351b 100644 --- a/src/mame/includes/taitojc.h +++ b/src/mame/includes/taitojc.h @@ -102,6 +102,7 @@ public: DECLARE_READ32_MEMBER(taitojc_char_r); DECLARE_WRITE32_MEMBER(taitojc_tile_w); DECLARE_WRITE32_MEMBER(taitojc_char_w); + DECLARE_CUSTOM_INPUT_MEMBER(mascon_state_r); }; diff --git a/src/mame/includes/taitosj.h b/src/mame/includes/taitosj.h index 637eeb00cf0..c0743945def 100644 --- a/src/mame/includes/taitosj.h +++ b/src/mame/includes/taitosj.h @@ -60,6 +60,8 @@ public: DECLARE_WRITE8_MEMBER(taitosj_characterram_w); DECLARE_WRITE8_MEMBER(junglhbr_characterram_w); DECLARE_WRITE8_MEMBER(taitosj_collision_reg_clear_w); + DECLARE_CUSTOM_INPUT_MEMBER(input_port_4_f0_r); + DECLARE_CUSTOM_INPUT_MEMBER(kikstart_gear_r); }; diff --git a/src/mame/includes/tetrisp2.h b/src/mame/includes/tetrisp2.h index 8bee9a87bc1..0756cbb5908 100644 --- a/src/mame/includes/tetrisp2.h +++ b/src/mame/includes/tetrisp2.h @@ -73,6 +73,7 @@ public: DECLARE_WRITE16_MEMBER(rocknms_sub_vram_bg_w); DECLARE_WRITE16_MEMBER(rocknms_sub_vram_fg_w); DECLARE_WRITE16_MEMBER(rocknms_sub_vram_rot_w); + DECLARE_CUSTOM_INPUT_MEMBER(rocknms_main2sub_status_r); }; /*----------- defined in video/tetrisp2.c -----------*/ diff --git a/src/mame/includes/toaplan2.h b/src/mame/includes/toaplan2.h index 9a210ec262f..bb2fc63bf52 100644 --- a/src/mame/includes/toaplan2.h +++ b/src/mame/includes/toaplan2.h @@ -96,6 +96,7 @@ public: DECLARE_WRITE16_MEMBER(batrider_textdata_dma_w); DECLARE_WRITE16_MEMBER(batrider_unknown_dma_w); DECLARE_WRITE16_MEMBER(batrider_objectbank_w); + DECLARE_CUSTOM_INPUT_MEMBER(c2map_r); }; /*----------- defined in video/toaplan2.c -----------*/ diff --git a/src/mame/includes/ultratnk.h b/src/mame/includes/ultratnk.h index 1536759e34a..dd746fc2be1 100644 --- a/src/mame/includes/ultratnk.h +++ b/src/mame/includes/ultratnk.h @@ -28,6 +28,8 @@ public: DECLARE_WRITE8_MEMBER(ultratnk_led_2_w); DECLARE_WRITE8_MEMBER(ultratnk_lockout_w); DECLARE_WRITE8_MEMBER(ultratnk_video_ram_w); + DECLARE_CUSTOM_INPUT_MEMBER(get_collision); + DECLARE_CUSTOM_INPUT_MEMBER(get_joystick); }; diff --git a/src/mame/includes/undrfire.h b/src/mame/includes/undrfire.h index dbf0e44dabe..5947c118d9c 100644 --- a/src/mame/includes/undrfire.h +++ b/src/mame/includes/undrfire.h @@ -37,6 +37,7 @@ public: DECLARE_WRITE32_MEMBER(cbombers_cpua_ctrl_w); DECLARE_READ32_MEMBER(cbombers_adc_r); DECLARE_WRITE32_MEMBER(cbombers_adc_w); + DECLARE_CUSTOM_INPUT_MEMBER(frame_counter_r); }; diff --git a/src/mame/includes/vicdual.h b/src/mame/includes/vicdual.h index d369a610080..ef92110e19d 100644 --- a/src/mame/includes/vicdual.h +++ b/src/mame/includes/vicdual.h @@ -64,6 +64,13 @@ public: DECLARE_READ8_MEMBER(invinco_io_r); DECLARE_WRITE8_MEMBER(invinco_io_w); DECLARE_WRITE8_MEMBER(vicdual_palette_bank_w); + DECLARE_CUSTOM_INPUT_MEMBER(vicdual_read_coin_status); + DECLARE_CUSTOM_INPUT_MEMBER(vicdual_get_64v); + DECLARE_CUSTOM_INPUT_MEMBER(vicdual_get_vblank_comp); + DECLARE_CUSTOM_INPUT_MEMBER(vicdual_get_composite_blank_comp); + DECLARE_CUSTOM_INPUT_MEMBER(vicdual_get_timer_value); + DECLARE_CUSTOM_INPUT_MEMBER(brdrline_lives); + DECLARE_CUSTOM_INPUT_MEMBER(samurai_protection_r); }; diff --git a/src/mame/includes/welltris.h b/src/mame/includes/welltris.h index 5a74642e938..24091f9ad4e 100644 --- a/src/mame/includes/welltris.h +++ b/src/mame/includes/welltris.h @@ -27,6 +27,7 @@ public: DECLARE_WRITE16_MEMBER(welltris_scrollreg_w); DECLARE_WRITE16_MEMBER(welltris_charvideoram_w); void setbank(int num, int bank); + DECLARE_CUSTOM_INPUT_MEMBER(pending_sound_r); }; diff --git a/src/mame/includes/wolfpack.h b/src/mame/includes/wolfpack.h index df9865350ca..d9adbd00147 100644 --- a/src/mame/includes/wolfpack.h +++ b/src/mame/includes/wolfpack.h @@ -47,6 +47,7 @@ public: DECLARE_WRITE8_MEMBER(wolfpack_ship_pic_w); DECLARE_WRITE8_MEMBER(wolfpack_torpedo_h_w); DECLARE_WRITE8_MEMBER(wolfpack_torpedo_v_w); + DECLARE_CUSTOM_INPUT_MEMBER(wolfpack_dial_r); }; diff --git a/src/mame/includes/wwfsstar.h b/src/mame/includes/wwfsstar.h index f1c94e11c71..48639b3b1b0 100644 --- a/src/mame/includes/wwfsstar.h +++ b/src/mame/includes/wwfsstar.h @@ -18,6 +18,7 @@ public: DECLARE_WRITE16_MEMBER(wwfsstar_irqack_w); DECLARE_WRITE16_MEMBER(wwfsstar_fg0_videoram_w); DECLARE_WRITE16_MEMBER(wwfsstar_bg0_videoram_w); + DECLARE_CUSTOM_INPUT_MEMBER(wwfsstar_vblank_r); }; diff --git a/src/mame/includes/wwfwfest.h b/src/mame/includes/wwfwfest.h index 19223750fd5..42229306916 100644 --- a/src/mame/includes/wwfwfest.h +++ b/src/mame/includes/wwfwfest.h @@ -32,6 +32,8 @@ public: DECLARE_WRITE16_MEMBER(wwfwfest_fg0_videoram_w); DECLARE_WRITE16_MEMBER(wwfwfest_bg0_videoram_w); DECLARE_WRITE16_MEMBER(wwfwfest_bg1_videoram_w); + DECLARE_CUSTOM_INPUT_MEMBER(dsw_3f_r); + DECLARE_CUSTOM_INPUT_MEMBER(dsw_c0_r); }; diff --git a/src/mame/includes/xain.h b/src/mame/includes/xain.h index 5ecb73904b0..9bef2f210f9 100644 --- a/src/mame/includes/xain.h +++ b/src/mame/includes/xain.h @@ -57,6 +57,8 @@ public: DECLARE_WRITE8_MEMBER(xain_scrollxP1_w); DECLARE_WRITE8_MEMBER(xain_scrollyP1_w); DECLARE_WRITE8_MEMBER(xain_flipscreen_w); + DECLARE_CUSTOM_INPUT_MEMBER(xain_vblank_r); + DECLARE_CUSTOM_INPUT_MEMBER(mcu_status_r); }; diff --git a/src/mame/includes/xmen.h b/src/mame/includes/xmen.h index ac77d53174f..4484d48d384 100644 --- a/src/mame/includes/xmen.h +++ b/src/mame/includes/xmen.h @@ -41,6 +41,7 @@ public: DECLARE_WRITE16_MEMBER(sound_irq_w); DECLARE_WRITE16_MEMBER(xmen_18fa00_w); DECLARE_WRITE8_MEMBER(sound_bankswitch_w); + DECLARE_CUSTOM_INPUT_MEMBER(xmen_frame_r); }; /*----------- defined in video/xmen.c -----------*/ diff --git a/src/mame/includes/xxmissio.h b/src/mame/includes/xxmissio.h index e335a4deb60..ea4f984818a 100644 --- a/src/mame/includes/xxmissio.h +++ b/src/mame/includes/xxmissio.h @@ -20,6 +20,7 @@ public: DECLARE_WRITE8_MEMBER(xxmissio_bgram_w); DECLARE_READ8_MEMBER(xxmissio_bgram_r); DECLARE_WRITE8_MEMBER(xxmissio_paletteram_w); + DECLARE_CUSTOM_INPUT_MEMBER(xxmissio_status_r); }; diff --git a/src/mame/includes/zaccaria.h b/src/mame/includes/zaccaria.h index 1f26ad1da25..091152263ff 100644 --- a/src/mame/includes/zaccaria.h +++ b/src/mame/includes/zaccaria.h @@ -27,6 +27,7 @@ public: DECLARE_WRITE8_MEMBER(zaccaria_attributes_w); DECLARE_WRITE8_MEMBER(zaccaria_flip_screen_x_w); DECLARE_WRITE8_MEMBER(zaccaria_flip_screen_y_w); + DECLARE_CUSTOM_INPUT_MEMBER(acs_r); }; diff --git a/src/mame/includes/zaxxon.h b/src/mame/includes/zaxxon.h index cc1497e4f7b..2da77ab7735 100644 --- a/src/mame/includes/zaxxon.h +++ b/src/mame/includes/zaxxon.h @@ -48,6 +48,8 @@ public: DECLARE_WRITE8_MEMBER(zaxxon_videoram_w); DECLARE_WRITE8_MEMBER(congo_colorram_w); DECLARE_WRITE8_MEMBER(congo_sprite_custom_w); + DECLARE_CUSTOM_INPUT_MEMBER(razmataz_dial_r); + DECLARE_CUSTOM_INPUT_MEMBER(zaxxon_coin_r); };