diff --git a/src/engine/platform/segapcm.cpp b/src/engine/platform/segapcm.cpp index 381736ffd..3c21d3a77 100644 --- a/src/engine/platform/segapcm.cpp +++ b/src/engine/platform/segapcm.cpp @@ -146,7 +146,7 @@ void DivPlatformSegaPCM::tick(bool sysTick) { if (!s->isLoopable()) { rWrite(0x86+(i<<3),2+((actualPos>>16)<<3)); } else { - int loopPos=(actualPos&0xffff)+loopStart; + int loopPos=(sampleOffSegaPCM[chan[i].pcm.sample]&0xffff)+loopStart; logV("sampleOff: %x loopPos: %x",actualPos,loopPos); rWrite(4+(i<<3),loopPos&0xff); rWrite(5+(i<<3),(loopPos>>8)&0xff); @@ -165,7 +165,7 @@ void DivPlatformSegaPCM::tick(bool sysTick) { if (!s->isLoopable()) { rWrite(0x86+(i<<3),2+((actualPos>>16)<<3)); } else { - int loopPos=(actualPos&0xffff)+loopStart; + int loopPos=(sampleOffSegaPCM[chan[i].pcm.sample]&0xffff)+loopStart; rWrite(4+(i<<3),loopPos&0xff); rWrite(5+(i<<3),(loopPos>>8)&0xff); rWrite(0x86+(i<<3),((actualPos>>16)<<3));