From 06a2d10ba1110483843502c1b942d712ee399955 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Thu, 22 Jun 2023 16:45:31 -0500 Subject: [PATCH] VGM export: cap streams to 44100Hz VGMPlay doesn't like higher frequencies --- src/engine/vgmOps.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/engine/vgmOps.cpp b/src/engine/vgmOps.cpp index 7a3fa9486..97c26c569 100644 --- a/src/engine/vgmOps.cpp +++ b/src/engine/vgmOps.cpp @@ -622,11 +622,14 @@ void DivEngine::performVGMWrite(SafeWriter* w, DivSystem sys, DivRegWrite& write } } break; - case 1: // set sample freq + case 1: { // set sample freq + int realFreq=write.val; + if (realFreq<0) realFreq=0; + if (realFreq>44100) realFreq=44100; w->writeC(0x92); w->writeC(streamID); - w->writeI(write.val); - loopFreq[streamID]=write.val; + w->writeI(realFreq); + loopFreq[streamID]=realFreq; if (pendingFreq[streamID]!=-1) { DivSample* sample=song.sample[pendingFreq[streamID]]; w->writeC(0x95); @@ -641,6 +644,7 @@ void DivEngine::performVGMWrite(SafeWriter* w, DivSystem sys, DivRegWrite& write pendingFreq[streamID]=-1; } break; + } case 2: // stop sample w->writeC(0x94); w->writeC(streamID);