summaryrefslogtreecommitdiffstats
path: root/src/devices/cpu/psx/dma.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/psx/dma.cpp')
-rw-r--r--src/devices/cpu/psx/dma.cpp10
1 files changed, 3 insertions, 7 deletions
diff --git a/src/devices/cpu/psx/dma.cpp b/src/devices/cpu/psx/dma.cpp
index 0b69e01df37..f4376472d98 100644
--- a/src/devices/cpu/psx/dma.cpp
+++ b/src/devices/cpu/psx/dma.cpp
@@ -64,7 +64,7 @@ void psxdma_device::device_start()
{
psx_dma_channel *dma = &m_channel[ index ];
- dma->timer = timer_alloc(index);
+ dma->timer = timer_alloc( FUNC( psxdma_device::dma_finished ), this );
save_item( NAME( dma->n_base ), index );
save_item( NAME( dma->n_blockcontrol ), index );
@@ -129,8 +129,9 @@ void psxdma_device::dma_interrupt_update()
m_dicr &= 0x00ffffff | ( m_dicr << 8 );
}
-void psxdma_device::dma_finished( int index )
+TIMER_CALLBACK_MEMBER( psxdma_device::dma_finished )
{
+ const int index = param;
psx_dma_channel *dma = &m_channel[ index ];
if( dma->n_channelcontrol == 0x01000401 && index == 2 )
@@ -196,11 +197,6 @@ void psxdma_device::dma_finished( int index )
dma_stop_timer( index );
}
-void psxdma_device::device_timer(emu_timer &timer, device_timer_id id, int param)
-{
- dma_finished(id);
-}
-
void psxdma_device::install_read_handler( int index, read_delegate p_fn_dma_read )
{
m_channel[ index ].fn_read = p_fn_dma_read;