X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=plugins%2Fdfsound%2Fregisters.c;h=54e4000f767de70a578d7872ae790267d39abfec;hb=c67af2ac1a8305c7377c7dda844257c5bc1545e3;hp=2493a1e58d55e99fc8e1d537a6a12d8ad2ef7af9;hpb=7e44d49d2a65d6e45d6f99f72a8cccdb02654aae;p=pcsx_rearmed.git diff --git a/plugins/dfsound/registers.c b/plugins/dfsound/registers.c index 2493a1e5..54e4000f 100644 --- a/plugins/dfsound/registers.c +++ b/plugins/dfsound/registers.c @@ -176,7 +176,6 @@ void CALLBACK SPUwriteRegister(unsigned long reg, unsigned short val) break; //------------------------------------------------// } - iSpuAsyncWait=0; return; } @@ -213,6 +212,9 @@ void CALLBACK SPUwriteRegister(unsigned long reg, unsigned short val) { rvb.StartAddr=(unsigned long)val<<2; rvb.CurrAddr=rvb.StartAddr; + // sync-with-decode-buffers hack.. + if(rvb.StartAddr==0x3ff00) + rvb.CurrAddr+=decode_pos/2; } } rvb.dirty = 1; @@ -343,8 +345,6 @@ void CALLBACK SPUwriteRegister(unsigned long reg, unsigned short val) if ((r & ~0x3f) == H_Reverb) rvb.dirty = 1; // recalculate on next update - - iSpuAsyncWait=0; } //////////////////////////////////////////////////////////////////////// @@ -355,8 +355,6 @@ unsigned short CALLBACK SPUreadRegister(unsigned long reg) { const unsigned long r=reg&0xfff; - iSpuAsyncWait=0; - if(r>=0x0c00 && r<0x0d80) { switch(r&0x0f) @@ -429,6 +427,7 @@ static void SoundOn(int start,int end,unsigned short val) s_chan[ch].bStop=0; s_chan[ch].pCurr=spuMemC+((regAreaGet(ch,6)&~1)<<3); // must be block aligned s_chan[ch].pLoop=spuMemC+((regAreaGet(ch,14)&~1)<<3); + s_chan[ch].prevflags=2; dwNewChannel|=(1<