Fixed incorrect masking for sub-word writes.

master
Nabile Rahmani 2018-12-19 15:43:20 +01:00
parent 3cadb9a179
commit d2e3ddff14
1 changed files with 2 additions and 2 deletions

View File

@ -354,7 +354,7 @@ namespace DotN64.CPU
physicalAddress &= ~0b11u;
var shift = ((int)address & 0b11 ^ -(int)CP0.Config.BE) << 3;
WriteSysAD(physicalAddress, (ReadSysAD(physicalAddress) & ~(uint.MaxValue << shift)) | (uint)((byte)data << shift));
WriteSysAD(physicalAddress, (ReadSysAD(physicalAddress) & ~((uint)byte.MaxValue << shift)) | (uint)((byte)data << shift));
}
break;
case AccessSize.HalfWord:
@ -362,7 +362,7 @@ namespace DotN64.CPU
physicalAddress &= ~0b11u;
var shift = ((int)address & 0b11 ^ (-(int)CP0.Config.BE << 1)) << 3;
WriteSysAD(physicalAddress, (ReadSysAD(physicalAddress) & ~(uint.MaxValue << shift)) | (uint)((ushort)data << shift));
WriteSysAD(physicalAddress, (ReadSysAD(physicalAddress) & ~((uint)ushort.MaxValue << shift)) | (uint)((ushort)data << shift));
}
break;
case AccessSize.Word: