d->sinc = s->sinc;\r
d->sinc_inv = 0;\r
memcpy(spu.SB + ch * SB_SIZE, s->SB, sizeof(spu.SB[0]) * SB_SIZE);\r
- d->pCurr = (void *)((long)s->iCurr & 0x7fff0);\r
- d->pLoop = (void *)((long)s->iLoop & 0x7fff0);\r
+ d->pCurr = (void *)((uintptr_t)s->iCurr & 0x7fff0);\r
+ d->pLoop = (void *)((uintptr_t)s->iLoop & 0x7fff0);\r
d->bReverb = s->bReverb;\r
d->iLeftVolume = s->iLeftVolume;\r
d->iRightVolume = s->iRightVolume;\r
pFO=(SPUOSSFreeze_t *)(pF+1); // store special stuff\r
\r
pFO->spuIrq = spu.regArea[(H_SPUirqAddr - 0x0c00) / 2];\r
- if(spu.pSpuIrq) pFO->pSpuIrq = (unsigned long)spu.pSpuIrq-(unsigned long)spu.spuMemC;\r
+ if(spu.pSpuIrq) pFO->pSpuIrq = spu.pSpuIrq - spu.spuMemC;\r
\r
pFO->spuAddr=spu.spuAddr;\r
if(pFO->spuAddr==0) pFO->spuAddr=0xbaadf00d;\r
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
{\r
load_channel(&spu.s_chan[i],&pFO->s_chan[i],i);\r
\r
- spu.s_chan[i].pCurr+=(unsigned long)spu.spuMemC;\r
- spu.s_chan[i].pLoop+=(unsigned long)spu.spuMemC;\r
+ spu.s_chan[i].pCurr+=(uintptr_t)spu.spuMemC;\r
+ spu.s_chan[i].pLoop+=(uintptr_t)spu.spuMemC;\r
}\r
}\r
\r