From d4a718cc2faa4aa8b83b306041d3971fdcb1e374 Mon Sep 17 00:00:00 2001 From: OBattler Date: Fri, 19 Jul 2024 20:09:21 +0200 Subject: [PATCH] Reading SB DSP port 0Ch now gets the DSP out of the reset state - fixes Inherit the Orb detection of the Sound Blaster Pro. --- src/sound/snd_sb_dsp.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/sound/snd_sb_dsp.c b/src/sound/snd_sb_dsp.c index 65f33f4a3..d86063654 100644 --- a/src/sound/snd_sb_dsp.c +++ b/src/sound/snd_sb_dsp.c @@ -1886,6 +1886,10 @@ sb_read(uint16_t a, void *priv) dsp->state = DSP_S_NORMAL; break; case 0xC: /* Write data ready */ + /* Advance the state just in case something reads from here + without reading the status first. */ + if (dsp->state == DSP_S_RESET_WAIT) + dsp->state = DSP_S_NORMAL; if ((dsp->state == DSP_S_NORMAL) || IS_ESS(dsp)) { if (dsp->sb_8_enable || dsp->sb_type >= SB16) dsp->busy_count = (dsp->busy_count + 1) & 3;