diff options
author | notaz | 2011-07-27 20:06:46 +0300 |
---|---|---|
committer | notaz | 2011-07-27 20:06:46 +0300 |
commit | 3fc2a4c27be8c8cd5f8cf53a0d56c263275b8501 (patch) | |
tree | 97ebcaa96a02ada6290d632bfa9f3cc7f83dbb39 /plugins/dfsound/registers.c | |
parent | e11ae5c58194de196c57ba0a2107d6eec5c0394a (diff) | |
download | pcsx_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.c | 4 |
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:
|