File ppsspp-PR16303.patch of Package ppsspp
diff --git a/GPU/GPUCommon.cpp b/GPU/GPUCommon.cpp
index be488a9..9dbe4fa 100644
--- a/GPU/GPUCommon.cpp
+++ b/GPU/GPUCommon.cpp
@@ -981,6 +981,9 @@ void GPUCommon::Execute_Call(u32 op, u32 diff) {
const u32 target = gstate_c.getRelativeAddress(op & 0x00FFFFFC);
if (!Memory::IsValidAddress(target)) {
ERROR_LOG(G3D, "CALL to illegal address %08x - ignoring! data=%06x", target, op & 0x00FFFFFF);
+ if (g_Config.bIgnoreBadMemAccess) {
+ return;
+ }
UpdateState(GPUSTATE_ERROR);
return;
}
diff --git a/GPU/Software/SoftGpu.cpp b/GPU/Software/SoftGpu.cpp
index a5cebc3..3e3b9e0 100644
--- a/GPU/Software/SoftGpu.cpp
+++ b/GPU/Software/SoftGpu.cpp
@@ -1211,6 +1211,9 @@ void SoftGPU::Execute_Call(u32 op, u32 diff) {
const u32 target = gstate_c.getRelativeAddress(op & 0x00FFFFFC);
if (!Memory::IsValidAddress(target)) {
ERROR_LOG(G3D, "CALL to illegal address %08x - ignoring! data=%06x", target, op & 0x00FFFFFF);
+ if (g_Config.bIgnoreBadMemAccess) {
+ return;
+ }
gpuState = GPUSTATE_ERROR;
downcount = 0;
return;