From 01c84caffc2f031aff8ac70fe83a9a393a408d0f Mon Sep 17 00:00:00 2001 From: "Unknown W. Brackets" Date: Sat, 5 Oct 2013 14:03:16 -0700 Subject: [PATCH 1/2] Skip bounding box when set to 0. VectorTD does this, for example, and it seems innocent, just resetting all cmds. Not sure what it should set the flag to, though. --- GPU/GLES/GLES_GPU.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/GPU/GLES/GLES_GPU.cpp b/GPU/GLES/GLES_GPU.cpp index 23575d921c..07f4369084 100644 --- a/GPU/GLES/GLES_GPU.cpp +++ b/GPU/GLES/GLES_GPU.cpp @@ -824,6 +824,12 @@ void GLES_GPU::ExecuteOp(u32 op, u32 diff) { break; case GE_CMD_BOUNDINGBOX: + // Just resetting, nothing to bound. + if (data == 0) { + // TODO: Should this set the bboxResult? Let's set it true for now. + currentList->bboxResult = true; + break; + } if ((data % 8 == 0) && data < 64) { // Sanity check void *control_points = Memory::GetPointer(gstate_c.vertexAddr); if (gstate.vertType & GE_VTYPE_IDX_MASK) { From 32f2f045e4a555ebfc4f928ba77a71f016c2dd12 Mon Sep 17 00:00:00 2001 From: "Unknown W. Brackets" Date: Sat, 5 Oct 2013 14:24:05 -0700 Subject: [PATCH 2/2] Don't report a loadclut of 0. --- GPU/Software/SoftGpu.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/GPU/Software/SoftGpu.cpp b/GPU/Software/SoftGpu.cpp index e841bf04f1..038fbae46d 100644 --- a/GPU/Software/SoftGpu.cpp +++ b/GPU/Software/SoftGpu.cpp @@ -472,7 +472,8 @@ void SoftGPU::ExecuteOp(u32 op, u32 diff) if (Memory::IsValidAddress(clutAddr)) { Memory::MemcpyUnchecked(clut, clutAddr, clutTotalBytes); - } else { + // TODO: Do something to the CLUT with 0? + } else if (clutAddr != 0) { // TODO: Does this make any sense? ERROR_LOG_REPORT_ONCE(badClut, G3D, "Software: Invalid CLUT address, filling with garbage instead of crashing"); memset(clut, 0xFF, clutTotalBytes);