diff --git a/src/engine/platform/sid3.cpp b/src/engine/platform/sid3.cpp index 831e8abea..c579fce8c 100644 --- a/src/engine/platform/sid3.cpp +++ b/src/engine/platform/sid3.cpp @@ -856,12 +856,6 @@ int DivPlatformSID3::dispatch(DivCommand c) { chan[c.chan].sr=ins->sid3.sr; chan[c.chan].release=ins->sid3.r; - if(ins->sid3.resetDuty) - { - chan[c.chan].duty=ins->sid3.duty; - updateDuty(c.chan); - } - chan[c.chan].sync = ins->sid3.oscSync; chan[c.chan].ring = ins->sid3.ringMod; chan[c.chan].phase = ins->sid3.phase_mod; @@ -913,6 +907,11 @@ int DivPlatformSID3::dispatch(DivCommand c) { } } } + if(ins->sid3.resetDuty||chan[c.chan].insChanged) + { + chan[c.chan].duty=ins->sid3.duty; + updateDuty(c.chan); + } if (chan[c.chan].insChanged) { chan[c.chan].insChanged=false; }