aboutsummaryrefslogtreecommitdiff
path: root/plugins/dfsound/registers.c
diff options
context:
space:
mode:
authornotaz2011-07-27 20:06:46 +0300
committernotaz2011-07-27 20:06:46 +0300
commit3fc2a4c27be8c8cd5f8cf53a0d56c263275b8501 (patch)
tree97ebcaa96a02ada6290d632bfa9f3cc7f83dbb39 /plugins/dfsound/registers.c
parente11ae5c58194de196c57ba0a2107d6eec5c0394a (diff)
downloadpcsx_rearmed-3fc2a4c27be8c8cd5f8cf53a0d56c263275b8501.tar.gz
pcsx_rearmed-3fc2a4c27be8c8cd5f8cf53a0d56c263275b8501.tar.bz2
pcsx_rearmed-3fc2a4c27be8c8cd5f8cf53a0d56c263275b8501.zip
spu: simplify irq and flag handling
shalma's recent work taken into account when working on this. NOT verified on read hardware.
Diffstat (limited to 'plugins/dfsound/registers.c')
-rw-r--r--plugins/dfsound/registers.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/plugins/dfsound/registers.c b/plugins/dfsound/registers.c
index c36c27e..ac495d6 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: