diff --git a/src/emu/ioport.h b/src/emu/ioport.h index c8add1f42b0..bde61cd5249 100644 --- a/src/emu/ioport.h +++ b/src/emu/ioport.h @@ -1526,7 +1526,6 @@ private: #define UCHAR_MAMEKEY(code) (UCHAR_MAMEKEY_BEGIN + ITEM_ID_##code) // macro for a read callback function (PORT_CUSTOM) -#define CUSTOM_INPUT(name) ioport_value name(device_t &device, ioport_field &field, void *param) #define CUSTOM_INPUT_MEMBER(name) ioport_value name(ioport_field &field, void *param) #define DECLARE_CUSTOM_INPUT_MEMBER(name) ioport_value name(ioport_field &field, void *param) diff --git a/src/mame/drivers/popeye.c b/src/mame/drivers/popeye.c index 0905fcb126c..ebde326db1c 100644 --- a/src/mame/drivers/popeye.c +++ b/src/mame/drivers/popeye.c @@ -290,10 +290,9 @@ static INPUT_PORTS_START( skyskipr ) PORT_DIPSETTING( 0x80, DEF_STR( Cocktail ) ) INPUT_PORTS_END -static CUSTOM_INPUT( pop_field_r ) +CUSTOM_INPUT_MEMBER( popeye_state::pop_field_r ) { - popeye_state *state = field.machine().driver_data(); - return state->m_field ^ 1; + return m_field ^ 1; } static INPUT_PORTS_START( popeye ) @@ -322,7 +321,7 @@ static INPUT_PORTS_START( popeye ) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* probably unused */ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(pop_field_r, (void *) 0) /* inverted init e/o signal (even odd) */ + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, popeye_state,pop_field_r, NULL) /* inverted init e/o signal (even odd) */ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 ) diff --git a/src/mame/includes/popeye.h b/src/mame/includes/popeye.h index 4cb344dbfdb..c2f39bbfc28 100644 --- a/src/mame/includes/popeye.h +++ b/src/mame/includes/popeye.h @@ -46,6 +46,7 @@ public: DECLARE_PALETTE_INIT(popeyebl); UINT32 screen_update_popeye(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(popeye_interrupt); + DECLARE_CUSTOM_INPUT_MEMBER( pop_field_r ); void convert_color_prom(const UINT8 *color_prom); void set_background_palette(int bank); void draw_background(bitmap_ind16 &bitmap, const rectangle &cliprect);