IT import: Qxx has memory

This commit is contained in:
tildearrow 2024-07-14 16:17:29 -05:00
parent ca9996f3c5
commit b9787e226f

View file

@ -946,6 +946,7 @@ bool DivEngine::loadIT(unsigned char* file, size_t len) {
bool panSliding[64]; bool panSliding[64];
bool panSlidingOld[64]; bool panSlidingOld[64];
bool did[64]; bool did[64];
unsigned char lastRetrig[64];
if (patPtr[i]==0) continue; if (patPtr[i]==0) continue;
@ -989,6 +990,7 @@ bool DivEngine::loadIT(unsigned char* file, size_t len) {
memset(panSliding,0,64*sizeof(bool)); memset(panSliding,0,64*sizeof(bool));
memset(panSlidingOld,0,64*sizeof(bool)); memset(panSlidingOld,0,64*sizeof(bool));
memset(did,0,64*sizeof(bool)); memset(did,0,64*sizeof(bool));
memset(lastRetrig,0,64);
memset(mask,0,64); memset(mask,0,64);
memset(note,0,64); memset(note,0,64);
@ -1396,8 +1398,11 @@ bool DivEngine::loadIT(unsigned char* file, size_t len) {
panSliding[chan]=true; panSliding[chan]=true;
break; break;
case 'Q': // retrigger case 'Q': // retrigger
if (effectVal[chan]!=0) {
lastRetrig[chan]=effectVal[chan];
}
p->data[readRow][effectCol[chan]++]=0x0c; p->data[readRow][effectCol[chan]++]=0x0c;
p->data[readRow][effectCol[chan]++]=effectVal[chan]&15; p->data[readRow][effectCol[chan]++]=lastRetrig[chan]&15;
break; break;
case 'R': // tremolo case 'R': // tremolo
if (effectVal[chan]!=0) { if (effectVal[chan]!=0) {