From 1c5b50c3c133b878a5f5ec36e971086501d51eae Mon Sep 17 00:00:00 2001 From: tildearrow Date: Thu, 25 Apr 2024 16:26:21 -0500 Subject: [PATCH] AY/8930: fix possib silence aftr PCM in forceIns --- src/engine/platform/ay.cpp | 2 ++ src/engine/platform/ay8930.cpp | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/engine/platform/ay.cpp b/src/engine/platform/ay.cpp index 09beda172..c97889dcb 100644 --- a/src/engine/platform/ay.cpp +++ b/src/engine/platform/ay.cpp @@ -714,6 +714,8 @@ void DivPlatformAY8910::muteChannel(int ch, bool mute) { void DivPlatformAY8910::forceIns() { for (int i=0; i<3; i++) { + chan[i].curPSGMode.val&=~8; + chan[i].nextPSGMode.val&=~8; chan[i].insChanged=true; chan[i].freqChanged=true; } diff --git a/src/engine/platform/ay8930.cpp b/src/engine/platform/ay8930.cpp index 5b319abe2..12171b162 100644 --- a/src/engine/platform/ay8930.cpp +++ b/src/engine/platform/ay8930.cpp @@ -715,6 +715,8 @@ void DivPlatformAY8930::muteChannel(int ch, bool mute) { void DivPlatformAY8930::forceIns() { for (int i=0; i<3; i++) { chan[i].insChanged=true; + chan[i].curPSGMode.val&=~8; + chan[i].nextPSGMode.val&=~8; immWrite(regPeriodL[i],chan[i].envelope.period); immWrite(regPeriodH[i],chan[i].envelope.period>>8); immWrite(regMode[i],chan[i].envelope.mode);