diff --git a/pcsx2/HwWrite.cpp b/pcsx2/HwWrite.cpp index e4286b8d26..30907ff6e8 100644 --- a/pcsx2/HwWrite.cpp +++ b/pcsx2/HwWrite.cpp @@ -121,17 +121,15 @@ tDMAC_QUEUE QueuedDMA(0); void hwWrite8(u32 mem, u8 value) { - if ((mem >= VIF0_STAT) && (mem < VIF0_FIFO)) + if ((mem >= VIF0_STAT) && (mem < VIF0_FIFO)) { + DevCon.WriteLn("vif write8!"); // Is this ever called? u32 bytemod = mem & 0x3; - u32 bitpos = 8 * bytemod; - u32 newval = psHu8(mem) & (255UL << bitpos); - - if (mem < VIF1_STAT) - vif0Write32( mem & ~0x3, newval | (value<>4) & 3] = value; + g_vifmask.Row0 [ (mem>>4)&3 ] = value; + ((u32*)&vif0Regs->r0)[((mem>>4)&3)*4] = value; break; case VIF0_C0: @@ -434,7 +435,8 @@ void vif0Write32(u32 mem, u32 value) case VIF0_C2: case VIF0_C3: pxAssume((mem&0xf) == 0); - g_vifmask.Col0[(mem>>4) & 3] = value; + g_vifmask.Col0 [ (mem>>4)&3 ] = value; + ((u32*)&vif0Regs->c0)[((mem>>4)&3)*4] = value; break; default: diff --git a/pcsx2/Vif1_Dma.cpp b/pcsx2/Vif1_Dma.cpp index 0b83f96a8a..ec5895b077 100644 --- a/pcsx2/Vif1_Dma.cpp +++ b/pcsx2/Vif1_Dma.cpp @@ -669,7 +669,8 @@ void vif1Write32(u32 mem, u32 value) case VIF1_R2: case VIF1_R3: pxAssume((mem&0xf) == 0); - g_vifmask.Row1[(mem>>4) & 3] = value; + g_vifmask.Row1 [ (mem>>4)&3 ] = value; + ((u32*)&vif1Regs->r0)[((mem>>4)&3)*4] = value; break; case VIF1_C0: @@ -677,7 +678,8 @@ void vif1Write32(u32 mem, u32 value) case VIF1_C2: case VIF1_C3: pxAssume((mem&0xf) == 0); - g_vifmask.Col1[(mem>>4) & 3] = value; + g_vifmask.Col1 [ (mem>>4)&3 ] = value; + ((u32*)&vif1Regs->c0)[((mem>>4)&3)*4] = value; break; default: