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);