if(s_chan[ch].ADSRX.EnvelopeVol<0) \r
{\r
s_chan[ch].ADSRX.EnvelopeVol=0;\r
- s_chan[ch].bOn=0;\r
+ // don't stop if this chan can still cause irqs\r
+ if(!(spuCtrl&0x40) || (s_chan[ch].pCurr > pSpuIrq && s_chan[ch].pLoop > pSpuIrq))\r
+ //s_chan[ch].bOn=0;\r
+ s_chan[ch].pCurr=(unsigned char *)-1;\r
//s_chan[ch].bReverb=0;\r
//s_chan[ch].bNoise=0;\r
}\r