diff --git a/GPU/GLES/StateMapping.cpp b/GPU/GLES/StateMapping.cpp index 89d5059391..77b7b98a5d 100644 --- a/GPU/GLES/StateMapping.cpp +++ b/GPU/GLES/StateMapping.cpp @@ -701,7 +701,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(); }