From 9d5ae2b336b5738cc010541b2d997b65f54b455a Mon Sep 17 00:00:00 2001 From: "Unknown W. Brackets" Date: Sun, 22 Feb 2015 19:11:11 -0800 Subject: [PATCH] For 5551 buffers, force stencil mask to 1/0. 4444 it would also be ideal to spread the bits, but that gets a bit complicated. 5650 probably doesn't matter. --- GPU/GLES/StateMapping.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/GPU/GLES/StateMapping.cpp b/GPU/GLES/StateMapping.cpp index 3c1e4008b8..374c196abc 100644 --- a/GPU/GLES/StateMapping.cpp +++ b/GPU/GLES/StateMapping.cpp @@ -693,7 +693,12 @@ void TransformDrawEngine::ApplyDrawState(int prim) { glstate.stencilOp.set(stencilOps[gstate.getStencilOpSFail()], // stencil fail stencilOps[gstate.getStencilOpZFail()], // depth fail stencilOps[gstate.getStencilOpZPass()]); // depth pass - glstate.stencilMask.set(~abits); + + if (gstate.FrameBufFormat() == GE_FORMAT_5551) { + glstate.stencilMask.set(abits <= 0x7f ? 0xff : 0x00); + } else { + glstate.stencilMask.set(~abits); + } } else { glstate.stencilTest.disable(); }