summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/video/315_5313.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/video/315_5313.cpp')
-rw-r--r--src/devices/video/315_5313.cpp32
1 files changed, 6 insertions, 26 deletions
diff --git a/src/devices/video/315_5313.cpp b/src/devices/video/315_5313.cpp
index 22b63f36d5b..f82e63f60b6 100644
--- a/src/devices/video/315_5313.cpp
+++ b/src/devices/video/315_5313.cpp
@@ -56,38 +56,18 @@ machine_config_constructor sega315_5313_device::device_mconfig_additions() const
return MACHINE_CONFIG_NAME( sega_genesis_vdp );
}
-static TIMER_CALLBACK( render_timer_callback )
-{
- sega315_5313_device* vdp = (sega315_5313_device*)ptr;
- vdp->render_scanline();
-}
-
-void sega315_5313_device::vdp_handle_irq6_on_timer_callback(int param)
+TIMER_CALLBACK_MEMBER(sega315_5313_device::irq6_on_timer_callback)
{
// m_irq6_pending = 1;
if (MEGADRIVE_REG01_IRQ6_ENABLE)
m_lv6irqline_callback(true);
}
-static TIMER_CALLBACK( irq6_on_timer_callback )
-{
- sega315_5313_device* vdp = (sega315_5313_device*)ptr;
- vdp->vdp_handle_irq6_on_timer_callback(param);
-}
-
-void sega315_5313_device::vdp_handle_irq4_on_timer_callback(int param)
+TIMER_CALLBACK_MEMBER(sega315_5313_device::irq4_on_timer_callback)
{
m_lv4irqline_callback(true);
}
-static TIMER_CALLBACK( irq4_on_timer_callback )
-{
- sega315_5313_device* vdp = (sega315_5313_device*)ptr;
- vdp->vdp_handle_irq4_on_timer_callback(param);
-}
-
-
-
void sega315_5313_device::set_alt_timing(device_t &device, int use_alt_timing)
{
sega315_5313_device &dev = downcast<sega315_5313_device &>(device);
@@ -189,9 +169,9 @@ void sega315_5313_device::device_start()
if (m_use_alt_timing)
save_pointer(NAME(m_render_line.get()), 320/2);
- m_irq6_on_timer = machine().scheduler().timer_alloc(FUNC(irq6_on_timer_callback), (void*)this);
- m_irq4_on_timer = machine().scheduler().timer_alloc(FUNC(irq4_on_timer_callback), (void*)this);
- m_render_timer = machine().scheduler().timer_alloc(FUNC(render_timer_callback), (void*)this);
+ m_irq6_on_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(sega315_5313_device::irq6_on_timer_callback), this));
+ m_irq4_on_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(sega315_5313_device::irq4_on_timer_callback), this));
+ m_render_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(sega315_5313_device::render_scanline), this));
m_space68k = &machine().device<m68000_base_device>(":maincpu")->space();
m_cpu68k = machine().device<m68000_base_device>(":maincpu");
@@ -2598,7 +2578,7 @@ void sega315_5313_device::render_videobuffer_to_screenbuffer(int scanline)
}
}
-void sega315_5313_device::render_scanline()
+TIMER_CALLBACK_MEMBER(sega315_5313_device::render_scanline)
{
int scanline = get_scanline_counter();