Fix X1-010 muting
This commit is contained in:
parent
9b3e0d45bd
commit
724bd5b8dc
|
@ -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;
|
||||||
|
|
Loading…
Reference in New Issue