Anton Baskanov (@baskanov) commented about dlls/dmsynth/synth.c:
} set_default_voice_connections(fluid_voice);
if (region->wave_sample.cSampleLoops)
{
WLOOP *loop = region->wave_loops;
if (loop->ulType == WLOOP_TYPE_FORWARD)
fluid_voice_gen_set(fluid_voice, GEN_SAMPLEMODE, FLUID_LOOP_UNTIL_RELEASE);
I think it's the other way around. Evidence: on native Open Hi-hat, Chinese Cymbal, and Open Triangle from gm.dls continue to decay when released, while with this patch they end abruptly.