diff --git a/GPU/GLES/TransformPipeline.cpp b/GPU/GLES/TransformPipeline.cpp index 8510a14a91..ee95c08ab0 100644 --- a/GPU/GLES/TransformPipeline.cpp +++ b/GPU/GLES/TransformPipeline.cpp @@ -384,9 +384,9 @@ void TransformDrawEngine::SoftwareTransformAndDraw( c1[j] = 0.0f; } } else { - c0[0] = ((gstate.materialambient >> 16) & 0xFF) / 255.f; + c0[0] = (gstate.materialambient & 0xFF) / 255.f; c0[1] = ((gstate.materialambient >> 8) & 0xFF) / 255.f; - c0[2] = (gstate.materialambient & 0xFF) / 255.f; + c0[2] = ((gstate.materialambient >> 16) & 0xFF) / 255.f; c0[3] = (gstate.materialalpha & 0xFF) / 255.f; } @@ -443,9 +443,9 @@ void TransformDrawEngine::SoftwareTransformAndDraw( if (reader.hasColor0()) { reader.ReadColor0(unlitColor); } else { - unlitColor[0] = ((gstate.materialambient >> 16) & 0xFF) / 255.f; + unlitColor[0] = (gstate.materialambient & 0xFF) / 255.f; unlitColor[1] = ((gstate.materialambient >> 8) & 0xFF) / 255.f; - unlitColor[2] = (gstate.materialambient & 0xFF) / 255.f; + unlitColor[2] = ((gstate.materialambient >> 16) & 0xFF) / 255.f; unlitColor[3] = (gstate.materialalpha & 0xFF) / 255.f; } float litColor0[4]; @@ -474,8 +474,8 @@ void TransformDrawEngine::SoftwareTransformAndDraw( c1[j] = 0.0f; } } else { - c0[0] = ((gstate.materialambient >> 16) & 0xFF) / 255.f; - c0[1] = ((gstate.materialambient >> 8) & 0xFF) / 255.f; + c0[0] = ((gstate.materialambient >> 8) & 0xFF) / 255.f; + c0[1] = (gstate.materialambient & 0xFF) / 255.f; c0[2] = (gstate.materialambient & 0xFF) / 255.f; c0[3] = (gstate.materialalpha & 0xFF) / 255.f; } diff --git a/GPU/GLES/VertexShaderGenerator.cpp b/GPU/GLES/VertexShaderGenerator.cpp index 5444be8489..e30608bdd2 100644 --- a/GPU/GLES/VertexShaderGenerator.cpp +++ b/GPU/GLES/VertexShaderGenerator.cpp @@ -338,7 +338,7 @@ void GenerateVertexShader(int prim, char *buffer) { if (hasColor) { WRITE(p, " v_color0 = a_color0;\n"); } else { - WRITE(p, " v_color0 = u_matambientalpha;\n"); + WRITE(p, " v_color0 += vec4(u_matambientalpha.rgb, 0.0);\n"); } if (lmode) WRITE(p, " v_color1 = vec3(0.0, 0.0, 0.0);\n");