spu: sync on xa playback start
[pcsx_rearmed.git] / plugins / dfsound / freeze.c
index a9843ae..a400cf7 100644 (file)
@@ -145,7 +145,7 @@ static void save_channel(SPUCHAN_orig *d, const SPUCHAN *s, int ch)
  d->spos = s->spos;\r
  d->sinc = s->sinc;\r
  memcpy(d->SB, spu.SB + ch * SB_SIZE, sizeof(d->SB[0]) * SB_SIZE);\r
- d->iStart = (regAreaGet(ch,6)&~1)<<3;\r
+ d->iStart = (regAreaGetCh(ch, 6) & ~1) << 3;\r
  d->iCurr = 0; // set by the caller\r
  d->iLoop = 0; // set by the caller\r
  d->bOn = !!(spu.dwChannelsAudible & (1<<ch));\r
@@ -284,7 +284,7 @@ long CALLBACK SPUfreeze(uint32_t ulFreezeMode, SPUFreeze_t * pF,
  spu.bMemDirty = 1;\r
 \r
  if(pF->xaS.nsamples<=4032)                            // start xa again\r
-  SPUplayADPCMchannel(&pF->xaS);\r
+  SPUplayADPCMchannel(&pF->xaS, spu.cycles_played, 0);\r
 \r
  spu.xapGlobal=0;\r
 \r