diff --git a/GPU/GLES/StateMapping.cpp b/GPU/GLES/StateMapping.cpp index af66ac6632..6bba537758 100644 --- a/GPU/GLES/StateMapping.cpp +++ b/GPU/GLES/StateMapping.cpp @@ -217,14 +217,14 @@ void TransformDrawEngine::ApplyDrawState(int prim) { } // At this point, through all paths above, glBlendFuncA and glBlendFuncB will be set right somehow. -#if 1 - // Fixes some Persona 2 issues, may be correct? (that is, don't change dest alpha at all if blending) - // If this doesn't break anything else, it's likely to be right. - // I guess an alternative solution would be to simply disable alpha writes if alpha blending is enabled. - glstate.blendFuncSeparate.set(glBlendFuncA, glBlendFuncB, GL_ZERO, GL_ONE); -#else - glstate.blendFuncSeparate.set(glBlendFuncA, glBlendFuncB, glBlendFuncA, glBlendFuncB); -#endif + if (!gstate.isStencilTestEnabled()) { + // Fixes some Persona 2 issues, may be correct? (that is, don't change dest alpha at all if blending) + // If this doesn't break anything else, it's likely to be right. + // I guess an alternative solution would be to simply disable alpha writes if alpha blending is enabled. + glstate.blendFuncSeparate.set(glBlendFuncA, glBlendFuncB, GL_ZERO, GL_ONE); + } else { + glstate.blendFuncSeparate.set(glBlendFuncA, glBlendFuncB, glBlendFuncA, glBlendFuncB); + } glstate.blendEquation.set(eqLookup[blendFuncEq]); }