spu: implement some more irq details
[pcsx_rearmed.git] / plugins / dfsound / registers.c
index 05968b6..5d79f25 100644 (file)
@@ -132,7 +132,7 @@ void CALLBACK SPUwriteRegister(unsigned long reg, unsigned short val,
    {\r
     //-------------------------------------------------//\r
     case H_SPUaddr:\r
-      spu.spuAddr = (unsigned long) val<<3;\r
+      spu.spuAddr = (unsigned int)val << 3;\r
       //check_irq_io(spu.spuAddr);\r
       break;\r
     //-------------------------------------------------//\r
@@ -144,8 +144,8 @@ void CALLBACK SPUwriteRegister(unsigned long reg, unsigned short val,
       break;\r
     //-------------------------------------------------//\r
     case H_SPUctrl:\r
+      spu.spuStat &= ~STAT_IRQ | val;\r
       if (!(spu.spuCtrl & CTRL_IRQ)) {\r
-        spu.spuStat&=~STAT_IRQ;\r
         if (val & CTRL_IRQ)\r
          schedule_next_irq();\r
       }\r
@@ -153,7 +153,7 @@ void CALLBACK SPUwriteRegister(unsigned long reg, unsigned short val,
       break;\r
     //-------------------------------------------------//\r
     case H_SPUstat:\r
-      spu.spuStat=val&0xf800;\r
+      //spu.spuStat=val&0xf800;\r
       break;\r
     //-------------------------------------------------//\r
     case H_SPUReverbAddr:\r