break;\r
//-------------------------------------------------//\r
case H_SPUctrl:\r
+ if(!(spuCtrl & CTRL_IRQ))\r
+ spuStat&=~STAT_IRQ;\r
spuCtrl=val;\r
break;\r
//-------------------------------------------------//\r
//-------------------------------------------------//\r
case H_SPUirqAddr:\r
spuIrq = val;\r
- pSpuIrq=spuMemC+((unsigned long) val<<3);\r
+ pSpuIrq=spuMemC+(((unsigned long) val<<3)&~0xf);\r
break;\r
//-------------------------------------------------//\r
case H_SPUrvolL:\r
case 14: // get loop address\r
{\r
const int ch=(r>>4)-0xc0;\r
- if(s_chan[ch].pLoop==NULL) return 0;\r
return (unsigned short)((s_chan[ch].pLoop-spuMemC)>>3);\r
}\r
}\r