notaz.gp2x.de
/
pcsx_rearmed.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
frontend/pollux: program MLC2 for TV-out, save/restore regs
[pcsx_rearmed.git]
/
plugins
/
dfsound
/
spu.c
diff --git
a/plugins/dfsound/spu.c
b/plugins/dfsound/spu.c
index
d7dc1b6
..
ecc7ca0
100644
(file)
--- a/
plugins/dfsound/spu.c
+++ b/
plugins/dfsound/spu.c
@@
-339,7
+339,7
@@
INLINE void StoreInterpolationVal(int ch,int fa)
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
-INLINE int iGetInterpolationVal(int ch)
+INLINE int iGetInterpolationVal(int ch
, int spos
)
{
int fa;
{
int fa;
@@
-351,7
+351,7
@@
INLINE int iGetInterpolationVal(int ch)
case 3: // cubic interpolation
{
long xd;int gpos;
case 3: // cubic interpolation
{
long xd;int gpos;
- xd = (
(s_chan[ch].spos)
>> 1)+1;
+ xd = (
spos
>> 1)+1;
gpos = s_chan[ch].SB[28];
fa = gval(3) - 3*gval(2) + 3*gval(1) - gval0;
gpos = s_chan[ch].SB[28];
fa = gval(3) - 3*gval(2) + 3*gval(1) - gval0;
@@
-370,7
+370,7
@@
INLINE int iGetInterpolationVal(int ch)
case 2: // gauss interpolation
{
int vl, vr;int gpos;
case 2: // gauss interpolation
{
int vl, vr;int gpos;
- vl = (s
_chan[ch].s
pos >> 6) & ~3;
+ vl = (spos >> 6) & ~3;
gpos = s_chan[ch].SB[28];
vr=(gauss[vl]*gval0)&~2047;
vr+=(gauss[vl+1]*gval(1))&~2047;
gpos = s_chan[ch].SB[28];
vr=(gauss[vl]*gval0)&~2047;
vr+=(gauss[vl+1]*gval(1))&~2047;
@@
-570,7
+570,7
@@
out: \
make_do_samples(default, fmod_recv_check, ,
StoreInterpolationVal(ch, fa),
make_do_samples(default, fmod_recv_check, ,
StoreInterpolationVal(ch, fa),
- ChanBuf[ns] = iGetInterpolationVal(ch), )
+ ChanBuf[ns] = iGetInterpolationVal(ch
, spos
), )
make_do_samples(noint, , fa = s_chan[ch].SB[29], , ChanBuf[ns] = fa, s_chan[ch].SB[29] = fa)
#define simple_interp_store \
make_do_samples(noint, , fa = s_chan[ch].SB[29], , ChanBuf[ns] = fa, s_chan[ch].SB[29] = fa)
#define simple_interp_store \
@@
-904,12
+904,14
@@
static void *MAINThread(void *arg)
// SPU ASYNC... even newer epsxe func
// 1 time every 'cycle' cycles... harhar
// SPU ASYNC... even newer epsxe func
// 1 time every 'cycle' cycles... harhar
+// rearmed: called every 2ms now
+
void CALLBACK SPUasync(unsigned long cycle)
{
if(iSpuAsyncWait)
{
iSpuAsyncWait++;
void CALLBACK SPUasync(unsigned long cycle)
{
if(iSpuAsyncWait)
{
iSpuAsyncWait++;
- if(iSpuAsyncWait<=16/
FRAG_MSECS
) return;
+ if(iSpuAsyncWait<=16/
2
) return;
iSpuAsyncWait=0;
}
iSpuAsyncWait=0;
}