diff --git a/src/engine/platform/lynx.cpp b/src/engine/platform/lynx.cpp index ca0444c26..af17053b1 100644 --- a/src/engine/platform/lynx.cpp +++ b/src/engine/platform/lynx.cpp @@ -157,8 +157,13 @@ void DivPlatformLynx::acquire(short* bufL, short* bufR, size_t start, size_t len } else { WRITE_OUTPUT(i,(s->data8[chan[i].samplePos++]*chan[i].outVol)>>7); } + if (chan[i].samplePos>=(int)s->samples) { - chan[i].sample=-1; + if (s->loopStart>=0 && s->loopStart<(int)s->samples) { + chan[i].samplePos=s->loopStart; + } else { + chan[i].sample=-1; + } } } }