<p></p>
<p>SDL_mixer and SDL2_mixer support two different libraries for playing modules: libmikmod and libmodplug. libmodplug is far better in general. SDL_mixer defaults to mikmod, SDL2_mixer to modplug. Our SDL_mixer.dll is compiled to use modplug. Our x86 SDL_mixer.framework for Mac isn't.</p>
<p>In SDL_mixer, looping is disabled for both mikmod and modplug.<br>
In SDL2_mixer, looping is disabled for modplug but enabled for mikmod (it was enabled in SDL_mixer r826 "Fixed bug 1558 - mikmod broken volume and loop support")<br>
I have enabled it for both mikmod and modplug in my SDL/SDL2_mixer.dll builds.</p>
<p>This means that loop points are ignored, and instead of letting mikmod/modplug do looping, SDL_mixer does it itself, which also results in a subtle pause on loop when using modplug, but I didn't notice with when using mikmod in one test file.</p>
<p>On Mac (except x86+gfx_sdl) and Linux we use default/system builds of these libraries so we're stuck with broken looping.<br>
I am guilty of never sending a patch to SDL_mixer to fix looping. However it's been filed as <a href="https://bugzilla.libsdl.org/show_bug.cgi?id=1499" rel="nofollow">a bug against SDL_mixer</a> forever, don't know why they didn't fix it. Amusingly SDL Mixer X actually advertises that it enabled loop points in modplug.</p>
<p>I'm adding a couple testcases from Ravancloak to svn.</p>
<p>If libmodplug is a separate dynamic library then we could use dlopen/dlsym to get <code>ModPlug_SetSettings</code> and just change the loop setting, which is a global setting that SDL_mixer apparently only sets when it initialises modplug, which I think happens the first time you play a module file.</p>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/ohrrpgce/ohrrpgce/issues/1187">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AMWGWZXIJHYMELXNP5CNA2LSYFUPXANCNFSM4VSTXAUQ">unsubscribe</a>.<img src="https://github.com/notifications/beacon/AMWGWZUHPGQ2XBKPA63CQG3SYFUPXA5CNFSM4VSTXAU2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4LS5SCKA.gif" height="1" width="1" alt="" /></p>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/ohrrpgce/ohrrpgce/issues/1187",
"url": "https://github.com/ohrrpgce/ohrrpgce/issues/1187",
"name": "View Issue"
},
"description": "View this Issue on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>