From 48b8a7526bd6160ec8cb0964ec2d79a1b20ea764 Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Sat, 9 Nov 2013 16:36:27 +0000 Subject: [PATCH] Removed anonymous timers from some drivers. (nw) --- src/mame/drivers/2mindril.c | 41 ++++++++++++++++++++++++------------- src/mame/drivers/40love.c | 19 +++++++++++------ src/mame/drivers/acefruit.c | 35 ++++++++++++++++++++++--------- src/mame/includes/40love.h | 11 ++++++++-- 4 files changed, 74 insertions(+), 32 deletions(-) diff --git a/src/mame/drivers/2mindril.c b/src/mame/drivers/2mindril.c index ef9ce4de167..4191404ca84 100644 --- a/src/mame/drivers/2mindril.c +++ b/src/mame/drivers/2mindril.c @@ -50,7 +50,7 @@ public: /* memory pointers */ required_shared_ptr m_iodata; - + /* input-related */ UINT16 m_defender_sensor; UINT16 m_shutter_sensor; @@ -68,10 +68,18 @@ public: DECLARE_MACHINE_RESET(drill); INTERRUPT_GEN_MEMBER(drill_vblank_irq); //INTERRUPT_GEN_MEMBER(drill_device_irq); - TIMER_CALLBACK_MEMBER(shutter_req); - TIMER_CALLBACK_MEMBER(defender_req); void tile_decode(); DECLARE_WRITE_LINE_MEMBER(irqhandler); + #ifdef UNUSED_FUNCTION + enum + { + TIMER_SHUTTER_REQ, + TIMER_DEFENDER_REQ + }; + +protected: + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr); + #endif }; @@ -136,14 +144,19 @@ WRITE16_MEMBER(_2mindril_state::drill_io_w) PORT_DIPSETTING( 0x0800, DEF_STR( On ) ) */ #ifdef UNUSED_FUNCTION -TIMER_CALLBACK_MEMBER(_2mindril_state::shutter_req) +void _2mindril_state::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) { - m_shutter_sensor = param; -} - -TIMER_CALLBACK_MEMBER(_2mindril_state::defender_req) -{ - m_defender_sensor = param; + switch (id) + { + case TIMER_SHUTTER_REQ: + m_shutter_sensor = param; + break; + case TIMER_DEFENDER_REQ: + m_defender_sensor = param; + break; + default: + assert_always(FALSE, "Unknown id in _2mindril_state::device_timer"); + } } #endif @@ -153,23 +166,23 @@ WRITE16_MEMBER(_2mindril_state::sensors_w) /*---- ---- ---- -x-- lamp*/ if (data & 1) { - //machine().scheduler().timer_set(attotime::from_seconds(2), FUNC(shutter_req ), 0x100); + //timer_set( attotime::from_seconds(2), TIMER_SHUTTER_REQ, 0x100); m_shutter_sensor = 0x100; } else if (data & 2) { - //machine().scheduler().timer_set( attotime::from_seconds(2), FUNC(shutter_req ), 0x200); + //timer_set( attotime::from_seconds(2), TIMER_SHUTTER_REQ, 0x200); m_shutter_sensor = 0x200; } if (data & 0x1000 || data & 0x4000) { - //machine().scheduler().timer_set( attotime::from_seconds(2), FUNC(defender_req ), 0x800); + //timer_set( attotime::from_seconds(2), TIMER_DEFENDER_REQ, 0x800); m_defender_sensor = 0x800; } else if (data & 0x2000 || data & 0x8000) { - //machine().scheduler().timer_set( attotime::from_seconds(2), FUNC(defender_req ), 0x400); + //timer_set( attotime::from_seconds(2), TIMER_DEFENDER_REQ, 0x400); m_defender_sensor = 0x400; } } diff --git a/src/mame/drivers/40love.c b/src/mame/drivers/40love.c index 34d5beab7fc..aac904ea292 100644 --- a/src/mame/drivers/40love.c +++ b/src/mame/drivers/40love.c @@ -229,18 +229,25 @@ Notes - Has jumper setting for 122HZ or 61HZ) #include "sound/dac.h" #include "includes/40love.h" -TIMER_CALLBACK_MEMBER(fortyl_state::nmi_callback) +void fortyl_state::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) { - if (m_sound_nmi_enable) - m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE); - else - m_pending_nmi = 1; + switch(id) + { + case TIMER_NMI_CALLBACK: + if (m_sound_nmi_enable) + m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE); + else + m_pending_nmi = 1; + break; + default: + assert_always(FALSE, "Unknown id in fortyl_state::device_timer"); + } } WRITE8_MEMBER(fortyl_state::sound_command_w) { soundlatch_byte_w(space, 0, data); - machine().scheduler().synchronize(timer_expired_delegate(FUNC(fortyl_state::nmi_callback),this), data); + synchronize(TIMER_NMI_CALLBACK, data); } WRITE8_MEMBER(fortyl_state::nmi_disable_w) diff --git a/src/mame/drivers/acefruit.c b/src/mame/drivers/acefruit.c index b09175a1b2b..787b25bc94c 100644 --- a/src/mame/drivers/acefruit.c +++ b/src/mame/drivers/acefruit.c @@ -20,11 +20,12 @@ class acefruit_state : public driver_device public: acefruit_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu"), m_videoram(*this, "videoram"), m_colorram(*this, "colorram"), - m_spriteram(*this, "spriteram"), - m_maincpu(*this, "maincpu") { } + m_spriteram(*this, "spriteram") { } + required_device m_maincpu; required_shared_ptr m_videoram; required_shared_ptr m_colorram; required_shared_ptr m_spriteram; @@ -42,9 +43,15 @@ public: virtual void palette_init(); UINT32 screen_update_acefruit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(acefruit_vblank); - TIMER_CALLBACK_MEMBER(acefruit_refresh); void acefruit_update_irq(int vpos); - required_device m_maincpu; + + enum + { + TIMER_ACEFRUIT_REFRESH + }; + +protected: + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr); }; @@ -69,21 +76,29 @@ void acefruit_state::acefruit_update_irq(int vpos) } -TIMER_CALLBACK_MEMBER(acefruit_state::acefruit_refresh) +void acefruit_state::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) { int vpos = m_screen->vpos(); - m_screen->update_partial(vpos ); - acefruit_update_irq(vpos); + switch(id) + { + case TIMER_ACEFRUIT_REFRESH: + + m_screen->update_partial(vpos ); + acefruit_update_irq(vpos); - vpos = ( ( vpos / 8 ) + 1 ) * 8; + vpos = ( ( vpos / 8 ) + 1 ) * 8; - m_refresh_timer->adjust( m_screen->time_until_pos(vpos) ); + m_refresh_timer->adjust( m_screen->time_until_pos(vpos) ); + break; + default: + assert_always(FALSE, "Unknown id in acefruit_state::device_timer"); + } } void acefruit_state::video_start() { - m_refresh_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(acefruit_state::acefruit_refresh),this)); + m_refresh_timer = timer_alloc(TIMER_ACEFRUIT_REFRESH); } INTERRUPT_GEN_MEMBER(acefruit_state::acefruit_vblank) diff --git a/src/mame/includes/40love.h b/src/mame/includes/40love.h index 8e0cac342e7..3a424da77a5 100644 --- a/src/mame/includes/40love.h +++ b/src/mame/includes/40love.h @@ -25,7 +25,7 @@ public: required_shared_ptr m_colorram; required_shared_ptr m_spriteram2; optional_shared_ptr m_mcu_ram; - + /* video-related */ bitmap_ind16 *m_tmp_bitmap1; bitmap_ind16 *m_tmp_bitmap2; @@ -109,10 +109,17 @@ public: DECLARE_MACHINE_RESET(common); DECLARE_MACHINE_RESET(ta7630); UINT32 screen_update_fortyl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - TIMER_CALLBACK_MEMBER(nmi_callback); void redraw_pixels(); void fortyl_set_scroll_x( int offset ); void fortyl_plot_pix( int offset ); void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ); void draw_pixram( bitmap_ind16 &bitmap, const rectangle &cliprect ); + + enum + { + TIMER_NMI_CALLBACK + }; + +protected: + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr); };