+ usesoundtimehack = false;
+ }
+ // if the soundtimehack state changes we need to reset the soundtime
+ if (soundtimehack != usesoundtimehack)
+ {
+ snd_renderbuffer->startframe = snd_renderbuffer->endframe = soundtime = newsoundtime;
+
+ // Mute the contents of the submission buffer
+ if (simsound || SndSys_LockRenderBuffer ())
+ {
+ int clear;
+ size_t memsize;
+
+ clear = (snd_renderbuffer->format.width == 1) ? 0x80 : 0;
+ memsize = snd_renderbuffer->maxframes * snd_renderbuffer->format.width * snd_renderbuffer->format.channels;
+ memset(snd_renderbuffer->ring, clear, memsize);
+
+ if (!simsound)
+ SndSys_UnlockRenderBuffer ();
+ }
+ }
+ soundtimehack = usesoundtimehack;
+
+ if (!soundtimehack && snd_blocked > 0)
+ return;