fix silent song after playing past loop point

issue #1537
This commit is contained in:
tildearrow 2023-12-10 17:52:32 -05:00
parent c5d8dc970c
commit 342a2174d5

View file

@ -1519,6 +1519,11 @@ void DivEngine::playSub(bool preserveDrift, int goalRow) {
while (playing && curOrder<goal) {
if (nextTick(preserveDrift)) {
skipping=false;
cmdStream.clear();
for (int i=0; i<song.systemLen; i++) disCont[i].dispatch->setSkipRegisterWrites(false);
if (goal>0 || goalRow>0) {
for (int i=0; i<song.systemLen; i++) disCont[i].dispatch->forceIns();
}
return;
}
if (!preserveDrift) {
@ -1530,6 +1535,11 @@ void DivEngine::playSub(bool preserveDrift, int goalRow) {
while (playing && (curRow<goalRow || ticks>1)) {
if (nextTick(preserveDrift)) {
skipping=false;
cmdStream.clear();
for (int i=0; i<song.systemLen; i++) disCont[i].dispatch->setSkipRegisterWrites(false);
if (goal>0 || goalRow>0) {
for (int i=0; i<song.systemLen; i++) disCont[i].dispatch->forceIns();
}
return;
}
if (!preserveDrift) {