typedef struct\r
{\r
unsigned short spuIrq;\r
+ unsigned short decode_pos;\r
uint32_t pSpuIrq;\r
uint32_t spuAddr;\r
uint32_t dummy1;\r
\r
if(!pF) return 0; // first check\r
\r
+ do_samples(cycles, 1);\r
+\r
if(ulFreezeMode) // info or save?\r
{//--------------------------------------------------//\r
if(ulFreezeMode==1) \r
\r
if(ulFreezeMode==2) return 1; // info mode? ok, bye\r
// save mode:\r
- do_samples(cycles, 1);\r
-\r
memcpy(pF->cSPURam,spu.spuMem,0x80000); // copy common infos\r
memcpy(pF->cSPUPort,spu.regArea,0x200);\r
\r
\r
pFO->spuAddr=spu.spuAddr;\r
if(pFO->spuAddr==0) pFO->spuAddr=0xbaadf00d;\r
+ pFO->decode_pos = spu.decode_pos;\r
\r
for(i=0;i<MAXCHAN;i++)\r
{\r
\r
memcpy(spu.spuMem,pF->cSPURam,0x80000); // get ram\r
memcpy(spu.regArea,pF->cSPUPort,0x200);\r
+ spu.bMemDirty = 1;\r
\r
if(pF->xaS.nsamples<=4032) // start xa again\r
SPUplayADPCMchannel(&pF->xaS);\r
if (pFO->spuAddr == 0xbaadf00d) spu.spuAddr = 0;\r
else spu.spuAddr = pFO->spuAddr & 0x7fffe;\r
}\r
+ spu.decode_pos = pFO->decode_pos & 0x1ff;\r
\r
spu.dwNewChannel=0;\r
spu.dwChannelOn=0;\r