Merge pull request #320 from cam900/n163_fix

Fix N163
This commit is contained in:
tildearrow 2022-03-28 13:22:22 -05:00 committed by GitHub
commit 6c36b22420
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 11 additions and 7 deletions

View File

@ -194,7 +194,7 @@ void DivPlatformN163::updateWave(int wave, int pos, int len) {
void DivPlatformN163::updateWaveCh(int ch) {
if (ch<=chanMax) {
updateWave(chan[ch].wave,chan[ch].wavePos,chan[ch].waveLen);
if (chan[ch].active) {
if (chan[ch].active && !isMuted[ch]) {
chan[ch].volumeChanged=true;
}
}
@ -301,21 +301,25 @@ void DivPlatformN163::tick() {
}
}
if (chan[i].volumeChanged) {
if ((!chan[i].active) || isMuted[i]) {
chWriteMask(i,0x7,0,0xf);
} else {
if (chan[i].active && !isMuted[i]) {
chWriteMask(i,0x7,chan[i].resVol&0xf,0xf);
} else {
chWriteMask(i,0x7,0,0xf);
}
chan[i].volumeChanged=false;
}
if (chan[i].waveChanged) {
chWrite(i,0x6,chan[i].wavePos);
chan[i].freqChanged=true;
if (chan[i].active) {
chan[i].freqChanged=true;
}
chan[i].waveChanged=false;
}
if (chan[i].waveUpdated) {
updateWaveCh(i);
if (!chan[i].keyOff) chan[i].keyOn=true;
if (chan[i].active) {
if (!chan[i].keyOff) chan[i].keyOn=true;
}
chan[i].waveUpdated=false;
}
if (chan[i].freqChanged || chan[i].keyOn || chan[i].keyOff) {
@ -331,7 +335,7 @@ void DivPlatformN163::tick() {
}
}
if (chan[i].keyOff && !isMuted[i]) {
chWriteMask(i,0x07,0,0xf);
chWriteMask(i,0x7,0,0xf);
}
chWrite(i,0x0,chan[i].freq&0xff);
chWrite(i,0x2,chan[i].freq>>8);