TIA: fix non-working arp macro

This commit is contained in:
tildearrow 2023-02-05 03:54:30 -05:00
parent 1a24fbe35f
commit 3cacbe4434

View file

@ -135,22 +135,27 @@ void DivPlatformTIA::tick(bool sysTick) {
int bf=chan[i].baseFreq; int bf=chan[i].baseFreq;
if (!parent->song.oldArpStrategy) { if (!parent->song.oldArpStrategy) {
if (!chan[i].fixedArp) { if (!chan[i].fixedArp) {
bf+=chan[i].arpOff; bf+=chan[i].arpOff<<8;
} }
} }
chan[i].freq=dealWithFreq(chan[i].shape,bf,chan[i].pitch+chan[i].pitch2); if (chan[i].fixedArp) {
if ((chan[i].shape==4 || chan[i].shape==5) && !(chan[i].baseFreq&0x80000000 && ((chan[i].baseFreq&0x7fffffff)<32))) { chan[i].freq=chan[i].baseNoteOverride&31;
if (bf<39*256) { } else {
rWrite(0x15+i,6); chan[i].freq=dealWithFreq(chan[i].shape,bf,chan[i].pitch+chan[i].pitch2);
chan[i].freq=dealWithFreq(6,bf,chan[i].pitch+chan[i].pitch2); if ((chan[i].shape==4 || chan[i].shape==5) && !(chan[i].baseFreq&0x80000000 && ((chan[i].baseFreq&0x7fffffff)<32))) {
} else if (bf<59*256) { if (bf<39*256) {
rWrite(0x15+i,12); rWrite(0x15+i,6);
chan[i].freq=dealWithFreq(12,bf,chan[i].pitch+chan[i].pitch2); chan[i].freq=dealWithFreq(6,bf,chan[i].pitch+chan[i].pitch2);
} else { } else if (bf<59*256) {
rWrite(0x15+i,chan[i].shape); rWrite(0x15+i,12);
chan[i].freq=dealWithFreq(12,bf,chan[i].pitch+chan[i].pitch2);
} else {
rWrite(0x15+i,chan[i].shape);
}
} }
if (chan[i].freq>31) chan[i].freq=31;
} }
if (chan[i].freq>31) chan[i].freq=31;
if (chan[i].keyOff) { if (chan[i].keyOff) {
rWrite(0x19+i,0); rWrite(0x19+i,0);
} }