diff --git a/src/engine/platform/snes.cpp b/src/engine/platform/snes.cpp index 754400d7e..ee8ef975f 100644 --- a/src/engine/platform/snes.cpp +++ b/src/engine/platform/snes.cpp @@ -383,6 +383,11 @@ int DivPlatformSNES::dispatch(DivCommand c) { } chan[c.chan].keyOn=true; chan[c.chan].macroInit(ins); + // this is the fix. it needs testing. + if (!parent->song.brokenOutVol && !chan[c.chan].std.vol.will) { + if (chan[c.chan].outVol!=chan[c.chan].vol) chan[c.chan].shallWriteVol=true; + chan[c.chan].outVol=chan[c.chan].vol; + } chan[c.chan].insChanged=false; break; }