spu: fix decode offset
authornotaz <notasas@gmail.com>
Sat, 5 Jan 2013 02:05:56 +0000 (04:05 +0200)
committernotaz <notasas@gmail.com>
Sat, 5 Jan 2013 02:54:38 +0000 (04:54 +0200)
plugins/dfsound/spu.c

index a190b29..b89ab1a 100644 (file)
@@ -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