X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=plugins%2Fdfsound%2Fregisters.c;h=ac495d63e71856cb102c55264cb3e73f6151f26d;hp=c7905255c00af328ff7cee8fe490548cdebd7b41;hb=90f1d26c2e771993c1a563f4c0ea81432bd9fc5e;hpb=5238f6f8fcf43fb8506467b358ee976a8c5fdf6b diff --git a/plugins/dfsound/registers.c b/plugins/dfsound/registers.c index c7905255..ac495d63 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: @@ -376,7 +378,6 @@ unsigned short CALLBACK SPUreadRegister(unsigned long reg) case 14: // get loop address { const int ch=(r>>4)-0xc0; - if(s_chan[ch].pLoop==NULL) return 0; return (unsigned short)((s_chan[ch].pLoop-spuMemC)>>3); } }