SB16: IRQ handler should send 0xd5 to pause 16-bit playback.

We were sending 0xd0 to pause 8-bit playback. Not sure if this actually
makes any difference but it seems like the correct thing to do.
Also update 'm_interrupted' *after* handling things.
This commit is contained in:
Andreas Kling 2019-07-13 20:43:38 +02:00
parent eec9666735
commit 02c3c737f6
Notes: sideshowbarker 2024-07-19 13:17:36 +09:00

View file

@ -66,14 +66,14 @@ SB16& SB16::the()
void SB16::handle_irq() void SB16::handle_irq()
{ {
m_interrupted = true;
// Stop sound output ready for the next block. // Stop sound output ready for the next block.
dsp_write(0xd0); dsp_write(0xd5);
IO::in8(DSP_STATUS); // 8 bit interrupt IO::in8(DSP_STATUS); // 8 bit interrupt
if (m_major_version >= 4) if (m_major_version >= 4)
IO::in8(DSP_R_ACK); // 16 bit interrupt IO::in8(DSP_R_ACK); // 16 bit interrupt
m_interrupted = true;
} }
void SB16::initialize() void SB16::initialize()