diff options
| author | SND\shalma_cp <SND\shalma_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2010-11-10 14:14:58 +0000 |
|---|---|---|
| committer | SND\shalma_cp <SND\shalma_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2010-11-10 14:14:58 +0000 |
| commit | 35c4162f34365f124d8fdf4aefbb639d8af11783 (patch) | |
| tree | ab2cc1c880447f0c0c782686e09194866ce25659 | |
| parent | 89129b1aa75ba71467082098e1819c98d883a40a (diff) | |
| download | pcsxr-35c4162f34365f124d8fdf4aefbb639d8af11783.tar.gz | |
V-Rally 2 - ir3000a.c
- force the clear dynarec memory for sb,sh,sw
- fix corrupted tree sprite (dynarec engine)
git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@59387 e17a0e51-4ae3-4d35-97c3-1a29b211df97
| -rw-r--r-- | libpcsxcore/ix86/iR3000A.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/libpcsxcore/ix86/iR3000A.c b/libpcsxcore/ix86/iR3000A.c index 42b7a09b..f803bd21 100644 --- a/libpcsxcore/ix86/iR3000A.c +++ b/libpcsxcore/ix86/iR3000A.c @@ -1755,7 +1755,9 @@ static void recSB() { if (IsConst(_Rs_)) { u32 addr = iRegs[_Rs_].k + _Imm_; int t = addr >> 16; - +
+#if 0
+ // V-Rally 2 - no tree sprite corruption if ((t & 0x1fe0) == 0 && (t & 0x1fff) != 0) { if (IsConst(_Rt_)) { MOV8ItoM((u32)&psxM[addr & 0x1fffff], (u8)iRegs[_Rt_].k); @@ -1764,7 +1766,8 @@ static void recSB() { MOV8RtoM((u32)&psxM[addr & 0x1fffff], EAX); } return; - } + }
+#endif if (t == 0x1f80 && addr < 0x1f801000) { if (IsConst(_Rt_)) { MOV8ItoM((u32)&psxH[addr & 0xfff], (u8)iRegs[_Rt_].k); @@ -1797,6 +1800,8 @@ static void recSH() { u32 addr = iRegs[_Rs_].k + _Imm_; int t = addr >> 16; +#if 0
+ // V-Rally 2 - no tree sprite corruption
if ((t & 0x1fe0) == 0 && (t & 0x1fff) != 0) { if (IsConst(_Rt_)) { MOV16ItoM((u32)&psxM[addr & 0x1fffff], (u16)iRegs[_Rt_].k); @@ -1805,7 +1810,8 @@ static void recSH() { MOV16RtoM((u32)&psxM[addr & 0x1fffff], EAX); } return; - } + }
+#endif if (t == 0x1f80 && addr < 0x1f801000) { if (IsConst(_Rt_)) { MOV16ItoM((u32)&psxH[addr & 0xfff], (u16)iRegs[_Rt_].k); @@ -1853,6 +1859,8 @@ static void recSW() { u32 addr = iRegs[_Rs_].k + _Imm_; int t = addr >> 16; +#if 0
+ // V-Rally 2 - no tree sprite corruption
if ((t & 0x1fe0) == 0 && (t & 0x1fff) != 0) { if (IsConst(_Rt_)) { MOV32ItoM((u32)&psxM[addr & 0x1fffff], iRegs[_Rt_].k); @@ -1861,7 +1869,8 @@ static void recSW() { MOV32RtoM((u32)&psxM[addr & 0x1fffff], EAX); } return; - } + }
+#endif if (t == 0x1f80 && addr < 0x1f801000) { if (IsConst(_Rt_)) { MOV32ItoM((u32)&psxH[addr & 0xfff], iRegs[_Rt_].k); |
