el diego 2 finally plays back correctly

ALMOST
This commit is contained in:
tildearrow 2021-12-27 16:31:16 -05:00
parent 4f2ce0f907
commit 65444d4a99
10 changed files with 20 additions and 13 deletions

View file

@ -37,7 +37,7 @@ void DivPlatformSMS::tick() {
}
for (int i=0; i<3; i++) {
if (chan[i].freqChanged) {
chan[i].freq=(chan[i].baseFreq*(ONE_SEMITONE-chan[i].pitch))/ONE_SEMITONE;
chan[i].freq=(chan[i].baseFreq*pow(2,(double)-chan[i].pitch/(12.0*128.0)));
if (chan[i].note>0x5d) chan[i].freq=0x01;
sn->write(0x80|i<<5|(chan[i].freq&15));
sn->write(chan[i].freq>>4);
@ -46,7 +46,7 @@ void DivPlatformSMS::tick() {
}
if (chan[3].freqChanged || updateSNMode) {
updateSNMode=false;
chan[3].freq=(chan[3].baseFreq*(ONE_SEMITONE-chan[3].pitch))/ONE_SEMITONE;
chan[3].freq=(chan[3].baseFreq*pow(2,(double)-chan[3].pitch/(12.0*128.0)));
if (chan[3].note>0x5d) chan[3].freq=0x01;
chan[3].freqChanged=false;
if (snNoiseMode&2) { // take period from channel 3