diff --git a/Source/Project64-core/N64System/Mips/Register.cpp b/Source/Project64-core/N64System/Mips/Register.cpp index 378b8cadc..3b10f0d0b 100644 --- a/Source/Project64-core/N64System/Mips/Register.cpp +++ b/Source/Project64-core/N64System/Mips/Register.cpp @@ -503,7 +503,7 @@ void CRegisters::DoAddressError(bool DelaySlot, uint64_t BadVaddr, bool FromRead BAD_VADDR_REGISTER = BadVaddr; CONTEXT_REGISTER.BadVPN2 = BadVaddr >> 13; XCONTEXT_REGISTER.BadVPN2 = BadVaddr >> 13; - XCONTEXT_REGISTER.R = BadVaddr >> 62; + XCONTEXT_REGISTER.R = BadVaddr >> 61; if (DelaySlot) { diff --git a/Source/Project64-core/N64System/Mips/Register.h b/Source/Project64-core/N64System/Mips/Register.h index 59388525f..0f31070ab 100644 --- a/Source/Project64-core/N64System/Mips/Register.h +++ b/Source/Project64-core/N64System/Mips/Register.h @@ -38,10 +38,10 @@ union COP0XContext struct { - unsigned : 4; - unsigned BadVPN2 : 27; - unsigned R : 2; - unsigned PTEBase : 31; + uint64_t : 4; + uint64_t BadVPN2 : 27; + uint64_t R : 2; + uint64_t PTEBase : 31; }; };