summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--src/mame/drivers/8080bw.c6
-rw-r--r--src/mame/drivers/artmagic.c9
-rw-r--r--src/mame/drivers/asteroid.c12
-rw-r--r--src/mame/drivers/astrocde.c14
-rw-r--r--src/mame/drivers/astrof.c39
-rw-r--r--src/mame/drivers/battlex.c13
-rw-r--r--src/mame/drivers/bzone.c6
-rw-r--r--src/mame/drivers/cave.c16
-rw-r--r--src/mame/drivers/ccastles.c9
-rw-r--r--src/mame/drivers/cd32.c7
-rw-r--r--src/mame/drivers/champbas.c11
-rw-r--r--src/mame/drivers/cidelsa.c11
-rw-r--r--src/mame/drivers/cloud9.c11
-rw-r--r--src/mame/drivers/cop01.c10
-rw-r--r--src/mame/drivers/crbaloon.c11
-rw-r--r--src/mame/drivers/crshrace.c7
-rw-r--r--src/mame/drivers/dcheese.c11
-rw-r--r--src/mame/drivers/ddragon.c7
-rw-r--r--src/mame/drivers/equites.c7
-rw-r--r--src/mame/drivers/exerion.c7
-rw-r--r--src/mame/drivers/exidy.c15
-rw-r--r--src/mame/drivers/exidy440.c62
-rw-r--r--src/mame/drivers/fantland.c8
-rw-r--r--src/mame/drivers/fgoal.c6
-rw-r--r--src/mame/drivers/firetrk.c69
-rw-r--r--src/mame/drivers/flstory.c11
-rw-r--r--src/mame/drivers/fromanc2.c23
-rw-r--r--src/mame/drivers/gaelco3d.c29
-rw-r--r--src/mame/drivers/galaga.c6
-rw-r--r--src/mame/drivers/galastrm.c14
-rw-r--r--src/mame/drivers/galaxian.c25
-rw-r--r--src/mame/drivers/galaxold.c38
-rw-r--r--src/mame/drivers/galdrvr.c18
-rw-r--r--src/mame/drivers/gottlieb.c24
-rw-r--r--src/mame/drivers/groundfx.c14
-rw-r--r--src/mame/drivers/gunbustr.c7
-rw-r--r--src/mame/drivers/homerun.c8
-rw-r--r--src/mame/drivers/inufuku.c7
-rw-r--r--src/mame/drivers/itech32.c15
-rw-r--r--src/mame/drivers/itech8.c43
-rw-r--r--src/mame/drivers/jack.c7
-rw-r--r--src/mame/drivers/konamigx.c4
-rw-r--r--src/mame/drivers/ladybug.c16
-rw-r--r--src/mame/drivers/lethalj.c6
-rw-r--r--src/mame/drivers/m92.c7
-rw-r--r--src/mame/drivers/mainsnk.c9
-rw-r--r--src/mame/drivers/metro.c7
-rw-r--r--src/mame/drivers/mhavoc.c8
-rw-r--r--src/mame/drivers/midyunit.c24
-rw-r--r--src/mame/drivers/midzeus.c12
-rw-r--r--src/mame/drivers/model2.c34
-rw-r--r--src/mame/drivers/ms32.c17
-rw-r--r--src/mame/drivers/mw8080bw.c147
-rw-r--r--src/mame/drivers/namcos22.c9
-rw-r--r--src/mame/drivers/neodrvr.c18
-rw-r--r--src/mame/drivers/neogeo.c40
-rw-r--r--src/mame/drivers/niyanpai.c17
-rw-r--r--src/mame/drivers/nova2001.c7
-rw-r--r--src/mame/drivers/pastelg.c6
-rw-r--r--src/mame/drivers/pirates.c8
-rw-r--r--src/mame/drivers/polepos.c23
-rw-r--r--src/mame/drivers/policetr.c6
-rw-r--r--src/mame/drivers/psikyo.c28
-rw-r--r--src/mame/drivers/psikyo4.c25
-rw-r--r--src/mame/drivers/punchout.c8
-rw-r--r--src/mame/drivers/qdrmfgp.c15
-rw-r--r--src/mame/drivers/renegade.c11
-rw-r--r--src/mame/drivers/rpunch.c8
-rw-r--r--src/mame/drivers/scramble.c10
-rw-r--r--src/mame/drivers/segag80v.c6
-rw-r--r--src/mame/drivers/seibuspi.c27
-rw-r--r--src/mame/drivers/snk.c155
-rw-r--r--src/mame/drivers/snk6502.c15
-rw-r--r--src/mame/drivers/sprint4.c39
-rw-r--r--src/mame/drivers/stactics.c15
-rw-r--r--src/mame/drivers/starshp1.c20
-rw-r--r--src/mame/drivers/suprnova.c12
-rw-r--r--src/mame/drivers/suprridr.c10
-rw-r--r--src/mame/drivers/system1.c14
-rw-r--r--src/mame/drivers/taito_f3.c17
-rw-r--r--src/mame/drivers/taitojc.c6
-rw-r--r--src/mame/drivers/taitosj.c44
-rw-r--r--src/mame/drivers/tetrisp2.c7
-rw-r--r--src/mame/drivers/toaplan2.c11
-rw-r--r--src/mame/drivers/ultratnk.c28
-rw-r--r--src/mame/drivers/undrfire.c9
-rw-r--r--src/mame/drivers/vicdual.c178
-rw-r--r--src/mame/drivers/welltris.c7
-rw-r--r--src/mame/drivers/wolfpack.c8
-rw-r--r--src/mame/drivers/wwfsstar.c7
-rw-r--r--src/mame/drivers/wwfwfest.c16
-rw-r--r--src/mame/drivers/xain.c18
-rw-r--r--src/mame/drivers/xmen.c7
-rw-r--r--src/mame/drivers/xxmissio.c19
-rw-r--r--src/mame/drivers/zaccaria.c7
-rw-r--r--src/mame/drivers/zaxxon.c36
-rw-r--r--src/mame/includes/8080bw.h1
-rw-r--r--src/mame/includes/artmagic.h1
-rw-r--r--src/mame/includes/asteroid.h1
-rw-r--r--src/mame/includes/astrocde.h2
-rw-r--r--src/mame/includes/astrof.h3
-rw-r--r--src/mame/includes/battlex.h1
-rw-r--r--src/mame/includes/bzone.h1
-rw-r--r--src/mame/includes/cave.h2
-rw-r--r--src/mame/includes/ccastles.h1
-rw-r--r--src/mame/includes/cd32.h1
-rw-r--r--src/mame/includes/champbas.h1
-rw-r--r--src/mame/includes/cidelsa.h1
-rw-r--r--src/mame/includes/cloud9.h1
-rw-r--r--src/mame/includes/cop01.h1
-rw-r--r--src/mame/includes/crbaloon.h1
-rw-r--r--src/mame/includes/crshrace.h1
-rw-r--r--src/mame/includes/dcheese.h1
-rw-r--r--src/mame/includes/ddragon.h1
-rw-r--r--src/mame/includes/equites.h1
-rw-r--r--src/mame/includes/exerion.h1
-rw-r--r--src/mame/includes/exidy.h1
-rw-r--r--src/mame/includes/exidy440.h3
-rw-r--r--src/mame/includes/fantland.h1
-rw-r--r--src/mame/includes/fgoal.h1
-rw-r--r--src/mame/includes/firetrk.h5
-rw-r--r--src/mame/includes/flstory.h1
-rw-r--r--src/mame/includes/fromanc2.h3
-rw-r--r--src/mame/includes/gaelco3d.h1
-rw-r--r--src/mame/includes/galaga.h1
-rw-r--r--src/mame/includes/galastrm.h2
-rw-r--r--src/mame/includes/galaxian.h5
-rw-r--r--src/mame/includes/galaxold.h3
-rw-r--r--src/mame/includes/gottlieb.h2
-rw-r--r--src/mame/includes/groundfx.h2
-rw-r--r--src/mame/includes/gunbustr.h1
-rw-r--r--src/mame/includes/homerun.h1
-rw-r--r--src/mame/includes/inufuku.h1
-rw-r--r--src/mame/includes/itech32.h1
-rw-r--r--src/mame/includes/itech8.h2
-rw-r--r--src/mame/includes/jack.h1
-rw-r--r--src/mame/includes/konamigx.h1
-rw-r--r--src/mame/includes/ladybug.h2
-rw-r--r--src/mame/includes/lethalj.h1
-rw-r--r--src/mame/includes/m92.h1
-rw-r--r--src/mame/includes/mainsnk.h1
-rw-r--r--src/mame/includes/metro.h1
-rw-r--r--src/mame/includes/mhavoc.h1
-rw-r--r--src/mame/includes/midyunit.h3
-rw-r--r--src/mame/includes/midzeus.h2
-rw-r--r--src/mame/includes/model2.h3
-rw-r--r--src/mame/includes/ms32.h1
-rw-r--r--src/mame/includes/mw8080bw.h16
-rw-r--r--src/mame/includes/namcos22.h1
-rw-r--r--src/mame/includes/neogeo.h5
-rw-r--r--src/mame/includes/niyanpai.h1
-rw-r--r--src/mame/includes/nova2001.h1
-rw-r--r--src/mame/includes/pastelg.h1
-rw-r--r--src/mame/includes/pirates.h1
-rw-r--r--src/mame/includes/polepos.h3
-rw-r--r--src/mame/includes/policetr.h1
-rw-r--r--src/mame/includes/psikyo.h2
-rw-r--r--src/mame/includes/psikyo4.h2
-rw-r--r--src/mame/includes/punchout.h1
-rw-r--r--src/mame/includes/qdrmfgp.h2
-rw-r--r--src/mame/includes/renegade.h1
-rw-r--r--src/mame/includes/rpunch.h1
-rw-r--r--src/mame/includes/scramble.h1
-rw-r--r--src/mame/includes/segag80v.h1
-rw-r--r--src/mame/includes/seibuspi.h2
-rw-r--r--src/mame/includes/snk.h7
-rw-r--r--src/mame/includes/snk6502.h2
-rw-r--r--src/mame/includes/sprint4.h3
-rw-r--r--src/mame/includes/stactics.h2
-rw-r--r--src/mame/includes/starshp1.h2
-rw-r--r--src/mame/includes/suprnova.h1
-rw-r--r--src/mame/includes/suprridr.h1
-rw-r--r--src/mame/includes/system1.h2
-rw-r--r--src/mame/includes/taito_f3.h2
-rw-r--r--src/mame/includes/taitojc.h1
-rw-r--r--src/mame/includes/taitosj.h2
-rw-r--r--src/mame/includes/tetrisp2.h1
-rw-r--r--src/mame/includes/toaplan2.h1
-rw-r--r--src/mame/includes/ultratnk.h2
-rw-r--r--src/mame/includes/undrfire.h1
-rw-r--r--src/mame/includes/vicdual.h7
-rw-r--r--src/mame/includes/welltris.h1
-rw-r--r--src/mame/includes/wolfpack.h1
-rw-r--r--src/mame/includes/wwfsstar.h1
-rw-r--r--src/mame/includes/wwfwfest.h2
-rw-r--r--src/mame/includes/xain.h2
-rw-r--r--src/mame/includes/xmen.h1
-rw-r--r--src/mame/includes/xxmissio.h1
-rw-r--r--src/mame/includes/zaccaria.h1
-rw-r--r--src/mame/includes/zaxxon.h2
190 files changed, 1091 insertions, 1021 deletions
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<artmagic_state>();
- 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<cpu_device>("maincpu")->total_cycles() & 0x100) ? 1 : 0;
+ return (machine().device<cpu_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<astrocde_state>();
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<astrocde_state>();
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<astrof_state>();
/* 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<battlex_state>();
- 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<cpu_device>("maincpu")->total_cycles() & 0x100) ? 1 : 0;
+ return (machine().device<cpu_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<cave_state>();
- 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<cave_state>();
- 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<ccastles_state>();
- 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<cd32_state>();
- 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<champbas_state>();
- 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<cidelsa_state>();
- 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<cloud9_state>();
- 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<crbaloon_state>();
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<crshrace_state>();
- 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<dcheese_state>();
- 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<ddragon_state>();
- 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<equites_state>();
- 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<exerion_state>();
- 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<exidy_state>();
- 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<exidy440_state>();
- 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<exidy440_state>();
- 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<firetrk_state>();
- 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<firetrk_state>();
- 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<firetrk_state>();
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<firetrk_state>();
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<firetrk_state>();
- 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<flstory_state>();
- 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<fromanc2_state>();
- 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<fromanc2_state>();
- 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<fromanc2_state>();
- 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<gaelco3d_state>();
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<galastrm_state>();
- 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<galastrm_state>();
- 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<galaxian_state>();
/*
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<galaxian_state>();
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<galaxian_state>();
/* 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<gottlieb_state>();
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<gottlieb_state>();
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<groundfx_state>();
- 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<groundfx_state>();
- 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<gunbustr_state>();
- 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<inufuku_state>();
- 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<itech32_state>();
- 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<itech8_state>();
- 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<jack_state>();
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<m92_state>();
- 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<mainsnk_state>();
- 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<metro_state>();
- 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<cpu_device>("alpha")->total_cycles() & 0x400) ? 0 : 1;
+ return (machine().device<cpu_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<model2_state>();
- 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_device>("eeprom")->read_bit() << 5);
+ return ret | 0x00d0 | (machine().device<eeprom_device>("eeprom")->read_bit() << 5);
}
}
-static CUSTOM_INPUT( _1c0001c_r )
+CUSTOM_INPUT_MEMBER(model2_state::_1c0001c_r)
{
- model2_state *state = field.machine().driver_data<model2_state>();
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<ms32_state>();
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<mw8080bw_state>();
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<mw8080bw_state>();
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<mw8080bw_state>();
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<namcos22_state>();
- 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<neogeo_state>();
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<neogeo_state>();
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<neogeo_state>();
- 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<neogeo_state>();
- 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<niyanpai_state>();
- 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<nova2001_state>();
- 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<polepos_state>();
- 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<bsmt2000_device>("bsmt")->read_status();
+ return machine().device<bsmt2000_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<psikyo_state>();
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<psikyo_state>();
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<psikyo4_state>();
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<qdrmfgp_state>();
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<renegade_state>();
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<seibuspi_state>();
- 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<snk_state>();
- 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<snk_state>();
- 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<snk_state>();
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<snk_state>();
- 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<snk_state>();
- 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<snk6502_state>();
- 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<sprint4_state>();
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<sprint4_state>();
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<sprint4_state>();
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<stactics_state>();
/* 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<starshp1_state>();
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<starshp1_state>();
- 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<system1_state>();
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<system1_state>();
/* 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<taito_f3_state>();
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<taitosj_state>();
- 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<taitosj_state>();
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<tetrisp2_state>();
- 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<toaplan2_state>();
// 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<ultratnk_state>();
- 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<ultratnk_state>();
- 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<undrfire_state>();
- 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<vicdual_state>();
- 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<vicdual_state>();
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<welltris_state>();
- 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<wwfsstar_state>();
- 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<xain_state>();
- 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<xain_state>();
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<xmen_state>();
- 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<xxmissio_state>();
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<zaccaria_state>();
- 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<zaxxon_state>();
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<zaxxon_state>();
- 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<cpu_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);
};