Fix X1-010 muting

This commit is contained in:
cam900 2022-03-16 11:35:22 +09:00 committed by GitHub
parent 9b3e0d45bd
commit 724bd5b8dc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 8 additions and 8 deletions

View File

@ -338,9 +338,13 @@ void DivPlatformX1_010::updateEnvelope(int ch) {
} }
} }
chWrite(ch,5,0x10|(ch&0xf)); chWrite(ch,5,0x10|(ch&0xf));
} else {
if (isMuted[ch]) {
chWrite(ch,1,0);
} else { } else {
chWrite(ch,1,(chan[ch].lvol<<4)|chan[ch].rvol); chWrite(ch,1,(chan[ch].lvol<<4)|chan[ch].rvol);
} }
}
} }
void DivPlatformX1_010::tick() { void DivPlatformX1_010::tick() {
@ -459,10 +463,8 @@ void DivPlatformX1_010::tick() {
} }
} }
if (chan[i].envChanged) { if (chan[i].envChanged) {
if (!isMuted[i]) { chan[i].lvol=isMuted[i]?0:((chan[i].outVol&0xf)*((chan[i].pan>>4)&0xf))/15;
chan[i].lvol=((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;
chan[i].rvol=((chan[i].outVol&0xf)*((chan[i].pan>>0)&0xf))/15;
}
updateEnvelope(i); updateEnvelope(i);
chan[i].envChanged=false; chan[i].envChanged=false;
} }
@ -661,10 +663,8 @@ int DivPlatformX1_010::dispatch(DivCommand c) {
if (chan[c.chan].pcm!=(c.value&1)) { if (chan[c.chan].pcm!=(c.value&1)) {
chan[c.chan].pcm=c.value&1; chan[c.chan].pcm=c.value&1;
chan[c.chan].freqChanged=true; chan[c.chan].freqChanged=true;
if (!isMuted[c.chan]) {
chan[c.chan].envChanged=true; chan[c.chan].envChanged=true;
} }
}
break; break;
case DIV_CMD_SAMPLE_BANK: case DIV_CMD_SAMPLE_BANK:
sampleBank=c.value; sampleBank=c.value;