From 917417eb0f14f645e3fb97c2dc612061a8af2dc5 Mon Sep 17 00:00:00 2001 From: Emmet Young Date: Sat, 29 Sep 2012 16:15:41 +1000 Subject: [PATCH] RSP: Set bitmasks for two calculations in RSP_SW_DMEM, to stop errors in Banjo Kazooie when in debug mode for RSP. (Was attempting to cast to a smaller data type, causing a loss of data) --- Source/RSP/memory.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/RSP/memory.c b/Source/RSP/memory.c index 8534cbb21..9b16b848c 100644 --- a/Source/RSP/memory.c +++ b/Source/RSP/memory.c @@ -537,8 +537,8 @@ void RSP_SW_DMEM ( DWORD Addr, DWORD Value ) { } *(BYTE *)(RSPInfo.DMEM + (Addr ^ 3)) = (BYTE)(Value >> 0x18); *(BYTE *)(RSPInfo.DMEM + ((Addr + 1) ^ 3)) = (BYTE)(Value >> 0x10); - *(BYTE *)(RSPInfo.DMEM + ((Addr + 2) ^ 3)) = (BYTE)(Value >> 0x8); - *(BYTE *)(RSPInfo.DMEM + ((Addr + 3) ^ 3)) = (BYTE)(Value); + *(BYTE *)(RSPInfo.DMEM + ((Addr + 2) ^ 3)) = (BYTE)(Value >> 0x8 &0xFF); + *(BYTE *)(RSPInfo.DMEM + ((Addr + 3) ^ 3)) = (BYTE)(Value &0xFF); return; } *(DWORD *)(RSPInfo.DMEM + Addr) = Value;