X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=plugins%2Fdfsound%2Fspu.c;h=afd5fd6c968a244c563e2624ac5b4915819b06cf;hp=084fccf0ebefaff21a8a1ec9586c709d00258e14;hb=17ed0d696a7a3649cc41dcf182e162c85002b33a;hpb=8680e8229414b74335e2c1d05cc678cf8bab685b diff --git a/plugins/dfsound/spu.c b/plugins/dfsound/spu.c index 084fccf0..afd5fd6c 100644 --- a/plugins/dfsound/spu.c +++ b/plugins/dfsound/spu.c @@ -771,7 +771,7 @@ void CALLBACK SPUasync(unsigned long cycle) if(iSpuAsyncWait) { iSpuAsyncWait++; - if(iSpuAsyncWait<=64) return; + if(iSpuAsyncWait<=16) return; iSpuAsyncWait=0; } @@ -780,6 +780,11 @@ void CALLBACK SPUasync(unsigned long cycle) if(!bSpuInit) return; // -> no init, no call MAINThread(0); // -> linux high-compat mode + + // abuse iSpuAsyncWait mechanism to reduce calls to above function + // to make it do larger chunks + // note: doing it less often than once per frame causes skips + iSpuAsyncWait=1; } } @@ -925,7 +930,7 @@ long CALLBACK SPUinit(void) pMixIrq = 0; memset((void *)s_chan, 0, (MAXCHAN + 1) * sizeof(SPUCHAN)); pSpuIrq = 0; - iSPUIRQWait = 0; + //iSPUIRQWait = 0; lastch = -1; //ReadConfigSPU(); // read user stuff