From ee9afdbd4d9e0aee75dd9e17878c76f1c7236d04 Mon Sep 17 00:00:00 2001 From: notaz Date: Sat, 5 Jan 2013 04:05:56 +0200 Subject: [PATCH] spu: fix decode offset --- plugins/dfsound/spu.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/plugins/dfsound/spu.c b/plugins/dfsound/spu.c index a190b29b..b89ab1af 100644 --- a/plugins/dfsound/spu.c +++ b/plugins/dfsound/spu.c @@ -671,12 +671,13 @@ static void noinline do_decode_bufs(int which, int start, int count) { const int *src = ChanBuf + start; unsigned short *dst = &spuMem[0x800/2 + which*0x400/2]; - int cursor = decode_pos; + int cursor = decode_pos + start; while (count-- > 0) { + cursor &= 0x1ff; dst[cursor] = *src++; - cursor = (cursor + 1) & 0x1ff; + cursor++; } // decode_pos is updated and irqs are checked later, after voice loop -- 2.39.5