X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=plugins%2Fdfsound%2Fregisters.c;h=87f7558e1310c84899265fdafad41fcc49b36997;hb=07a6dd2ce2c0c8ea2de11c30c134c877e7c7b0fb;hp=c36c27ea4545723807a337358c14ca13504a8920;hpb=e11ae5c58194de196c57ba0a2107d6eec5c0394a;p=pcsx_rearmed.git diff --git a/plugins/dfsound/registers.c b/plugins/dfsound/registers.c index c36c27ea..87f7558e 100644 --- a/plugins/dfsound/registers.c +++ b/plugins/dfsound/registers.c @@ -191,6 +191,8 @@ void CALLBACK SPUwriteRegister(unsigned long reg, unsigned short val) break; //-------------------------------------------------// case H_SPUctrl: + if(!(spuCtrl & CTRL_IRQ)) + spuStat&=~STAT_IRQ; spuCtrl=val; break; //-------------------------------------------------// @@ -214,7 +216,7 @@ void CALLBACK SPUwriteRegister(unsigned long reg, unsigned short val) //-------------------------------------------------// case H_SPUirqAddr: spuIrq = val; - pSpuIrq=spuMemC+((unsigned long) val<<3); + pSpuIrq=spuMemC+(((unsigned long) val<<3)&~0xf); break; //-------------------------------------------------// case H_SPUrvolL: @@ -480,6 +482,8 @@ void FModOn(int start,int end,unsigned short val) // FMOD ON PSX COMMAND else { s_chan[ch].bFMod=0; // --> turn off fmod + if(ch>0&&s_chan[ch-1].bFMod==2) + s_chan[ch-1].bFMod=0; } } }