summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorSND\weimingzhi_cp <SND\weimingzhi_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2011-02-01 02:15:55 +0000
committerSND\weimingzhi_cp <SND\weimingzhi_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2011-02-01 02:15:55 +0000
commitf1da161879cfb46abd5680203cdc2ffad7870283 (patch)
tree6a7087f35c8ce2e4e9d38b2844be3cbea927e13b /plugins
parentad7c7d019ce039b9e9893ec94260f83edb581e6f (diff)
downloadpcsxr-f1da161879cfb46abd5680203cdc2ffad7870283.tar.gz
notaz:
- libpcsxcore: add handling for a branch in delay slot. This fixes explosion effect in Shadow Master. Interpreter only. (Patch #8233). - dfsound: don't stop a channel by adsr if we have potential irq. otherwise we miss irqs, causing lockups in Misadventures of Tron Bonne (Patch #8234). git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@62781 e17a0e51-4ae3-4d35-97c3-1a29b211df97
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;
}