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
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