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;
openSUSE Build Service is sponsored by