X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=plugins%2Fdfsound%2Fxa.c;h=bdea89a32a14a4bf5f1b72177a004c73dbb39767;hp=fdae4f9efe6cdabf210b7fc75179756a5ba40351;hb=07a6dd2ce2c0c8ea2de11c30c134c877e7c7b0fb;hpb=ef79bbde537d6b9c745a7d86cb9df1d04c35590d diff --git a/plugins/dfsound/xa.c b/plugins/dfsound/xa.c index fdae4f9e..bdea89a3 100644 --- a/plugins/dfsound/xa.c +++ b/plugins/dfsound/xa.c @@ -22,6 +22,8 @@ // will be included from spu.c #ifdef _IN_SPU +#define XA_HACK + //////////////////////////////////////////////////////////////////////// // XA GLOBALS //////////////////////////////////////////////////////////////////////// @@ -61,40 +63,40 @@ INLINE void MixXA(void) int ns; uint32_t l; - for(ns=0;ns>16)&0xffff)) * iRightXAVol)/32768; + SSumLR[ns++]+=(((short)(XALastVal&0xffff)) * iLeftXAVol)/32768; + SSumLR[ns++]+=(((short)((XALastVal>>16)&0xffff)) * iRightXAVol)/32768; #else - SSumL[ns]+=(((short)(XALastVal&0xffff)) * iLeftXAVol)/32767; - SSumR[ns]+=(((short)((XALastVal>>16)&0xffff)) * iRightXAVol)/32767; + SSumLR[ns++]+=(((short)(XALastVal&0xffff)) * iLeftXAVol)/32767; + SSumLR[ns++]+=(((short)((XALastVal>>16)&0xffff)) * iRightXAVol)/32767; #endif } if(XAPlay==XAFeed && XARepeat) { XARepeat--; - for(;ns>16)&0xffff)) * iRightXAVol)/32768; + SSumLR[ns++]+=(((short)(XALastVal&0xffff)) * iLeftXAVol)/32768; + SSumLR[ns++]+=(((short)((XALastVal>>16)&0xffff)) * iRightXAVol)/32768; #else - SSumL[ns]+=(((short)(XALastVal&0xffff)) * iLeftXAVol)/32767; - SSumR[ns]+=(((short)((XALastVal>>16)&0xffff)) * iRightXAVol)/32767; + SSumLR[ns++]+=(((short)(XALastVal&0xffff)) * iLeftXAVol)/32767; + SSumLR[ns++]+=(((short)((XALastVal>>16)&0xffff)) * iRightXAVol)/32767; #endif } } - for(ns=0;ns>16)&0xffff)) * iRightXAVol)/32767; + SSumLR[ns++]+=(((short)(l&0xffff)) * iLeftXAVol)/32767; + SSumLR[ns++]+=(((short)((l>>16)&0xffff)) * iRightXAVol)/32767; } } @@ -122,7 +124,7 @@ INLINE void FeedXA(xa_decode_t *xap) xapGlobal = xap; // store info for save states XARepeat = 100; // set up repeat -#ifdef XA_HACK +#if 0//def XA_HACK iSize=((45500*xap->nsamples)/xap->freq); // get size #else iSize=((44100*xap->nsamples)/xap->freq); // get size @@ -359,7 +361,6 @@ INLINE void FeedXA(xa_decode_t *xap) vr+=(gauss[vl+2]*gvall(2))&~2047; vr+=(gauss[vl+3]*gvall(3))&~2047; l=s= vr >> 11; - l &= 0xffff; } else { @@ -371,6 +372,7 @@ INLINE void FeedXA(xa_decode_t *xap) l=s; } + l &= 0xffff; *XAFeed++=(l|(l<<16)); if(XAFeed==XAEnd) XAFeed=XAStart;