From 02c3c737f66fd9f737d46df560abd46d6fd3e6cd Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sat, 13 Jul 2019 20:43:38 +0200 Subject: [PATCH] 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. --- Kernel/Devices/SB16.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Kernel/Devices/SB16.cpp b/Kernel/Devices/SB16.cpp index 141f01ade39..a5d602b47a4 100644 --- a/Kernel/Devices/SB16.cpp +++ b/Kernel/Devices/SB16.cpp @@ -66,14 +66,14 @@ SB16& SB16::the() void SB16::handle_irq() { - m_interrupted = true; - // Stop sound output ready for the next block. - dsp_write(0xd0); + dsp_write(0xd5); IO::in8(DSP_STATUS); // 8 bit interrupt if (m_major_version >= 4) IO::in8(DSP_R_ACK); // 16 bit interrupt + + m_interrupted = true; } void SB16::initialize()