diff --git a/src/engine/platform/x1_010.cpp b/src/engine/platform/x1_010.cpp index 822f2c40b..d70a31df1 100644 --- a/src/engine/platform/x1_010.cpp +++ b/src/engine/platform/x1_010.cpp @@ -339,7 +339,7 @@ void DivPlatformX1_010::updateEnvelope(int ch) { } chWrite(ch,5,0x10|(ch&0xf)); } else { - chWrite(ch,1,(chan[ch].lvol<<4)|chan[ch].rvol); + chWrite(ch,1,isMuted[ch]?0:((chan[ch].lvol<<4)|chan[ch].rvol)); } } @@ -459,10 +459,8 @@ void DivPlatformX1_010::tick() { } } if (chan[i].envChanged) { - if (!isMuted[i]) { - chan[i].lvol=((chan[i].outVol&0xf)*((chan[i].pan>>4)&0xf))/15; - chan[i].rvol=((chan[i].outVol&0xf)*((chan[i].pan>>0)&0xf))/15; - } + chan[i].lvol=isMuted[i]?0:(((chan[i].outVol&0xf)*((chan[i].pan>>4)&0xf))/15); + chan[i].rvol=isMuted[i]?0:(((chan[i].outVol&0xf)*((chan[i].pan>>0)&0xf))/15); updateEnvelope(i); chan[i].envChanged=false; } @@ -661,9 +659,7 @@ int DivPlatformX1_010::dispatch(DivCommand c) { if (chan[c.chan].pcm!=(c.value&1)) { chan[c.chan].pcm=c.value&1; chan[c.chan].freqChanged=true; - if (!isMuted[c.chan]) { - chan[c.chan].envChanged=true; - } + chan[c.chan].envChanged=true; } break; case DIV_CMD_SAMPLE_BANK: