OPNA: proper ADPCM muting
This commit is contained in:
parent
031a0fc133
commit
ae5dcd3746
|
@ -817,7 +817,9 @@ int DivPlatformYM2608::dispatch(DivCommand c) {
|
||||||
}
|
}
|
||||||
if (c.chan>8) { // RSS
|
if (c.chan>8) { // RSS
|
||||||
if (skipRegisterWrites) break;
|
if (skipRegisterWrites) break;
|
||||||
writeRSSOn|=(1<<(c.chan-9));
|
if (!isMuted[c.chan]) {
|
||||||
|
writeRSSOn|=(1<<(c.chan-9));
|
||||||
|
}
|
||||||
immWrite(0x18+(c.chan-9),isMuted[c.chan]?0:((chan[c.chan].pan<<6)|chan[c.chan].vol));
|
immWrite(0x18+(c.chan-9),isMuted[c.chan]?0:((chan[c.chan].pan<<6)|chan[c.chan].vol));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -942,7 +944,7 @@ int DivPlatformYM2608::dispatch(DivCommand c) {
|
||||||
chan[c.chan].pan=(c.value2>0)|((c.value>0)<<1);
|
chan[c.chan].pan=(c.value2>0)|((c.value>0)<<1);
|
||||||
}
|
}
|
||||||
if (c.chan>14) {
|
if (c.chan>14) {
|
||||||
immWrite(0x101,isMuted[c.chan]?0:(chan[c.chan].pan<<6));
|
immWrite(0x101,(isMuted[c.chan]?0:(chan[c.chan].pan<<6))|2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (c.chan>8) {
|
if (c.chan>8) {
|
||||||
|
@ -1246,7 +1248,7 @@ int DivPlatformYM2608::dispatch(DivCommand c) {
|
||||||
void DivPlatformYM2608::muteChannel(int ch, bool mute) {
|
void DivPlatformYM2608::muteChannel(int ch, bool mute) {
|
||||||
isMuted[ch]=mute;
|
isMuted[ch]=mute;
|
||||||
if (ch>14) { // ADPCM-B
|
if (ch>14) { // ADPCM-B
|
||||||
//immWrite(0x11,isMuted[ch]?0:(chan[ch].pan<<6));
|
immWrite(0x101,(isMuted[ch]?0:(chan[ch].pan<<6))|2);
|
||||||
}
|
}
|
||||||
if (ch>8) { // ADPCM-A
|
if (ch>8) { // ADPCM-A
|
||||||
immWrite(0x18+(ch-9),isMuted[ch]?0:((chan[ch].pan<<6)|chan[ch].vol));
|
immWrite(0x18+(ch-9),isMuted[ch]?0:((chan[ch].pan<<6)|chan[ch].vol));
|
||||||
|
|
Loading…
Reference in a new issue