From 76d1d09c1224af8d663ce63dc5b32425bd62cb29 Mon Sep 17 00:00:00 2001 From: notaz Date: Thu, 6 Oct 2011 00:22:46 +0300 Subject: [PATCH] spu: make "simple" interpolation even more simple that division is not worth the quality increase it might give, also sinc now can be 0 after resets, causing div0 fault. --- plugins/dfsound/spu.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/plugins/dfsound/spu.c b/plugins/dfsound/spu.c index b3bd0579..d7dc1b64 100644 --- a/plugins/dfsound/spu.c +++ b/plugins/dfsound/spu.c @@ -222,9 +222,10 @@ INLINE void InterpolateUp(int ch) s_chan[ch].SB[32]=0; s_chan[ch].SB[28]=(s_chan[ch].SB[28]*s_chan[ch].sinc)/0x20000L; - if(s_chan[ch].sinc<=0x8000) - s_chan[ch].SB[29]=s_chan[ch].SB[30]-(s_chan[ch].SB[28]*((0x10000/s_chan[ch].sinc)-1)); - else s_chan[ch].SB[29]+=s_chan[ch].SB[28]; + //if(s_chan[ch].sinc<=0x8000) + // s_chan[ch].SB[29]=s_chan[ch].SB[30]-(s_chan[ch].SB[28]*((0x10000/s_chan[ch].sinc)-1)); + //else + s_chan[ch].SB[29]+=s_chan[ch].SB[28]; } else // no flags? add bigger val (if possible), calc smaller step, set flag1 s_chan[ch].SB[29]+=s_chan[ch].SB[28]; -- 2.39.5