summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'plugins')
-rw-r--r--plugins/dfsound/adsr.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/plugins/dfsound/adsr.c b/plugins/dfsound/adsr.c
index 2d7eb3ae..8d353287 100644
--- a/plugins/dfsound/adsr.c
+++ b/plugins/dfsound/adsr.c
@@ -182,7 +182,9 @@ INLINE int MixADSR(int ch) // MIX ADSR
{
EnvelopeVol=0;
EnvelopeVol_f=0;
- s_chan[ch].bOn=0;
+ // don't stop if this chan can still cause irqs
+ if(!(spuCtrl&0x40) || (s_chan[ch].pCurr > pSpuIrq && s_chan[ch].pLoop > pSpuIrq))
+ s_chan[ch].bOn=0;
}