aboutsummaryrefslogtreecommitdiff
path: root/plugins/dfsound/freeze.c
diff options
context:
space:
mode:
authornotaz2015-01-05 04:27:03 +0200
committernotaz2015-01-05 04:29:51 +0200
commitde4a0279efefdd2e4595c8fc27f1564f4bff9341 (patch)
treea03494c7915a8b48c2ff848b35e6d5d8435d84e8 /plugins/dfsound/freeze.c
parent5514a050f4e936f5c333fa1271b11bf5a6a9ea39 (diff)
downloadpcsx_rearmed-de4a0279efefdd2e4595c8fc27f1564f4bff9341.tar.gz
pcsx_rearmed-de4a0279efefdd2e4595c8fc27f1564f4bff9341.tar.bz2
pcsx_rearmed-de4a0279efefdd2e4595c8fc27f1564f4bff9341.zip
spu: finish offload code to TI C64x DSP
rather disappointing result so far, though :(
Diffstat (limited to 'plugins/dfsound/freeze.c')
-rw-r--r--plugins/dfsound/freeze.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/plugins/dfsound/freeze.c b/plugins/dfsound/freeze.c
index 83a7d52..5b4267b 100644
--- a/plugins/dfsound/freeze.c
+++ b/plugins/dfsound/freeze.c
@@ -143,7 +143,7 @@ static void save_channel(SPUCHAN_orig *d, const SPUCHAN *s, int ch)
d->iSBPos = s->iSBPos;
d->spos = s->spos;
d->sinc = s->sinc;
- memcpy(d->SB, s->SB, sizeof(d->SB));
+ memcpy(d->SB, spu.SB + ch * SB_SIZE, sizeof(d->SB[0]) * SB_SIZE);
d->iStart = (regAreaGet(ch,6)&~1)<<3;
d->iCurr = 0; // set by the caller
d->iLoop = 0; // set by the caller
@@ -157,8 +157,8 @@ static void save_channel(SPUCHAN_orig *d, const SPUCHAN *s, int ch)
d->bIgnoreLoop = (s->prevflags ^ 2) << 1;
d->iRightVolume = s->iRightVolume;
d->iRawPitch = s->iRawPitch;
- d->s_1 = s->SB[27]; // yes it's reversed
- d->s_2 = s->SB[26];
+ d->s_1 = spu.SB[ch * SB_SIZE + 27]; // yes it's reversed
+ d->s_2 = spu.SB[ch * SB_SIZE + 26];
d->bRVBActive = s->bRVBActive;
d->bNoise = s->bNoise;
d->bFMod = s->bFMod;
@@ -185,7 +185,7 @@ static void load_channel(SPUCHAN *d, const SPUCHAN_orig *s, int ch)
d->spos = s->spos;
d->sinc = s->sinc;
d->sinc_inv = 0;
- memcpy(d->SB, s->SB, sizeof(d->SB));
+ memcpy(spu.SB + ch * SB_SIZE, s->SB, sizeof(spu.SB[0]) * SB_SIZE);
d->pCurr = (void *)((long)s->iCurr & 0x7fff0);
d->pLoop = (void *)((long)s->iLoop & 0x7fff0);
d->bReverb = s->bReverb;
@@ -302,7 +302,7 @@ long CALLBACK SPUfreeze(uint32_t ulFreezeMode, SPUFreeze_t * pF,
load_register(H_CDRight, cycles);
// fix to prevent new interpolations from crashing
- for(i=0;i<MAXCHAN;i++) spu.s_chan[i].SB[28]=0;
+ for(i=0;i<MAXCHAN;i++) spu.SB[i * SB_SIZE + 28]=0;
ClearWorkingState();
spu.cycles_played = cycles;