From 1f6d44b29ad71075bfc4b46d6f1a61a86777a5d4 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sun, 20 Feb 2022 23:13:52 -0500 Subject: [PATCH] VGM export: fix song end effect hang --- src/engine/vgmOps.cpp | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) 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);