From a7702c622a5855ff6fe95699bd97b5603997567e Mon Sep 17 00:00:00 2001 From: Flyinghead Date: Sun, 31 Dec 2023 12:02:42 +0100 Subject: [PATCH] aica: don't disable channel when reaching full attenuation Some games rely on the channel still being processed and CA/LP being updated. Courtesy of @kihato Issues #472, #483, #1180, #1249, #1030 (partial) --- core/hw/aica/sgc_if.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/core/hw/aica/sgc_if.cpp b/core/hw/aica/sgc_if.cpp index c097e42e6..f2f7fe0b4 100755 --- a/core/hw/aica/sgc_if.cpp +++ b/core/hw/aica/sgc_if.cpp @@ -1211,8 +1211,7 @@ void AegStep(ChannelEx* ch) if (ch->AEG.GetValue() >= 0x3FF) { aeg_printf("[%d]AEG_step : EG_Release End @ %x", ch->ChannelNumber, ch->AEG.GetValue()); - ch->AEG.SetValue(0x3FF); // TODO: mnn, should we do anything about it running wild ? - ch->disable(); // TODO: Is this ok here? It's a speed optimisation (since the channel is muted) + ch->AEG.SetValue(0x3FF); } break; }