fix wiz lab AGAIN and implement repeat pat

0x0b + 0x0d = broken
This commit is contained in:
tildearrow 2021-12-21 17:42:27 -05:00
parent 7b360b55a7
commit c2669f208e
5 changed files with 80 additions and 14 deletions

View file

@ -1424,6 +1424,8 @@ void DivEngine::setLoops(int loops) {
void DivEngine::playSub(bool preserveDrift) {
reset();
if (preserveDrift && curOrder==0) return;
bool oldRepeatPattern=repeatPattern;
repeatPattern=false;
int goal=curOrder;
curOrder=0;
curRow=0;
@ -1446,6 +1448,7 @@ void DivEngine::playSub(bool preserveDrift) {
if (goal>0) {
dispatch->forceIns();
}
repeatPattern=oldRepeatPattern;
if (preserveDrift) {
clockDrift=prevDrift;
} else {
@ -1548,6 +1551,16 @@ int DivEngine::getTotalTicks() {
return totalTicks;
}
bool DivEngine::getRepeatPattern() {
return repeatPattern;
}
void DivEngine::setRepeatPattern(bool value) {
isBusy.lock();
repeatPattern=value;
isBusy.unlock();
}
bool DivEngine::hasExtValue() {
return extValuePresent;
}