diff --git a/src/engine/vgmOps.cpp b/src/engine/vgmOps.cpp index 84c673e57..aa9e22498 100644 --- a/src/engine/vgmOps.cpp +++ b/src/engine/vgmOps.cpp @@ -977,7 +977,7 @@ SafeWriter* DivEngine::saveVGM(bool* sysToExport, bool loop) { writeLoop=true; } } - if (nextTick()) { + if (nextTick() || !playing) { done=true; if (!loop) { for (int i=0; iwriteC(i); loopSample[i]=-1; } + + if (!playing) { + writeLoop=false; + loopPos=-1; + } } // get register dumps for (int i=0; iwriteI(gd3Off-0x14); w->writeI(tickCount); if (loop) { - w->writeI(loopPos-0x1c); - w->writeI(tickCount-loopTick-1); + if (loopPos==-1) { + w->writeI(0); + w->writeI(0); + } else { + w->writeI(loopPos-0x1c); + w->writeI(tickCount-loopTick-1); + } } else { w->writeI(0); w->writeI(0);