diff options
Diffstat (limited to 'src/devices/sound/scsp.cpp')
-rw-r--r-- | src/devices/sound/scsp.cpp | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/src/devices/sound/scsp.cpp b/src/devices/sound/scsp.cpp index f58907b8611..be8fc35cdc7 100644 --- a/src/devices/sound/scsp.cpp +++ b/src/devices/sound/scsp.cpp @@ -199,10 +199,6 @@ void scsp_device::device_start() // init the emulation init(); - // set up the IRQ callbacks - m_irq_cb.resolve_safe(); - m_main_irq_cb.resolve_safe(); - // Stereo output with EXTS0,1 Input (External digital audio output) m_stream = stream_alloc(2, 2, clock() / 512); @@ -303,7 +299,7 @@ void scsp_device::device_clock_changed() m_stream->set_sample_rate(clock() / 512); } -void scsp_device::rom_bank_updated() +void scsp_device::rom_bank_pre_change() { m_stream->update(); } @@ -763,7 +759,7 @@ void scsp_device::UpdateReg(int reg) break; case 0x18: case 0x19: - if (!m_irq_cb.isnull()) + if (!m_irq_cb.isunset()) { m_TimPris[0] = 1 << ((m_udata.data[0x18/2] >> 8) & 0x7); m_TimCnt[0] = (m_udata.data[0x18/2] & 0xff) << 8; @@ -780,7 +776,7 @@ void scsp_device::UpdateReg(int reg) break; case 0x1a: case 0x1b: - if (!m_irq_cb.isnull()) + if (!m_irq_cb.isunset()) { m_TimPris[1] = 1 << ((m_udata.data[0x1A/2] >> 8) & 0x7); m_TimCnt[1] = (m_udata.data[0x1A/2] & 0xff) << 8; @@ -797,7 +793,7 @@ void scsp_device::UpdateReg(int reg) break; case 0x1C: case 0x1D: - if (!m_irq_cb.isnull()) + if (!m_irq_cb.isunset()) { m_TimPris[2] = 1 << ((m_udata.data[0x1C/2] >> 8) & 0x7); m_TimCnt[2] = (m_udata.data[0x1C/2] & 0xff) << 8; @@ -814,7 +810,7 @@ void scsp_device::UpdateReg(int reg) break; case 0x1e: // SCIEB case 0x1f: - if (!m_irq_cb.isnull()) + if (!m_irq_cb.isunset()) { CheckPendingIRQ(); @@ -824,7 +820,7 @@ void scsp_device::UpdateReg(int reg) break; case 0x20: // SCIPD case 0x21: - if (!m_irq_cb.isnull()) + if (!m_irq_cb.isunset()) { if (m_udata.data[0x1e/2] & m_udata.data[0x20/2] & 0x20) popmessage("SCSP SCIPD write %04x, contact MAMEdev",m_udata.data[0x20/2]); @@ -833,7 +829,7 @@ void scsp_device::UpdateReg(int reg) case 0x22: //SCIRE case 0x23: - if (!m_irq_cb.isnull()) + if (!m_irq_cb.isunset()) { m_udata.data[0x20/2] &= ~m_udata.data[0x22/2]; ResetInterrupts(); @@ -860,7 +856,7 @@ void scsp_device::UpdateReg(int reg) case 0x27: case 0x28: case 0x29: - if (!m_irq_cb.isnull()) + if (!m_irq_cb.isunset()) { m_IrqTimA = DecodeSCI(SCITMA); m_IrqTimBC = DecodeSCI(SCITMB); |