diff options
author | notaz | 2015-01-10 03:51:44 +0200 |
---|---|---|
committer | notaz | 2015-01-12 03:01:01 +0200 |
commit | 8f5f2dd5a70f47322614eda6f97304808447199c (patch) | |
tree | 66119eb69ce26ba93ce13246e82de5677b0d73ea /plugins/dfsound/spu.c | |
parent | c632283d5c48d7731ec5704c3d5eef54951fec20 (diff) | |
download | pcsx_rearmed-8f5f2dd5a70f47322614eda6f97304808447199c.tar.gz pcsx_rearmed-8f5f2dd5a70f47322614eda6f97304808447199c.tar.bz2 pcsx_rearmed-8f5f2dd5a70f47322614eda6f97304808447199c.zip |
some random improvements
Diffstat (limited to 'plugins/dfsound/spu.c')
-rw-r--r-- | plugins/dfsound/spu.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/plugins/dfsound/spu.c b/plugins/dfsound/spu.c index f5edd3a..ec31b0c 100644 --- a/plugins/dfsound/spu.c +++ b/plugins/dfsound/spu.c @@ -595,24 +595,26 @@ make_do_samples(simple, , , static int do_samples_skip(int ch, int ns_to) { SPUCHAN *s_chan = &spu.s_chan[ch]; + int spos = s_chan->spos; + int sinc = s_chan->sinc; int ret = ns_to, ns, d; - s_chan->spos += s_chan->iSBPos << 16; + spos += s_chan->iSBPos << 16; for (ns = 0; ns < ns_to; ns++) { - s_chan->spos += s_chan->sinc; - while (s_chan->spos >= 28*0x10000) + spos += sinc; + while (spos >= 28*0x10000) { d = skip_block(ch); if (d && ns < ret) ret = ns; - s_chan->spos -= 28*0x10000; + spos -= 28*0x10000; } } - s_chan->iSBPos = s_chan->spos >> 16; - s_chan->spos &= 0xffff; + s_chan->iSBPos = spos >> 16; + s_chan->spos = spos & 0xffff; return ret; } |