From 8a375722200936beef9c885e66eca99d647dbce3 Mon Sep 17 00:00:00 2001 From: Cacodemon345 Date: Sat, 7 Jan 2023 16:55:55 +0600 Subject: [PATCH] snd_optimc: IRQs of 12, 14 and 15 are actually used --- src/sound/snd_optimc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sound/snd_optimc.c b/src/sound/snd_optimc.c index 7a76d3258..f83161bce 100644 --- a/src/sound/snd_optimc.c +++ b/src/sound/snd_optimc.c @@ -40,7 +40,7 @@ #include <86box/rom.h> static int optimc_wss_dma[4] = { 0, 0, 1, 3 }; -static int optimc_wss_irq[4] = { 7, 9, 10, 11 }; +static int optimc_wss_irq[8] = { 5, 7, 9, 10, 11, 12, 14, 15 }; enum optimc_local_flags { OPTIMC_CS4231 = 0x100, @@ -101,7 +101,7 @@ optimc_wss_write(uint16_t addr, uint8_t val, void *priv) return; optimc->wss_config = val; ad1848_setdma(&optimc->ad1848, optimc_wss_dma[val & 3]); - ad1848_setirq(&optimc->ad1848, optimc_wss_irq[val & 3]); + ad1848_setirq(&optimc->ad1848, optimc_wss_irq[(val >> 3) & 7]); } static void