To see your stuff show here, enable Compatibility Server Reports in PPSSPP.
Click on a version, game, or report message to show similar entries. Hover over version to see platform info, and hover over a game title to see region and version info.
Game title |
Version |
Latest Report |
Message |
eFootball PC - V. |
v1.6.3 |
2025-03-31 |
Error in shader program link: info: Link failed because of missing vertex shader.
fs: 00004000:00200022 Tex TexAlpha Fog Flat TFuncMod
#version 300 es
#extension GL_EXT_shader_framebuffer_fetch : require
precision lowp float;
uniform sampler2D tex;
flat in vec4 v_color0;
uniform vec3 u_fogcolor;
in mediump float v_fogdepth;
in mediump vec3 v_texcoord;
inout vec4 fragColor0;
void main() {
vec4 t = texture(tex, v_texcoord.xy);
vec4 p = v_color0;
vec4 v = p * t;
float fogCoef = clamp(v_fogdepth, 0.0, 1.0);
v = mix(vec4(u_fogcolor, v.a), v, fogCoef);
fragColor0 = v;
}
vs: 40000000:00000914 HWX T Fog Tex Flat
#version 300 es
precision highp float;
in vec3 position;
in vec2 texcoord;
uniform mat4 u_proj;
uniform mat4 u_world;
uniform mat4 u_view;
uniform vec4 u_uvscaleoffset;
uniform lowp vec4 u_matambientalpha;
uniform highp vec2 u_fogcoef;
flat out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
out mediump float v_fogdepth;
void main() {
vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz;
mediump vec3 worldnormal = vec3(0.0, 0.0, 1.0);
vec4 viewPos = u_view * vec4(worldpos, 1.0);
gl_Position = u_proj * viewPos;
v_color0 = u_matambientalpha;
v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0);
v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y;
}
|
eFootball Chelito 19 |
v1.12.2 |
2025-03-31 |
Error in shader program link: info: L0001 Invalid shader type loaded
fs: 00000000:0021d022 Tex TexAlpha Fog TFuncMod AlphaTest0 >
#version 320 es
#extension GL_ARM_shader_framebuffer_fetch : require
// Mali-T820 - GLSL 320
#define DISCARD discard
precision lowp float;
precision highp int;
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
uniform sampler2D tex;
uniform sampler2D testtex;
in lowp vec4 v_color0;
uniform vec3 u_fogcolor;
in mediump float v_fogdepth;
in mediump vec3 v_texcoord;
out vec4 fragColor0;
void main() {
vec4 t = texture(tex, v_texcoord.xy);
vec4 p = v_color0;
vec4 v = p * t;
float fogCoef = clamp(v_fogdepth, 0.0, 1.0);
v = mix(vec4(u_fogcolor, v.a), v, fogCoef);
if (v.a < 0.002) DISCARD;
fragColor0 = v;
}
vs: 00000000:00000034 Fog Tex Cull
#version 320 es
// Mali-T820 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
in vec4 position;
in vec2 texcoord;
in lowp vec4 color0;
uniform mat4 u_proj;
uniform highp vec2 u_fogcoef;
uniform highp vec4 u_cullRangeMin;
uniform highp vec4 u_cullRangeMax;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
out mediump float v_fogdepth;
void main() {
v_texcoord = vec3(texcoord, 1.0);
v_color0 = color0;
v_fogdepth = position.w;
vec4 outPos = mul(u_proj, vec4(position.xyz, 1.0));
vec3 projPos = outPos.xyz / outPos.w;
if (u_cullRangeMin.w <= 0.0 || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) {
if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) {
outPos.xyzw = u_cullRangeMax.wwww;
}
}
gl_Position = outPos;
}
|
eFootball Chelito 19 |
v1.12.2 |
2025-03-31 |
Error in shader program link: info: L0001 Invalid shader type loaded
fs: 00000000:00200002 Tex Fog TFuncMod
#version 320 es
#extension GL_ARM_shader_framebuffer_fetch : require
// Mali-T820 - GLSL 320
#define DISCARD discard
precision lowp float;
precision highp int;
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
uniform sampler2D tex;
in lowp vec4 v_color0;
uniform vec3 u_fogcolor;
in mediump float v_fogdepth;
in mediump vec3 v_texcoord;
out vec4 fragColor0;
void main() {
vec4 t = texture(tex, v_texcoord.xy);
vec4 p = v_color0;
vec4 v = vec4(t.rgb * p.rgb, p.a);
float fogCoef = clamp(v_fogdepth, 0.0, 1.0);
v = mix(vec4(u_fogcolor, v.a), v, fogCoef);
fragColor0 = v;
}
vs: 00000000:00000034 Fog Tex Cull
#version 320 es
// Mali-T820 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
in vec4 position;
in vec2 texcoord;
in lowp vec4 color0;
uniform mat4 u_proj;
uniform highp vec2 u_fogcoef;
uniform highp vec4 u_cullRangeMin;
uniform highp vec4 u_cullRangeMax;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
out mediump float v_fogdepth;
void main() {
v_texcoord = vec3(texcoord, 1.0);
v_color0 = color0;
v_fogdepth = position.w;
vec4 outPos = mul(u_proj, vec4(position.xyz, 1.0));
vec3 projPos = outPos.xyz / outPos.w;
if (u_cullRangeMin.w <= 0.0 || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) {
if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) {
outPos.xyzw = u_cullRangeMax.wwww;
}
}
gl_Position = outPos;
}
|
eFootball Chelito 19 |
v1.12.2 |
2025-03-31 |
Error in shader program link: info: L0001 Invalid shader type loaded
fs: 00000000:00200022 Tex TexAlpha Fog TFuncMod
#version 320 es
#extension GL_ARM_shader_framebuffer_fetch : require
// Mali-T820 - GLSL 320
#define DISCARD discard
precision lowp float;
precision highp int;
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
uniform sampler2D tex;
in lowp vec4 v_color0;
uniform vec3 u_fogcolor;
in mediump float v_fogdepth;
in mediump vec3 v_texcoord;
out vec4 fragColor0;
void main() {
vec4 t = texture(tex, v_texcoord.xy);
vec4 p = v_color0;
vec4 v = p * t;
float fogCoef = clamp(v_fogdepth, 0.0, 1.0);
v = mix(vec4(u_fogcolor, v.a), v, fogCoef);
fragColor0 = v;
}
vs: 00000000:0000003c C Fog Tex Cull
#version 320 es
// Mali-T820 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
in vec4 position;
in vec2 texcoord;
in lowp vec4 color0;
uniform mat4 u_proj;
uniform highp vec2 u_fogcoef;
uniform highp vec4 u_cullRangeMin;
uniform highp vec4 u_cullRangeMax;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
out mediump float v_fogdepth;
void main() {
v_texcoord = vec3(texcoord, 1.0);
v_color0 = color0;
v_fogdepth = position.w;
vec4 outPos = mul(u_proj, vec4(position.xyz, 1.0));
vec3 projPos = outPos.xyz / outPos.w;
if (u_cullRangeMin.w <= 0.0 || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) {
if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) {
outPos.xyzw = u_cullRangeMax.wwww;
}
}
gl_Position = outPos;
}
|
eFootball Chelito 19 |
v1.12.2 |
2025-03-31 |
Error in shader program link: info: L0001 Invalid shader type loaded
fs: 00000000:0021d002 Tex Fog TFuncMod AlphaTest0 >
#version 320 es
#extension GL_ARM_shader_framebuffer_fetch : require
// Mali-T820 - GLSL 320
#define DISCARD discard
precision lowp float;
precision highp int;
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
uniform sampler2D tex;
uniform sampler2D testtex;
in lowp vec4 v_color0;
uniform vec3 u_fogcolor;
in mediump float v_fogdepth;
in mediump vec3 v_texcoord;
out vec4 fragColor0;
void main() {
vec4 t = texture(tex, v_texcoord.xy);
vec4 p = v_color0;
vec4 v = vec4(t.rgb * p.rgb, p.a);
float fogCoef = clamp(v_fogdepth, 0.0, 1.0);
v = mix(vec4(u_fogcolor, v.a), v, fogCoef);
if (v.a < 0.002) DISCARD;
fragColor0 = v;
}
vs: 00000000:0000003c C Fog Tex Cull
#version 320 es
// Mali-T820 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
in vec4 position;
in vec2 texcoord;
in lowp vec4 color0;
uniform mat4 u_proj;
uniform highp vec2 u_fogcoef;
uniform highp vec4 u_cullRangeMin;
uniform highp vec4 u_cullRangeMax;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
out mediump float v_fogdepth;
void main() {
v_texcoord = vec3(texcoord, 1.0);
v_color0 = color0;
v_fogdepth = position.w;
vec4 outPos = mul(u_proj, vec4(position.xyz, 1.0));
vec3 projPos = outPos.xyz / outPos.w;
if (u_cullRangeMin.w <= 0.0 || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) {
if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) {
outPos.xyzw = u_cullRangeMax.wwww;
}
}
gl_Position = outPos;
}
|
eFootball Chelito 19 |
v1.12.2 |
2025-03-31 |
Error in shader program link: info: L0001 Invalid shader type loaded
fs: 00000000:0021d022 Tex TexAlpha Fog TFuncMod AlphaTest0 >
#version 320 es
#extension GL_ARM_shader_framebuffer_fetch : require
// Mali-T820 - GLSL 320
#define DISCARD discard
precision lowp float;
precision highp int;
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
uniform sampler2D tex;
uniform sampler2D testtex;
in lowp vec4 v_color0;
uniform vec3 u_fogcolor;
in mediump float v_fogdepth;
in mediump vec3 v_texcoord;
out vec4 fragColor0;
void main() {
vec4 t = texture(tex, v_texcoord.xy);
vec4 p = v_color0;
vec4 v = p * t;
float fogCoef = clamp(v_fogdepth, 0.0, 1.0);
v = mix(vec4(u_fogcolor, v.a), v, fogCoef);
if (v.a < 0.002) DISCARD;
fragColor0 = v;
}
vs: 00000000:0000003c C Fog Tex Cull
#version 320 es
// Mali-T820 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
in vec4 position;
in vec2 texcoord;
in lowp vec4 color0;
uniform mat4 u_proj;
uniform highp vec2 u_fogcoef;
uniform highp vec4 u_cullRangeMin;
uniform highp vec4 u_cullRangeMax;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
out mediump float v_fogdepth;
void main() {
v_texcoord = vec3(texcoord, 1.0);
v_color0 = color0;
v_fogdepth = position.w;
vec4 outPos = mul(u_proj, vec4(position.xyz, 1.0));
vec3 projPos = outPos.xyz / outPos.w;
if (u_cullRangeMin.w <= 0.0 || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) {
if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) {
outPos.xyzw = u_cullRangeMax.wwww;
}
}
gl_Position = outPos;
}
|
eFootball Chelito 19 |
v1.12.2 |
2025-03-31 |
Error in shader program link: info: L0001 Invalid shader type loaded
fs: 00000000:00200002 Tex Fog TFuncMod
#version 320 es
#extension GL_ARM_shader_framebuffer_fetch : require
// Mali-T820 - GLSL 320
#define DISCARD discard
precision lowp float;
precision highp int;
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
uniform sampler2D tex;
in lowp vec4 v_color0;
uniform vec3 u_fogcolor;
in mediump float v_fogdepth;
in mediump vec3 v_texcoord;
out vec4 fragColor0;
void main() {
vec4 t = texture(tex, v_texcoord.xy);
vec4 p = v_color0;
vec4 v = vec4(t.rgb * p.rgb, p.a);
float fogCoef = clamp(v_fogdepth, 0.0, 1.0);
v = mix(vec4(u_fogcolor, v.a), v, fogCoef);
fragColor0 = v;
}
vs: 00000000:0000003c C Fog Tex Cull
#version 320 es
// Mali-T820 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
in vec4 position;
in vec2 texcoord;
in lowp vec4 color0;
uniform mat4 u_proj;
uniform highp vec2 u_fogcoef;
uniform highp vec4 u_cullRangeMin;
uniform highp vec4 u_cullRangeMax;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
out mediump float v_fogdepth;
void main() {
v_texcoord = vec3(texcoord, 1.0);
v_color0 = color0;
v_fogdepth = position.w;
vec4 outPos = mul(u_proj, vec4(position.xyz, 1.0));
vec3 projPos = outPos.xyz / outPos.w;
if (u_cullRangeMin.w <= 0.0 || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) {
if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) {
outPos.xyzw = u_cullRangeMax.wwww;
}
}
gl_Position = outPos;
}
|
eFootball PC - V. |
v1.6.3 |
2025-03-31 |
Error in shader program link: info: Link Error: Vertex shader is missing.
fs: 00004000:00000002 Tex Flat TFuncMod
#version 300 es
#extension GL_EXT_shader_framebuffer_fetch : require
precision lowp float;
uniform sampler2D tex;
flat in vec4 v_color0;
in highp vec3 v_texcoord;
inout vec4 fragColor0;
void main() {
vec4 t = texture(tex, v_texcoord.xy);
vec4 p = v_color0;
vec4 v = vec4(t.rgb * p.rgb, p.a);
fragColor0 = v;
}
vs: 40000000:00000012 THR Tex Flat
#version 300 es
precision highp float;
in vec4 position;
in vec2 texcoord;
in lowp vec4 color0;
uniform mat4 u_proj_through;
flat out lowp vec4 v_color0;
out highp vec3 v_texcoord;
void main() {
v_texcoord = vec3(texcoord, 1.0);
v_color0 = color0;
gl_Position = u_proj_through * vec4(position.xyz, 1.0);
}
|
eFootball Play-C |
v1.6.3 |
2025-03-30 |
Error in shader program link: info: Link failed because of missing fragment shader.
fs: 00004000:0001d022 Tex TexAlpha Flat TFuncMod AlphaTest0 >
#version 300 es
#extension GL_ARM_shader_framebuffer_fetch : require
precision lowp float;
uniform sampler2D tex;
uniform sampler2D testtex;
flat in vec4 v_color0;
in mediump vec3 v_texcoord;
out vec4 fragColor0;
void main() {
vec4 t = texture(tex, v_texcoord.xy);
vec4 p = v_color0;
vec4 v = p * t;
if (v.a < 0.002) discard;
fragColor0 = v;
}
vs: 40000000:00000012 THR Tex Flat
#version 300 es
precision highp float;
in vec4 position;
in vec2 texcoord;
in lowp vec4 color0;
uniform mat4 u_proj_through;
flat out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
void main() {
v_texcoord = vec3(texcoord, 1.0);
v_color0 = color0;
gl_Position = u_proj_through * vec4(position.xyz, 1.0);
}
|
Grand Theft Auto: Vice City Stories |
v1.6.3 |
2025-03-30 |
Error in shader program link: info: Link Error: Vertex shader is missing.
Link Error: Fragment shader is missing.
fs: 00000000:00200002 Tex Fog TFuncMod
#version 300 es
#extension GL_EXT_shader_framebuffer_fetch : require
precision lowp float;
uniform sampler2D tex;
in vec4 v_color0;
uniform vec3 u_fogcolor;
in highp float v_fogdepth;
in highp vec3 v_texcoord;
inout vec4 fragColor0;
void main() {
vec4 t = texture(tex, v_texcoord.xy);
vec4 p = v_color0;
vec4 v = vec4(t.rgb * p.rgb, p.a);
float fogCoef = clamp(v_fogdepth, 0.0, 1.0);
v = mix(vec4(u_fogcolor, v.a), v, fogCoef);
fragColor0 = v;
}
vs: 00000000:00000914 HWX T Fog Tex
#version 300 es
precision highp float;
in vec3 position;
in vec2 texcoord;
uniform mat4 u_proj;
uniform mat4 u_world;
uniform mat4 u_view;
uniform vec4 u_uvscaleoffset;
uniform lowp vec4 u_matambientalpha;
uniform highp vec2 u_fogcoef;
out lowp vec4 v_color0;
out highp vec3 v_texcoord;
out highp float v_fogdepth;
void main() {
vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz;
mediump vec3 worldnormal = vec3(0.0, 0.0, 1.0);
vec4 viewPos = u_view * vec4(worldpos, 1.0);
gl_Position = u_proj * viewPos;
v_color0 = u_matambientalpha;
v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0);
v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y;
}
|
eFOOTBALL PES MERAH PUTIH CLASSIC LIGINA V1 MOD BY SY87 GAMERS |
v1.18.1 |
2025-03-30 |
Error in shader program link: info: Error: Uniform u_texelDelta precision mismatch with other stage.
Error: Linking failed.
fs: postshader
#version 320 es
precision mediump float;
precision highp int;
uniform vec2 u_texelDelta;
uniform vec2 u_pixelDelta;
layout(binding = 0) uniform mediump sampler2D sampler0;
uniform vec4 u_time;
in vec2 v_texcoord0;
out vec4 _RESERVED_IDENTIFIER_FIXUP_gl_FragColor;
in vec4 v_texcoordNC0;
in vec4 v_texcoordNC1;
in vec4 v_texcoordNC2;
in vec4 v_texcoordNC3;
mediump int SEPIA;
mediump int GRAYSCALE;
mediump int NEGATIVE;
mediump int PSPCOLORS;
bvec4 _and_(bvec4 A, bvec4 B)
{
return bvec4(A.x && B.x, A.y && B.y, A.z && B.z, A.w && B.w);
}
vec4 df(vec4 A, vec4 B)
{
return abs(A - B);
}
bvec4 close(vec4 A, vec4 B)
{
vec4 param = A;
vec4 param_1 = B;
return lessThan(df(param, param_1), vec4(15.0));
}
bvec4 _or_(bvec4 A, bvec4 B)
{
return bvec4(A.x || B.x, A.y || B.y, A.z || B.z, A.w || B.w);
}
vec4 weighted_distance(vec4 a, vec4 b, vec4 c, vec4 d, vec4 e, vec4 f, vec4 g, vec4 h)
{
vec4 param = a;
vec4 param_1 = b;
vec4 param_2 = a;
vec4 param_3 = c;
vec4 param_4 = d;
vec4 param_5 = e;
vec4 param_6 = d;
vec4 param_7 = f;
vec4 param_8 = g;
vec4 param_9 = h;
return (((df(param, param_1) + df(param_2, param_3)) + df(param_4, param_5)) + df(param_6, param_7)) + (df(param_8, param_9) * 4.0);
}
vec3 processxBR(vec3 color)
{
vec2 pS = vec2(1.0) / u_texelDelta;
vec2 fp = fract(v_texcoord0 * pS);
vec2 TexCoord_0 = v_texcoord0 - (fp * u_pixelDelta);
vec2 dx = vec2(u_texelDelta.x, 0.0);
vec2 dy = vec2(0.0, u_texelDelta.y);
vec2 y2 = dy + dy;
vec2 x2 = dx + dx;
vec3 A = texture(sampler0, (TexCoord_0 - dx) - dy).xyz;
vec3 B = texture(sampler0, TexCoord_0 - dy).xyz;
vec3 C = texture(sampler0, (TexCoord_0 + dx) - dy).xyz;
vec3 D = texture(sampler0, TexCoord_0 - dx).xyz;
vec3 E = texture(sampler0, TexCoord_0).xyz;
vec3 F = texture(sampler0, TexCoord_0 + dx).xyz;
vec3 G = texture(sampler0, (TexCoord_0 - dx) + dy).xyz;
vec3 H = texture(sampler0, TexCoord_0 + dy).xyz;
vec3 I = texture(sampler0, (TexCoord_0 + dx) + dy).xyz;
vec3 A1 = texture(sampler0, (TexCoord_0 - dx) - y2).xyz;
vec3 C1 = texture(sampler0, (TexCoord_0 + dx) - y2).xyz;
vec3 A0 = texture(sampler0, (TexCoord_0 - x2) - dy).xyz;
vec3 G0 = texture(sampler0, (TexCoord_0 - x2) + dy).xyz;
vec3 C4 = texture(sampler0, (TexCoord_0 + x2) - dy).xyz;
vec3 I4 = texture(sampler0, (TexCoord_0 + x2) + dy).xyz;
vec3 G5 = texture(sampler0, (TexCoord_0 - dx) + y2).xyz;
vec3 I5 = texture(sampler0, (TexCoord_0 + dx) + y2).xyz;
vec3 B1 = texture(sampler0, TexCoord_0 - y2).xyz;
vec3 D0 = texture(sampler0, TexCoord_0 - x2).xyz;
vec3 H5 = texture(sampler0, TexCoord_0 + y2).xyz;
vec3 F4 = texture(sampler0, TexCoord_0 + x2).xyz;
vec4 b = vec4(dot(B, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)), dot(D, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)), dot(H, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)), dot(F, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)));
vec4 c = vec4(dot(C, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)), dot(A, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)), dot(G, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)), dot(I, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)));
vec4 d = vec4(b.y, b.z, b.w, b.x);
vec4 e = vec4(dot(E, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)));
vec4 f = vec4(b.w, b.x, b.y, b.z);
vec4 g = vec4(c.z, c.w, c.x, c.y);
vec4 h = vec4(b.z, b.w, b.x, b.y);
vec4 i = vec4(c.w, c.x, c.y, c.z);
vec4 i4 = vec4(dot(I4, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)), dot(C1, vec3(16.1630001068115234375, 23.3509998321533203125, 8.4771995544 |
eFootball PC - V. |
v1.6.3 |
2025-03-29 |
Error in shader program link: info: Link Error: Vertex shader is missing.
fs: 00004000:0001d000 Flat AlphaTest0 >
#version 300 es
#extension GL_EXT_shader_framebuffer_fetch : require
precision lowp float;
uniform sampler2D testtex;
flat in vec4 v_color0;
inout vec4 fragColor0;
void main() {
vec4 v = v_color0 ;
if (v.a < 0.002) discard;
fragColor0 = v;
}
vs: 40000000:00000002 THR Flat
#version 300 es
precision highp float;
in vec4 position;
in lowp vec4 color0;
uniform mat4 u_proj_through;
flat out lowp vec4 v_color0;
void main() {
v_color0 = color0;
gl_Position = u_proj_through * vec4(position.xyz, 1.0);
}
|
eFootball SM - V. |
v1.6.3 |
2025-03-29 |
Error in shader program link: info: Link failed because of missing vertex shader.
fs: 00000000:0021d002 Tex Fog TFuncMod AlphaTest0 >
#version 300 es
#extension GL_ARM_shader_framebuffer_fetch : require
precision lowp float;
uniform sampler2D tex;
uniform sampler2D testtex;
in vec4 v_color0;
uniform vec3 u_fogcolor;
in mediump float v_fogdepth;
in mediump vec3 v_texcoord;
out vec4 fragColor0;
void main() {
vec4 t = texture(tex, v_texcoord.xy);
vec4 p = v_color0;
vec4 v = vec4(t.rgb * p.rgb, p.a);
if (v.a < 0.002) discard;
float fogCoef = clamp(v_fogdepth, 0.0, 1.0);
v = mix(vec4(u_fogcolor, v.a), v, fogCoef);
fragColor0 = v;
}
vs: 00000000:0000091c HWX C T Fog Tex
#version 300 es
precision highp float;
in vec3 position;
in vec2 texcoord;
in lowp vec4 color0;
uniform mat4 u_proj;
uniform mat4 u_world;
uniform mat4 u_view;
uniform vec4 u_uvscaleoffset;
uniform lowp vec4 u_matambientalpha;
uniform highp vec2 u_fogcoef;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
out mediump float v_fogdepth;
void main() {
vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz;
mediump vec3 worldnormal = vec3(0.0, 0.0, 1.0);
vec4 viewPos = u_view * vec4(worldpos, 1.0);
gl_Position = u_proj * viewPos;
v_color0 = color0;
v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0);
v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y;
}
|
Def Jam® Fight For NY™: The Takeover |
v1.17.1-334-g1786a4ddb |
2025-03-29 |
Error in shader program link: info: Error: Uniform u_texelDelta precision mismatch with other stage.
Error: Linking failed.
fs: postshader
#version 320 es
precision mediump float;
precision highp int;
uniform vec2 u_texelDelta;
uniform vec2 u_pixelDelta;
layout(binding = 0) uniform mediump sampler2D sampler0;
uniform vec4 u_time;
in vec2 v_texcoord0;
out vec4 _RESERVED_IDENTIFIER_FIXUP_gl_FragColor;
in vec4 v_texcoordNC0;
in vec4 v_texcoordNC1;
in vec4 v_texcoordNC2;
in vec4 v_texcoordNC3;
mediump int SEPIA;
mediump int GRAYSCALE;
mediump int NEGATIVE;
mediump int PSPCOLORS;
bvec4 _and_(bvec4 A, bvec4 B)
{
return bvec4(A.x && B.x, A.y && B.y, A.z && B.z, A.w && B.w);
}
vec4 df(vec4 A, vec4 B)
{
return abs(A - B);
}
bvec4 close(vec4 A, vec4 B)
{
vec4 param = A;
vec4 param_1 = B;
return lessThan(df(param, param_1), vec4(15.0));
}
bvec4 _or_(bvec4 A, bvec4 B)
{
return bvec4(A.x || B.x, A.y || B.y, A.z || B.z, A.w || B.w);
}
vec4 weighted_distance(vec4 a, vec4 b, vec4 c, vec4 d, vec4 e, vec4 f, vec4 g, vec4 h)
{
vec4 param = a;
vec4 param_1 = b;
vec4 param_2 = a;
vec4 param_3 = c;
vec4 param_4 = d;
vec4 param_5 = e;
vec4 param_6 = d;
vec4 param_7 = f;
vec4 param_8 = g;
vec4 param_9 = h;
return (((df(param, param_1) + df(param_2, param_3)) + df(param_4, param_5)) + df(param_6, param_7)) + (df(param_8, param_9) * 4.0);
}
vec3 processxBR(vec3 color)
{
vec2 pS = vec2(1.0) / u_texelDelta;
vec2 fp = fract(v_texcoord0 * pS);
vec2 TexCoord_0 = v_texcoord0 - (fp * u_pixelDelta);
vec2 dx = vec2(u_texelDelta.x, 0.0);
vec2 dy = vec2(0.0, u_texelDelta.y);
vec2 y2 = dy + dy;
vec2 x2 = dx + dx;
vec3 A = texture(sampler0, (TexCoord_0 - dx) - dy).xyz;
vec3 B = texture(sampler0, TexCoord_0 - dy).xyz;
vec3 C = texture(sampler0, (TexCoord_0 + dx) - dy).xyz;
vec3 D = texture(sampler0, TexCoord_0 - dx).xyz;
vec3 E = texture(sampler0, TexCoord_0).xyz;
vec3 F = texture(sampler0, TexCoord_0 + dx).xyz;
vec3 G = texture(sampler0, (TexCoord_0 - dx) + dy).xyz;
vec3 H = texture(sampler0, TexCoord_0 + dy).xyz;
vec3 I = texture(sampler0, (TexCoord_0 + dx) + dy).xyz;
vec3 A1 = texture(sampler0, (TexCoord_0 - dx) - y2).xyz;
vec3 C1 = texture(sampler0, (TexCoord_0 + dx) - y2).xyz;
vec3 A0 = texture(sampler0, (TexCoord_0 - x2) - dy).xyz;
vec3 G0 = texture(sampler0, (TexCoord_0 - x2) + dy).xyz;
vec3 C4 = texture(sampler0, (TexCoord_0 + x2) - dy).xyz;
vec3 I4 = texture(sampler0, (TexCoord_0 + x2) + dy).xyz;
vec3 G5 = texture(sampler0, (TexCoord_0 - dx) + y2).xyz;
vec3 I5 = texture(sampler0, (TexCoord_0 + dx) + y2).xyz;
vec3 B1 = texture(sampler0, TexCoord_0 - y2).xyz;
vec3 D0 = texture(sampler0, TexCoord_0 - x2).xyz;
vec3 H5 = texture(sampler0, TexCoord_0 + y2).xyz;
vec3 F4 = texture(sampler0, TexCoord_0 + x2).xyz;
vec4 b = vec4(dot(B, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)), dot(D, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)), dot(H, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)), dot(F, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)));
vec4 c = vec4(dot(C, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)), dot(A, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)), dot(G, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)), dot(I, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)));
vec4 d = vec4(b.y, b.z, b.w, b.x);
vec4 e = vec4(dot(E, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)));
vec4 f = vec4(b.w, b.x, b.y, b.z);
vec4 g = vec4(c.z, c.w, c.x, c.y);
vec4 h = vec4(b.z, b.w, b.x, b.y);
vec4 i = vec4(c.w, c.x, c.y, c.z);
vec4 i4 = vec4(dot(I4, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)), dot(C1, vec3(16.1630001068115234375, 23.3509998321533203125, 8.4771995544 |
FIFA 13 |
v1.6.3 |
2025-03-28 |
Error in shader program link: info: Link failed because of missing vertex shader.
fs: 00000000:00000002 Tex TFuncMod
#version 300 es
#extension GL_ARM_shader_framebuffer_fetch : require
precision lowp float;
uniform sampler2D tex;
in vec4 v_color0;
in mediump vec3 v_texcoord;
out vec4 fragColor0;
void main() {
vec4 t = texture(tex, v_texcoord.xy);
vec4 p = v_color0;
vec4 v = vec4(t.rgb * p.rgb, p.a);
fragColor0 = v;
}
vs: 00000000:00010150 HWX Tex TexProjPos UVMtx
#version 300 es
precision highp float;
in vec3 position;
uniform mat4 u_proj;
uniform mat4 u_world;
uniform mat4 u_view;
uniform mediump mat4 u_texmtx;
uniform vec4 u_uvscaleoffset;
uniform lowp vec4 u_matambientalpha;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
void main() {
vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz;
mediump vec3 worldnormal = vec3(0.0, 0.0, 1.0);
vec4 viewPos = u_view * vec4(worldpos, 1.0);
gl_Position = u_proj * viewPos;
v_color0 = u_matambientalpha;
v_texcoord = (u_texmtx * vec4(position.xyz, 1.0)).xyz * vec3(u_uvscaleoffset.xy, 1.0);
}
|
FIFA 13 |
v1.6.3 |
2025-03-28 |
Error in shader program link: info: Link failed because of missing fragment shader.
fs: 00000000:00000022 Tex TexAlpha TFuncMod
#version 300 es
#extension GL_ARM_shader_framebuffer_fetch : require
precision lowp float;
uniform sampler2D tex;
in vec4 v_color0;
in mediump vec3 v_texcoord;
out vec4 fragColor0;
void main() {
vec4 t = texture(tex, v_texcoord.xy);
vec4 p = v_color0;
vec4 v = p * t;
fragColor0 = v;
}
vs: 00000000:0000001a THR C Tex
#version 300 es
precision highp float;
in vec4 position;
in vec2 texcoord;
in lowp vec4 color0;
uniform mat4 u_proj_through;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
void main() {
v_texcoord = vec3(texcoord, 1.0);
v_color0 = color0;
gl_Position = u_proj_through * vec4(position.xyz, 1.0);
}
|
FIFA 13 |
v1.6.3 |
2025-03-28 |
Error in shader program link: info: Link failed because of missing vertex shader.
fs: 00000000:00000000
#version 300 es
#extension GL_ARM_shader_framebuffer_fetch : require
precision lowp float;
in vec4 v_color0;
out vec4 fragColor0;
void main() {
vec4 v = v_color0 ;
fragColor0 = v;
}
vs: 00000000:0000000a THR C
#version 300 es
precision highp float;
in vec4 position;
in lowp vec4 color0;
uniform mat4 u_proj_through;
out lowp vec4 v_color0;
void main() {
v_color0 = color0;
gl_Position = u_proj_through * vec4(position.xyz, 1.0);
}
|
eFootball PC - V. |
v1.6.3-432-gfd6c3145d |
2025-03-28 |
Error in shader program link: info: L0100 GLSL allows exactly two attached shaders (one of each type) per program
fs: 00004000:00200022 Tex TexAlpha Fog Flat TFuncMod
#version 100
precision lowp float;
uniform sampler2D tex;
varying vec4 v_color0;
uniform vec3 u_fogcolor;
varying mediump float v_fogdepth;
varying mediump vec3 v_texcoord;
void main() {
vec4 t = texture2D(tex, v_texcoord.xy);
vec4 p = v_color0;
vec4 v = p * t;
float fogCoef = clamp(v_fogdepth, 0.0, 1.0);
v = mix(vec4(u_fogcolor, v.a), v, fogCoef);
gl_FragColor = v;
}
vs: 40000000:00000914 HWX T Fog Tex Flat
#version 100
precision highp float;
attribute vec3 position;
attribute vec2 texcoord;
uniform mat4 u_proj;
uniform mat4 u_world;
uniform mat4 u_view;
uniform vec4 u_uvscaleoffset;
uniform lowp vec4 u_matambientalpha;
uniform highp vec2 u_fogcoef;
varying lowp vec4 v_color0;
varying mediump vec3 v_texcoord;
varying mediump float v_fogdepth;
void main() {
vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz;
mediump vec3 worldnormal = vec3(0.0, 0.0, 1.0);
vec4 viewPos = u_view * vec4(worldpos, 1.0);
gl_Position = u_proj * viewPos;
v_color0 = u_matambientalpha;
v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0);
v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y;
}
|
eFootball PC - V. |
v1.6.3-432-gfd6c3145d |
2025-03-28 |
Error in shader program link: info: L0100 GLSL allows exactly two attached shaders (one of each type) per program
fs: 00000000:00200022 Tex TexAlpha Fog TFuncMod
#version 100
precision lowp float;
uniform sampler2D tex;
varying vec4 v_color0;
uniform vec3 u_fogcolor;
varying mediump float v_fogdepth;
varying mediump vec3 v_texcoord;
void main() {
vec4 t = texture2D(tex, v_texcoord.xy);
vec4 p = v_color0;
vec4 v = p * t;
float fogCoef = clamp(v_fogdepth, 0.0, 1.0);
v = mix(vec4(u_fogcolor, v.a), v, fogCoef);
gl_FragColor = v;
}
vs: 00000000:0000091c HWX C T Fog Tex
#version 100
precision highp float;
attribute vec3 position;
attribute vec2 texcoord;
attribute lowp vec4 color0;
uniform mat4 u_proj;
uniform mat4 u_world;
uniform mat4 u_view;
uniform vec4 u_uvscaleoffset;
uniform lowp vec4 u_matambientalpha;
uniform highp vec2 u_fogcoef;
varying lowp vec4 v_color0;
varying mediump vec3 v_texcoord;
varying mediump float v_fogdepth;
void main() {
vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz;
mediump vec3 worldnormal = vec3(0.0, 0.0, 1.0);
vec4 viewPos = u_view * vec4(worldpos, 1.0);
gl_Position = u_proj * viewPos;
v_color0 = color0;
v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0);
v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y;
}
|
GTA: Liberty City Stories |
v1.6.3 |
2025-03-28 |
Error in shader program link: info: Link Error: Fragment shader is missing.
fs: 00000000:00200800 LM Fog
#version 300 es
#extension GL_EXT_shader_framebuffer_fetch : require
precision lowp float;
in vec4 v_color0;
in vec3 v_color1;
uniform vec3 u_fogcolor;
in highp float v_fogdepth;
inout vec4 fragColor0;
void main() {
vec4 s = vec4(v_color1, 0.0);
vec4 v = v_color0 + s;
float fogCoef = clamp(v_fogdepth, 0.0, 1.0);
v = mix(vec4(u_fogcolor, v.a), v, fogCoef);
fragColor0 = v;
}
vs: 01070000:00000305 HWX N LM Fog Light: MatUp:7
#version 300 es
precision highp float;
in vec3 position;
in mediump vec3 normal;
uniform mat4 u_proj;
uniform mat4 u_world;
uniform mat4 u_view;
uniform lowp vec4 u_ambient;
uniform lowp vec3 u_matdiffuse;
uniform lowp vec4 u_matspecular;
uniform lowp vec3 u_matemissive;
uniform lowp vec4 u_matambientalpha;
uniform highp vec2 u_fogcoef;
out lowp vec4 v_color0;
out lowp vec3 v_color1;
out highp float v_fogdepth;
void main() {
vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz;
mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz);
vec4 viewPos = u_view * vec4(worldpos, 1.0);
gl_Position = u_proj * viewPos;
lowp vec4 lightSum0 = u_ambient * u_matambientalpha + vec4(u_matemissive, 0.0);
mediump float ldot;
v_color0 = clamp(lightSum0, 0.0, 1.0);
v_color1 = vec3(0.0);
v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y;
}
|
eFootball PC - V. |
v1.6.2 |
2025-03-27 |
Error in shader program link: info: Link failed because of missing shader.
fs: 00004000:00000000 Flat
#version 300 es
#extension GL_ARM_shader_framebuffer_fetch : require
precision lowp float;
flat in vec4 v_color0;
out vec4 fragColor0;
void main() {
vec4 v = v_color0 ;
fragColor0 = v;
}
vs: 40000000:00000002 THR Flat
#version 300 es
precision highp float;
in vec4 position;
in lowp vec4 color0;
uniform mat4 u_proj_through;
flat out lowp vec4 v_color0;
void main() {
v_color0 = color0;
gl_Position = u_proj_through * vec4(position.xyz, 1.0);
}
|
eFootball Euro y Copa America By T. Bendezu |
v1.18.1 |
2025-03-25 |
Error in shader program link: info: Variable u_texelDelta has unmatched precision qualifier in different shaders
fs: postshader
#version 320 es
precision mediump float;
precision highp int;
uniform vec2 u_texelDelta;
uniform vec2 u_pixelDelta;
layout(binding = 0) uniform mediump sampler2D sampler0;
uniform vec4 u_time;
in vec2 v_texcoord0;
out vec4 _RESERVED_IDENTIFIER_FIXUP_gl_FragColor;
in vec4 v_texcoordNC0;
in vec4 v_texcoordNC1;
in vec4 v_texcoordNC2;
in vec4 v_texcoordNC3;
mediump int SEPIA;
mediump int GRAYSCALE;
mediump int NEGATIVE;
mediump int PSPCOLORS;
bvec4 _and_(bvec4 A, bvec4 B)
{
return bvec4(A.x && B.x, A.y && B.y, A.z && B.z, A.w && B.w);
}
vec4 df(vec4 A, vec4 B)
{
return abs(A - B);
}
bvec4 close(vec4 A, vec4 B)
{
vec4 param = A;
vec4 param_1 = B;
return lessThan(df(param, param_1), vec4(15.0));
}
bvec4 _or_(bvec4 A, bvec4 B)
{
return bvec4(A.x || B.x, A.y || B.y, A.z || B.z, A.w || B.w);
}
vec4 weighted_distance(vec4 a, vec4 b, vec4 c, vec4 d, vec4 e, vec4 f, vec4 g, vec4 h)
{
vec4 param = a;
vec4 param_1 = b;
vec4 param_2 = a;
vec4 param_3 = c;
vec4 param_4 = d;
vec4 param_5 = e;
vec4 param_6 = d;
vec4 param_7 = f;
vec4 param_8 = g;
vec4 param_9 = h;
return (((df(param, param_1) + df(param_2, param_3)) + df(param_4, param_5)) + df(param_6, param_7)) + (df(param_8, param_9) * 4.0);
}
vec3 processxBR(vec3 color)
{
vec2 pS = vec2(1.0) / u_texelDelta;
vec2 fp = fract(v_texcoord0 * pS);
vec2 TexCoord_0 = v_texcoord0 - (fp * u_pixelDelta);
vec2 dx = vec2(u_texelDelta.x, 0.0);
vec2 dy = vec2(0.0, u_texelDelta.y);
vec2 y2 = dy + dy;
vec2 x2 = dx + dx;
vec3 A = texture(sampler0, (TexCoord_0 - dx) - dy).xyz;
vec3 B = texture(sampler0, TexCoord_0 - dy).xyz;
vec3 C = texture(sampler0, (TexCoord_0 + dx) - dy).xyz;
vec3 D = texture(sampler0, TexCoord_0 - dx).xyz;
vec3 E = texture(sampler0, TexCoord_0).xyz;
vec3 F = texture(sampler0, TexCoord_0 + dx).xyz;
vec3 G = texture(sampler0, (TexCoord_0 - dx) + dy).xyz;
vec3 H = texture(sampler0, TexCoord_0 + dy).xyz;
vec3 I = texture(sampler0, (TexCoord_0 + dx) + dy).xyz;
vec3 A1 = texture(sampler0, (TexCoord_0 - dx) - y2).xyz;
vec3 C1 = texture(sampler0, (TexCoord_0 + dx) - y2).xyz;
vec3 A0 = texture(sampler0, (TexCoord_0 - x2) - dy).xyz;
vec3 G0 = texture(sampler0, (TexCoord_0 - x2) + dy).xyz;
vec3 C4 = texture(sampler0, (TexCoord_0 + x2) - dy).xyz;
vec3 I4 = texture(sampler0, (TexCoord_0 + x2) + dy).xyz;
vec3 G5 = texture(sampler0, (TexCoord_0 - dx) + y2).xyz;
vec3 I5 = texture(sampler0, (TexCoord_0 + dx) + y2).xyz;
vec3 B1 = texture(sampler0, TexCoord_0 - y2).xyz;
vec3 D0 = texture(sampler0, TexCoord_0 - x2).xyz;
vec3 H5 = texture(sampler0, TexCoord_0 + y2).xyz;
vec3 F4 = texture(sampler0, TexCoord_0 + x2).xyz;
vec4 b = vec4(dot(B, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)), dot(D, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)), dot(H, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)), dot(F, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)));
vec4 c = vec4(dot(C, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)), dot(A, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)), dot(G, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)), dot(I, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)));
vec4 d = vec4(b.y, b.z, b.w, b.x);
vec4 e = vec4(dot(E, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)));
vec4 f = vec4(b.w, b.x, b.y, b.z);
vec4 g = vec4(c.z, c.w, c.x, c.y);
vec4 h = vec4(b.z, b.w, b.x, b.y);
vec4 i = vec4(c.w, c.x, c.y, c.z);
vec4 i4 = vec4(dot(I4, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)), dot(C1, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)) |
Grand Theft Auto®: Chinatown Wars™ |
v1.7.5 |
2025-03-25 |
Error in shader program link: info: L0101 All attached shaders must be compiled prior to linking
fs: 00000000:0020d822 Tex TexAlpha LM Fog TFuncMod AlphaTest >
#version 100
precision lowp float;
uniform sampler2D tex;
uniform sampler2D testtex;
varying vec4 v_color0;
varying vec3 v_color1;
uniform vec3 u_fogcolor;
varying mediump float v_fogdepth;
varying mediump vec3 v_texcoord;
void main() {
vec4 s = vec4(v_color1, 0.0);
vec4 t = texture2D(tex, v_texcoord.xy);
vec4 p = v_color0;
vec4 v = p * t + s;
float fogCoef = clamp(v_fogdepth, 0.0, 1.0);
v = mix(vec4(u_fogcolor, v.a), v, fogCoef);
float aResult = texture2D(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a;
if (aResult < 0.5) discard;
gl_FragColor = v;
}
vs: 01f31591:00000915 HWX T LM Fog Tex Light: 0: c:1 t:0 1: c:1 t:2 2: c:1 t:1 3: c:1 t:0 MatUp:3 (failed)
#version 100
precision highp float;
attribute vec3 position;
attribute vec2 texcoord;
uniform mat4 u_proj;
uniform mat4 u_world;
uniform mat4 u_view;
uniform vec4 u_uvscaleoffset;
uniform vec3 u_lightpos0;
uniform lowp vec3 u_lightambient0;
uniform lowp vec3 u_lightdiffuse0;
uniform lowp vec3 u_lightspecular0;
uniform vec3 u_lightpos1;
uniform mediump vec3 u_lightatt1;
uniform mediump vec3 u_lightdir1;
uniform mediump vec2 u_lightangle_spotCoef1;
uniform lowp vec3 u_lightambient1;
uniform lowp vec3 u_lightdiffuse1;
uniform lowp vec3 u_lightspecular1;
uniform vec3 u_lightpos2;
uniform mediump vec3 u_lightatt2;
uniform lowp vec3 u_lightambient2;
uniform lowp vec3 u_lightdiffuse2;
uniform lowp vec3 u_lightspecular2;
uniform vec3 u_lightpos3;
uniform lowp vec3 u_lightambient3;
uniform lowp vec3 u_lightdiffuse3;
uniform lowp vec3 u_lightspecular3;
uniform lowp vec4 u_ambient;
uniform lowp vec3 u_matdiffuse;
uniform lowp vec4 u_matspecular;
uniform lowp vec3 u_matemissive;
uniform lowp vec4 u_matambientalpha;
uniform highp vec2 u_fogcoef;
uniform highp vec4 u_cullRangeMin;
uniform highp vec4 u_cullRangeMax;
varying lowp vec4 v_color0;
varying lowp vec3 v_color1;
varying mediump vec3 v_texcoord;
varying mediump float v_fogdepth;
void main() {
vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz;
mediump vec3 worldnormal = vec3(0.0, 0.0, 1.0);
vec4 viewPos = u_view * vec4(worldpos, 1.0);
vec4 outPos = u_proj * viewPos;
lowp vec4 lightSum0 = u_ambient * u_matambientalpha + vec4(u_matemissive, 0.0);
lowp vec3 lightSum1 = vec3(0.0);
vec3 toLight;
lowp vec3 diffuse;
float distance;
lowp float lightScale;
mediump float ldot;
lowp float angle;
toLight = u_lightpos0;
ldot = max(dot(toLight, worldnormal), 0.0);
diffuse = (u_lightdiffuse0 * u_matdiffuse) * ldot;
ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal);
if (ldot > 0.0)
lightSum1 += u_lightspecular0 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) );
lightSum0.rgb += (u_lightambient0 * u_matambientalpha.rgb + diffuse);
toLight = u_lightpos1 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = max(dot(toLight, worldnormal), 0.0);
angle = dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0) * pow(angle, u_lightangle_spotCoef1.y);
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse1 * u_matdiffuse) * ldot;
ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal);
if (ldot > 0.0)
lightSum1 += u_lightspecular1 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) * lightScale);
lightSum0.rgb += (u_lightambient1 * u_matambientalpha.rgb + diffuse) * lightScale;
toLight = u_lightpos2 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = max(dot(toLight, worldnormal), 0.0);
lightScale = clamp(1.0 / dot(u_lightatt2, vec3(1.0, distance, distance*distance)), 0.0, 1.0);
diffuse = (u_lightdiffuse2 * u_matdiffuse) * ldot;
ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal);
if (ldot > 0.0)
lightSum1 += u_lightspecular2 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) * lightScale) |
Grand Theft Auto®: Chinatown Wars™ |
v1.7.5 |
2025-03-26 |
Error in shader program link: info: L0101 All attached shaders must be compiled prior to linking
fs: 00000000:0020d822 Tex TexAlpha LM Fog TFuncMod AlphaTest >
#version 100
precision lowp float;
uniform sampler2D tex;
uniform sampler2D testtex;
varying vec4 v_color0;
varying vec3 v_color1;
uniform vec3 u_fogcolor;
varying mediump float v_fogdepth;
varying mediump vec3 v_texcoord;
void main() {
vec4 s = vec4(v_color1, 0.0);
vec4 t = texture2D(tex, v_texcoord.xy);
vec4 p = v_color0;
vec4 v = p * t + s;
float fogCoef = clamp(v_fogdepth, 0.0, 1.0);
v = mix(vec4(u_fogcolor, v.a), v, fogCoef);
float aResult = texture2D(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a;
if (aResult < 0.5) discard;
gl_FragColor = v;
}
vs: 01f31951:00000915 HWX T LM Fog Tex Light: 0: c:1 t:0 1: c:1 t:1 2: c:1 t:2 3: c:1 t:0 MatUp:3 (failed)
#version 100
precision highp float;
attribute vec3 position;
attribute vec2 texcoord;
uniform mat4 u_proj;
uniform mat4 u_world;
uniform mat4 u_view;
uniform vec4 u_uvscaleoffset;
uniform vec3 u_lightpos0;
uniform lowp vec3 u_lightambient0;
uniform lowp vec3 u_lightdiffuse0;
uniform lowp vec3 u_lightspecular0;
uniform vec3 u_lightpos1;
uniform mediump vec3 u_lightatt1;
uniform lowp vec3 u_lightambient1;
uniform lowp vec3 u_lightdiffuse1;
uniform lowp vec3 u_lightspecular1;
uniform vec3 u_lightpos2;
uniform mediump vec3 u_lightatt2;
uniform mediump vec3 u_lightdir2;
uniform mediump vec2 u_lightangle_spotCoef2;
uniform lowp vec3 u_lightambient2;
uniform lowp vec3 u_lightdiffuse2;
uniform lowp vec3 u_lightspecular2;
uniform vec3 u_lightpos3;
uniform lowp vec3 u_lightambient3;
uniform lowp vec3 u_lightdiffuse3;
uniform lowp vec3 u_lightspecular3;
uniform lowp vec4 u_ambient;
uniform lowp vec3 u_matdiffuse;
uniform lowp vec4 u_matspecular;
uniform lowp vec3 u_matemissive;
uniform lowp vec4 u_matambientalpha;
uniform highp vec2 u_fogcoef;
uniform highp vec4 u_cullRangeMin;
uniform highp vec4 u_cullRangeMax;
varying lowp vec4 v_color0;
varying lowp vec3 v_color1;
varying mediump vec3 v_texcoord;
varying mediump float v_fogdepth;
void main() {
vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz;
mediump vec3 worldnormal = vec3(0.0, 0.0, 1.0);
vec4 viewPos = u_view * vec4(worldpos, 1.0);
vec4 outPos = u_proj * viewPos;
lowp vec4 lightSum0 = u_ambient * u_matambientalpha + vec4(u_matemissive, 0.0);
lowp vec3 lightSum1 = vec3(0.0);
vec3 toLight;
lowp vec3 diffuse;
float distance;
lowp float lightScale;
mediump float ldot;
lowp float angle;
toLight = u_lightpos0;
ldot = max(dot(toLight, worldnormal), 0.0);
diffuse = (u_lightdiffuse0 * u_matdiffuse) * ldot;
ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal);
if (ldot > 0.0)
lightSum1 += u_lightspecular0 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) );
lightSum0.rgb += (u_lightambient0 * u_matambientalpha.rgb + diffuse);
toLight = u_lightpos1 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = max(dot(toLight, worldnormal), 0.0);
lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0);
diffuse = (u_lightdiffuse1 * u_matdiffuse) * ldot;
ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal);
if (ldot > 0.0)
lightSum1 += u_lightspecular1 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) * lightScale);
lightSum0.rgb += (u_lightambient1 * u_matambientalpha.rgb + diffuse) * lightScale;
toLight = u_lightpos2 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = max(dot(toLight, worldnormal), 0.0);
angle = dot(normalize(u_lightdir2), toLight);
if (angle >= u_lightangle_spotCoef2.x) {
lightScale = clamp(1.0 / dot(u_lightatt2, vec3(1.0, distance, distance*distance)), 0.0, 1.0) * pow(angle, u_lightangle_spotCoef2.y);
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse2 * u_matdiffuse) * ldot;
ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal);
if (ldot > 0.0)
lightSum1 += u_lightspecular2 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) * lightScale) |
Grand Theft Auto®: Chinatown Wars™ |
v1.7.5 |
2025-03-25 |
Error in shader program link: info: L0101 All attached shaders must be compiled prior to linking
fs: 00000000:0020d822 Tex TexAlpha LM Fog TFuncMod AlphaTest >
#version 100
precision lowp float;
uniform sampler2D tex;
uniform sampler2D testtex;
varying vec4 v_color0;
varying vec3 v_color1;
uniform vec3 u_fogcolor;
varying mediump float v_fogdepth;
varying mediump vec3 v_texcoord;
void main() {
vec4 s = vec4(v_color1, 0.0);
vec4 t = texture2D(tex, v_texcoord.xy);
vec4 p = v_color0;
vec4 v = p * t + s;
float fogCoef = clamp(v_fogdepth, 0.0, 1.0);
v = mix(vec4(u_fogcolor, v.a), v, fogCoef);
float aResult = texture2D(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a;
if (aResult < 0.5) discard;
gl_FragColor = v;
}
vs: 01f35991:00000b1d HWX C T N LM Fog Tex Light: 0: c:1 t:0 1: c:1 t:2 2: c:1 t:2 3: c:1 t:1 MatUp:3 (failed)
#version 100
precision highp float;
attribute vec3 position;
attribute mediump vec3 normal;
attribute vec2 texcoord;
attribute lowp vec4 color0;
uniform mat4 u_proj;
uniform mat4 u_world;
uniform mat4 u_view;
uniform vec4 u_uvscaleoffset;
uniform vec3 u_lightpos0;
uniform lowp vec3 u_lightambient0;
uniform lowp vec3 u_lightdiffuse0;
uniform lowp vec3 u_lightspecular0;
uniform vec3 u_lightpos1;
uniform mediump vec3 u_lightatt1;
uniform mediump vec3 u_lightdir1;
uniform mediump vec2 u_lightangle_spotCoef1;
uniform lowp vec3 u_lightambient1;
uniform lowp vec3 u_lightdiffuse1;
uniform lowp vec3 u_lightspecular1;
uniform vec3 u_lightpos2;
uniform mediump vec3 u_lightatt2;
uniform mediump vec3 u_lightdir2;
uniform mediump vec2 u_lightangle_spotCoef2;
uniform lowp vec3 u_lightambient2;
uniform lowp vec3 u_lightdiffuse2;
uniform lowp vec3 u_lightspecular2;
uniform vec3 u_lightpos3;
uniform mediump vec3 u_lightatt3;
uniform lowp vec3 u_lightambient3;
uniform lowp vec3 u_lightdiffuse3;
uniform lowp vec3 u_lightspecular3;
uniform lowp vec4 u_ambient;
uniform lowp vec4 u_matspecular;
uniform lowp vec3 u_matemissive;
uniform lowp vec4 u_matambientalpha;
uniform highp vec2 u_fogcoef;
uniform highp vec4 u_cullRangeMin;
uniform highp vec4 u_cullRangeMax;
varying lowp vec4 v_color0;
varying lowp vec3 v_color1;
varying mediump vec3 v_texcoord;
varying mediump float v_fogdepth;
void main() {
vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz;
mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz);
vec4 viewPos = u_view * vec4(worldpos, 1.0);
vec4 outPos = u_proj * viewPos;
lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0);
lowp vec3 lightSum1 = vec3(0.0);
vec3 toLight;
lowp vec3 diffuse;
float distance;
lowp float lightScale;
mediump float ldot;
lowp float angle;
toLight = u_lightpos0;
ldot = max(dot(toLight, worldnormal), 0.0);
diffuse = (u_lightdiffuse0 * color0.rgb) * ldot;
ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal);
if (ldot > 0.0)
lightSum1 += u_lightspecular0 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) );
lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse);
toLight = u_lightpos1 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = max(dot(toLight, worldnormal), 0.0);
angle = dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0) * pow(angle, u_lightangle_spotCoef1.y);
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse1 * color0.rgb) * ldot;
ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal);
if (ldot > 0.0)
lightSum1 += u_lightspecular1 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) * lightScale);
lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale;
toLight = u_lightpos2 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = max(dot(toLight, worldnormal), 0.0);
angle = dot(normalize(u_lightdir2), toLight);
if (angle >= u_lightangle_spotCoef2.x) {
lightScale = clamp(1.0 / dot(u_lightatt2, vec3(1.0, distance, distance*distance)), 0.0, 1.0) * pow(angle, u |
Grand Theft Auto®: Chinatown Wars™ |
v1.7.5 |
2025-03-26 |
Error in shader program link: info: L0101 All attached shaders must be compiled prior to linking
fs: 00000000:00200802 Tex LM Fog TFuncMod
#version 100
precision lowp float;
uniform sampler2D tex;
varying vec4 v_color0;
varying vec3 v_color1;
uniform vec3 u_fogcolor;
varying mediump float v_fogdepth;
varying mediump vec3 v_texcoord;
void main() {
vec4 s = vec4(v_color1, 0.0);
vec4 t = texture2D(tex, v_texcoord.xy);
vec4 p = v_color0;
vec4 v = vec4(t.rgb * p.rgb, p.a) + s;
float fogCoef = clamp(v_fogdepth, 0.0, 1.0);
v = mix(vec4(u_fogcolor, v.a), v, fogCoef);
gl_FragColor = v;
}
vs: 01f35991:00000b1d HWX C T N LM Fog Tex Light: 0: c:1 t:0 1: c:1 t:2 2: c:1 t:2 3: c:1 t:1 MatUp:3 (failed)
#version 100
precision highp float;
attribute vec3 position;
attribute mediump vec3 normal;
attribute vec2 texcoord;
attribute lowp vec4 color0;
uniform mat4 u_proj;
uniform mat4 u_world;
uniform mat4 u_view;
uniform vec4 u_uvscaleoffset;
uniform vec3 u_lightpos0;
uniform lowp vec3 u_lightambient0;
uniform lowp vec3 u_lightdiffuse0;
uniform lowp vec3 u_lightspecular0;
uniform vec3 u_lightpos1;
uniform mediump vec3 u_lightatt1;
uniform mediump vec3 u_lightdir1;
uniform mediump vec2 u_lightangle_spotCoef1;
uniform lowp vec3 u_lightambient1;
uniform lowp vec3 u_lightdiffuse1;
uniform lowp vec3 u_lightspecular1;
uniform vec3 u_lightpos2;
uniform mediump vec3 u_lightatt2;
uniform mediump vec3 u_lightdir2;
uniform mediump vec2 u_lightangle_spotCoef2;
uniform lowp vec3 u_lightambient2;
uniform lowp vec3 u_lightdiffuse2;
uniform lowp vec3 u_lightspecular2;
uniform vec3 u_lightpos3;
uniform mediump vec3 u_lightatt3;
uniform lowp vec3 u_lightambient3;
uniform lowp vec3 u_lightdiffuse3;
uniform lowp vec3 u_lightspecular3;
uniform lowp vec4 u_ambient;
uniform lowp vec4 u_matspecular;
uniform lowp vec3 u_matemissive;
uniform lowp vec4 u_matambientalpha;
uniform highp vec2 u_fogcoef;
uniform highp vec4 u_cullRangeMin;
uniform highp vec4 u_cullRangeMax;
varying lowp vec4 v_color0;
varying lowp vec3 v_color1;
varying mediump vec3 v_texcoord;
varying mediump float v_fogdepth;
void main() {
vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz;
mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz);
vec4 viewPos = u_view * vec4(worldpos, 1.0);
vec4 outPos = u_proj * viewPos;
lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0);
lowp vec3 lightSum1 = vec3(0.0);
vec3 toLight;
lowp vec3 diffuse;
float distance;
lowp float lightScale;
mediump float ldot;
lowp float angle;
toLight = u_lightpos0;
ldot = max(dot(toLight, worldnormal), 0.0);
diffuse = (u_lightdiffuse0 * color0.rgb) * ldot;
ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal);
if (ldot > 0.0)
lightSum1 += u_lightspecular0 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) );
lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse);
toLight = u_lightpos1 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = max(dot(toLight, worldnormal), 0.0);
angle = dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0) * pow(angle, u_lightangle_spotCoef1.y);
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse1 * color0.rgb) * ldot;
ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal);
if (ldot > 0.0)
lightSum1 += u_lightspecular1 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) * lightScale);
lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale;
toLight = u_lightpos2 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = max(dot(toLight, worldnormal), 0.0);
angle = dot(normalize(u_lightdir2), toLight);
if (angle >= u_lightangle_spotCoef2.x) {
lightScale = clamp(1.0 / dot(u_lightatt2, vec3(1.0, distance, distance*distance)), 0.0, 1.0) * pow(angle, u_lightangle_spotCoef2.y);
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse2 * color0.rgb) * ldot;
ldot = dot(normaliz |
PES 2013 |
v1.18.1 |
2025-03-25 |
Error in shader program link: info: Variable u_texelDelta has unmatched precision qualifier in different shaders
fs: postshader
#version 320 es
precision mediump float;
precision highp int;
uniform vec2 u_texelDelta;
uniform vec2 u_pixelDelta;
layout(binding = 0) uniform mediump sampler2D sampler0;
uniform vec4 u_time;
in vec2 v_texcoord0;
out vec4 _RESERVED_IDENTIFIER_FIXUP_gl_FragColor;
in vec4 v_texcoordNC0;
in vec4 v_texcoordNC1;
in vec4 v_texcoordNC2;
in vec4 v_texcoordNC3;
mediump int SEPIA;
mediump int GRAYSCALE;
mediump int NEGATIVE;
mediump int PSPCOLORS;
bvec4 _and_(bvec4 A, bvec4 B)
{
return bvec4(A.x && B.x, A.y && B.y, A.z && B.z, A.w && B.w);
}
vec4 df(vec4 A, vec4 B)
{
return abs(A - B);
}
bvec4 close(vec4 A, vec4 B)
{
vec4 param = A;
vec4 param_1 = B;
return lessThan(df(param, param_1), vec4(15.0));
}
bvec4 _or_(bvec4 A, bvec4 B)
{
return bvec4(A.x || B.x, A.y || B.y, A.z || B.z, A.w || B.w);
}
vec4 weighted_distance(vec4 a, vec4 b, vec4 c, vec4 d, vec4 e, vec4 f, vec4 g, vec4 h)
{
vec4 param = a;
vec4 param_1 = b;
vec4 param_2 = a;
vec4 param_3 = c;
vec4 param_4 = d;
vec4 param_5 = e;
vec4 param_6 = d;
vec4 param_7 = f;
vec4 param_8 = g;
vec4 param_9 = h;
return (((df(param, param_1) + df(param_2, param_3)) + df(param_4, param_5)) + df(param_6, param_7)) + (df(param_8, param_9) * 4.0);
}
vec3 processxBR(vec3 color)
{
vec2 pS = vec2(1.0) / u_texelDelta;
vec2 fp = fract(v_texcoord0 * pS);
vec2 TexCoord_0 = v_texcoord0 - (fp * u_pixelDelta);
vec2 dx = vec2(u_texelDelta.x, 0.0);
vec2 dy = vec2(0.0, u_texelDelta.y);
vec2 y2 = dy + dy;
vec2 x2 = dx + dx;
vec3 A = texture(sampler0, (TexCoord_0 - dx) - dy).xyz;
vec3 B = texture(sampler0, TexCoord_0 - dy).xyz;
vec3 C = texture(sampler0, (TexCoord_0 + dx) - dy).xyz;
vec3 D = texture(sampler0, TexCoord_0 - dx).xyz;
vec3 E = texture(sampler0, TexCoord_0).xyz;
vec3 F = texture(sampler0, TexCoord_0 + dx).xyz;
vec3 G = texture(sampler0, (TexCoord_0 - dx) + dy).xyz;
vec3 H = texture(sampler0, TexCoord_0 + dy).xyz;
vec3 I = texture(sampler0, (TexCoord_0 + dx) + dy).xyz;
vec3 A1 = texture(sampler0, (TexCoord_0 - dx) - y2).xyz;
vec3 C1 = texture(sampler0, (TexCoord_0 + dx) - y2).xyz;
vec3 A0 = texture(sampler0, (TexCoord_0 - x2) - dy).xyz;
vec3 G0 = texture(sampler0, (TexCoord_0 - x2) + dy).xyz;
vec3 C4 = texture(sampler0, (TexCoord_0 + x2) - dy).xyz;
vec3 I4 = texture(sampler0, (TexCoord_0 + x2) + dy).xyz;
vec3 G5 = texture(sampler0, (TexCoord_0 - dx) + y2).xyz;
vec3 I5 = texture(sampler0, (TexCoord_0 + dx) + y2).xyz;
vec3 B1 = texture(sampler0, TexCoord_0 - y2).xyz;
vec3 D0 = texture(sampler0, TexCoord_0 - x2).xyz;
vec3 H5 = texture(sampler0, TexCoord_0 + y2).xyz;
vec3 F4 = texture(sampler0, TexCoord_0 + x2).xyz;
vec4 b = vec4(dot(B, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)), dot(D, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)), dot(H, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)), dot(F, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)));
vec4 c = vec4(dot(C, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)), dot(A, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)), dot(G, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)), dot(I, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)));
vec4 d = vec4(b.y, b.z, b.w, b.x);
vec4 e = vec4(dot(E, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)));
vec4 f = vec4(b.w, b.x, b.y, b.z);
vec4 g = vec4(c.z, c.w, c.x, c.y);
vec4 h = vec4(b.z, b.w, b.x, b.y);
vec4 i = vec4(c.w, c.x, c.y, c.z);
vec4 i4 = vec4(dot(I4, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)), dot(C1, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)) |
GTA: Liberty City Stories |
v1.6.3 |
2025-03-24 |
Error in shader program link: info: L0100 GLSL allows exactly two attached shaders (one of each type) per program
fs: 00000000:00000000
#version 100
precision lowp float;
varying vec4 v_color0;
void main() {
vec4 v = v_color0 ;
gl_FragColor = v;
}
vs: 00000000:0000000a THR C
#version 100
precision highp float;
attribute vec4 position;
attribute lowp vec4 color0;
uniform mat4 u_proj_through;
varying lowp vec4 v_color0;
void main() {
v_color0 = color0;
gl_Position = u_proj_through * vec4(position.xyz, 1.0);
}
|
GTA: Liberty City Stories |
v1.6.3 |
2025-03-24 |
Error in shader program link: info: L0100 GLSL allows exactly two attached shaders (one of each type) per program
fs: 00000000:00000022 Tex TexAlpha TFuncMod
#version 100
precision lowp float;
uniform sampler2D tex;
varying vec4 v_color0;
varying mediump vec3 v_texcoord;
void main() {
vec4 t = texture2D(tex, v_texcoord.xy);
vec4 p = v_color0;
vec4 v = p * t;
gl_FragColor = v;
}
vs: 00000000:0000001a THR C Tex
#version 100
precision highp float;
attribute vec4 position;
attribute vec2 texcoord;
attribute lowp vec4 color0;
uniform mat4 u_proj_through;
varying lowp vec4 v_color0;
varying mediump vec3 v_texcoord;
void main() {
v_texcoord = vec3(texcoord, 1.0);
v_color0 = color0;
gl_Position = u_proj_through * vec4(position.xyz, 1.0);
}
|
GTA: Liberty City Stories |
v1.6.3 |
2025-03-24 |
Error in shader program link: info: L0100 GLSL allows exactly two attached shaders (one of each type) per program
fs: 00004000:00000000 Flat
#version 100
precision lowp float;
varying vec4 v_color0;
void main() {
vec4 v = v_color0 ;
gl_FragColor = v;
}
vs: 40000000:0000000a THR C Flat
#version 100
precision highp float;
attribute vec4 position;
attribute lowp vec4 color0;
uniform mat4 u_proj_through;
varying lowp vec4 v_color0;
void main() {
v_color0 = color0;
gl_Position = u_proj_through * vec4(position.xyz, 1.0);
}
|
eFootball Chelito 19 |
v1.6.3 |
2025-03-24 |
Error in shader program link: info: Link failed because of missing shader.
fs: 00000000:0001d002 Tex TFuncMod AlphaTest0 >
#version 300 es
#extension GL_ARM_shader_framebuffer_fetch : require
precision lowp float;
uniform sampler2D tex;
uniform sampler2D testtex;
in vec4 v_color0;
in mediump vec3 v_texcoord;
out vec4 fragColor0;
void main() {
vec4 t = texture(tex, v_texcoord.xy);
vec4 p = v_color0;
vec4 v = vec4(t.rgb * p.rgb, p.a);
if (v.a < 0.002) discard;
fragColor0 = v;
}
vs: 00000000:0000001a THR C Tex
#version 300 es
precision highp float;
in vec4 position;
in vec2 texcoord;
in lowp vec4 color0;
uniform mat4 u_proj_through;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
void main() {
v_texcoord = vec3(texcoord, 1.0);
v_color0 = color0;
gl_Position = u_proj_through * vec4(position.xyz, 1.0);
}
|
300: March to Glory |
v1.6.3 |
2025-03-22 |
Error in shader program link: info: Link failed because of missing vertex shader.
fs: 00000000:00000002 Tex TFuncMod
#version 300 es
#extension GL_ARM_shader_framebuffer_fetch : require
precision lowp float;
uniform sampler2D tex;
in vec4 v_color0;
in mediump vec3 v_texcoord;
out vec4 fragColor0;
void main() {
vec4 t = texture(tex, v_texcoord.xy);
vec4 p = v_color0;
vec4 v = vec4(t.rgb * p.rgb, p.a);
fragColor0 = v;
}
vs: 01010000:00000918 HWX C T Tex Light: MatUp:1
#version 300 es
precision highp float;
in vec3 position;
in vec2 texcoord;
in lowp vec4 color0;
uniform mat4 u_proj;
uniform mat4 u_world;
uniform mat4 u_view;
uniform vec4 u_uvscaleoffset;
uniform lowp vec4 u_ambient;
uniform lowp vec3 u_matdiffuse;
uniform lowp vec4 u_matspecular;
uniform lowp vec3 u_matemissive;
uniform lowp vec4 u_matambientalpha;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
void main() {
vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz;
mediump vec3 worldnormal = vec3(0.0, 0.0, 1.0);
vec4 viewPos = u_view * vec4(worldpos, 1.0);
gl_Position = u_proj * viewPos;
lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0);
mediump float ldot;
v_color0 = clamp(lightSum0, 0.0, 1.0);
v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0);
}
|
300: March to Glory |
v1.6.3 |
2025-03-22 |
Error in shader program link: info: Link failed because of missing fragment shader.
fs: 00000000:00000022 Tex TexAlpha TFuncMod
#version 300 es
#extension GL_ARM_shader_framebuffer_fetch : require
precision lowp float;
uniform sampler2D tex;
in vec4 v_color0;
in mediump vec3 v_texcoord;
out vec4 fragColor0;
void main() {
vec4 t = texture(tex, v_texcoord.xy);
vec4 p = v_color0;
vec4 v = p * t;
fragColor0 = v;
}
vs: 00000000:0000005a THR C Tex TexProjPos
#version 300 es
precision highp float;
in vec4 position;
in vec2 texcoord;
in lowp vec4 color0;
uniform mat4 u_proj_through;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
void main() {
v_texcoord = vec3(texcoord, 1.0);
v_color0 = color0;
gl_Position = u_proj_through * vec4(position.xyz, 1.0);
}
|
300: March to Glory |
v1.6.3 |
2025-03-22 |
Error in shader program link: info: Link failed because of missing vertex shader.
fs: 00000000:00000002 Tex TFuncMod
#version 300 es
#extension GL_ARM_shader_framebuffer_fetch : require
precision lowp float;
uniform sampler2D tex;
in vec4 v_color0;
in mediump vec3 v_texcoord;
out vec4 fragColor0;
void main() {
vec4 t = texture(tex, v_texcoord.xy);
vec4 p = v_color0;
vec4 v = vec4(t.rgb * p.rgb, p.a);
fragColor0 = v;
}
vs: 01010000:00050958 HWX C T Tex TexProjUV UVMtx Light: MatUp:1
#version 300 es
precision highp float;
in vec3 position;
in vec2 texcoord;
in lowp vec4 color0;
uniform mat4 u_proj;
uniform mat4 u_world;
uniform mat4 u_view;
uniform mediump mat4 u_texmtx;
uniform vec4 u_uvscaleoffset;
uniform lowp vec4 u_ambient;
uniform lowp vec3 u_matdiffuse;
uniform lowp vec4 u_matspecular;
uniform lowp vec3 u_matemissive;
uniform lowp vec4 u_matambientalpha;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
void main() {
vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz;
mediump vec3 worldnormal = vec3(0.0, 0.0, 1.0);
vec4 viewPos = u_view * vec4(worldpos, 1.0);
gl_Position = u_proj * viewPos;
lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0);
mediump float ldot;
v_color0 = clamp(lightSum0, 0.0, 1.0);
v_texcoord = (u_texmtx * vec4(texcoord.xy, 0.0, 1.0)).xyz * vec3(u_uvscaleoffset.xy, 1.0);
}
|
GTA: Liberty City Stories |
v1.6.3 |
2025-03-22 |
Error in shader program link: info: Link failed because of missing shader.
fs: 00000000:00a0d802 Tex LM Fog 2x TFuncMod AlphaTest >
#version 300 es
#extension GL_EXT_shader_framebuffer_fetch : require
precision lowp float;
uniform sampler2D tex;
uniform sampler2D testtex;
in vec4 v_color0;
in vec3 v_color1;
uniform vec3 u_fogcolor;
in mediump float v_fogdepth;
in mediump vec3 v_texcoord;
inout vec4 fragColor0;
void main() {
vec4 s = vec4(v_color1, 0.0);
vec4 t = texture(tex, v_texcoord.xy);
vec4 p = v_color0;
vec4 v = vec4(t.rgb * p.rgb, p.a) + s;
float aResult = texture(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a;
if (aResult < 0.5) discard;
v.rgb = v.rgb * 2.0;
float fogCoef = clamp(v_fogdepth, 0.0, 1.0);
v = mix(vec4(u_fogcolor, v.a), v, fogCoef);
fragColor0 = v;
}
vs: 01170000:00000315 HWX N LM Fog Tex Light: 0: c:0 t:0 MatUp:7
#version 300 es
precision highp float;
in vec3 position;
in mediump vec3 normal;
uniform mat4 u_proj;
uniform mat4 u_world;
uniform mat4 u_view;
uniform vec4 u_uvscaleoffset;
uniform vec3 u_lightpos0;
uniform lowp vec3 u_lightambient0;
uniform lowp vec3 u_lightdiffuse0;
uniform lowp vec4 u_ambient;
uniform lowp vec3 u_matdiffuse;
uniform lowp vec4 u_matspecular;
uniform lowp vec3 u_matemissive;
uniform lowp vec4 u_matambientalpha;
uniform highp vec2 u_fogcoef;
out lowp vec4 v_color0;
out lowp vec3 v_color1;
out mediump vec3 v_texcoord;
out mediump float v_fogdepth;
void main() {
vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz;
mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz);
vec4 viewPos = u_view * vec4(worldpos, 1.0);
gl_Position = u_proj * viewPos;
lowp vec4 lightSum0 = u_ambient * u_matambientalpha + vec4(u_matemissive, 0.0);
vec3 toLight;
lowp vec3 diffuse;
mediump float ldot;
toLight = u_lightpos0;
ldot = max(dot(toLight, worldnormal), 0.0);
diffuse = (u_lightdiffuse0 * u_matdiffuse) * ldot;
lightSum0.rgb += (u_lightambient0 * u_matambientalpha.rgb + diffuse);
v_color0 = clamp(lightSum0, 0.0, 1.0);
v_color1 = vec3(0.0);
v_texcoord = vec3(0.0);
v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y;
}
|
GTA: Liberty City Stories |
v1.6.3 |
2025-03-22 |
Error in shader program link: info: Link failed because of missing vertex shader.
fs: 00000000:0020d002 Tex Fog TFuncMod AlphaTest >
#version 300 es
#extension GL_EXT_shader_framebuffer_fetch : require
precision lowp float;
uniform sampler2D tex;
uniform sampler2D testtex;
in vec4 v_color0;
uniform vec3 u_fogcolor;
in mediump float v_fogdepth;
in mediump vec3 v_texcoord;
inout vec4 fragColor0;
void main() {
vec4 t = texture(tex, v_texcoord.xy);
vec4 p = v_color0;
vec4 v = vec4(t.rgb * p.rgb, p.a);
float aResult = texture(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a;
if (aResult < 0.5) discard;
float fogCoef = clamp(v_fogdepth, 0.0, 1.0);
v = mix(vec4(u_fogcolor, v.a), v, fogCoef);
fragColor0 = v;
}
vs: 00000000:00000b1c HWX C T N Fog Tex
#version 300 es
precision highp float;
in vec3 position;
in mediump vec3 normal;
in vec2 texcoord;
in lowp vec4 color0;
uniform mat4 u_proj;
uniform mat4 u_world;
uniform mat4 u_view;
uniform vec4 u_uvscaleoffset;
uniform lowp vec4 u_matambientalpha;
uniform highp vec2 u_fogcoef;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
out mediump float v_fogdepth;
void main() {
vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz;
mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz);
vec4 viewPos = u_view * vec4(worldpos, 1.0);
gl_Position = u_proj * viewPos;
v_color0 = color0;
v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0);
v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y;
}
|
GTA: Liberty City Stories |
v1.6.3 |
2025-03-22 |
Error in shader program link: info: Link failed because of missing shader.
fs: 00000000:0020d022 Tex TexAlpha Fog TFuncMod AlphaTest >
#version 300 es
#extension GL_EXT_shader_framebuffer_fetch : require
precision lowp float;
uniform sampler2D tex;
uniform sampler2D testtex;
in vec4 v_color0;
uniform vec3 u_fogcolor;
in mediump float v_fogdepth;
in mediump vec3 v_texcoord;
inout vec4 fragColor0;
void main() {
vec4 t = texture(tex, v_texcoord.xy);
vec4 p = v_color0;
vec4 v = p * t;
float aResult = texture(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a;
if (aResult < 0.5) discard;
float fogCoef = clamp(v_fogdepth, 0.0, 1.0);
v = mix(vec4(u_fogcolor, v.a), v, fogCoef);
fragColor0 = v;
}
vs: 00000000:00000b1c HWX C T N Fog Tex
#version 300 es
precision highp float;
in vec3 position;
in mediump vec3 normal;
in vec2 texcoord;
in lowp vec4 color0;
uniform mat4 u_proj;
uniform mat4 u_world;
uniform mat4 u_view;
uniform vec4 u_uvscaleoffset;
uniform lowp vec4 u_matambientalpha;
uniform highp vec2 u_fogcoef;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
out mediump float v_fogdepth;
void main() {
vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz;
mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz);
vec4 viewPos = u_view * vec4(worldpos, 1.0);
gl_Position = u_proj * viewPos;
v_color0 = color0;
v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0);
v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y;
}
|
GTA: Liberty City Stories |
v1.6.3 |
2025-03-22 |
Error in shader program link: info: Link Error: Vertex shader is missing.
Link Error: Fragment shader is missing.
fs: 00000000:0000d022 Tex TexAlpha TFuncMod AlphaTest >
#version 300 es
#extension GL_EXT_shader_framebuffer_fetch : require
precision lowp float;
uniform sampler2D tex;
uniform sampler2D testtex;
in vec4 v_color0;
in highp vec3 v_texcoord;
inout vec4 fragColor0;
void main() {
vec4 t = texture(tex, v_texcoord.xy);
vec4 p = v_color0;
vec4 v = p * t;
float aResult = texture(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a;
if (aResult < 0.5) discard;
fragColor0 = v;
}
vs: 00000000:00000b18 HWX C T N Tex
#version 300 es
precision highp float;
in vec3 position;
in mediump vec3 normal;
in vec2 texcoord;
in lowp vec4 color0;
uniform mat4 u_proj;
uniform mat4 u_world;
uniform mat4 u_view;
uniform vec4 u_uvscaleoffset;
uniform lowp vec4 u_matambientalpha;
out lowp vec4 v_color0;
out highp vec3 v_texcoord;
void main() {
vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz;
mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz);
vec4 viewPos = u_view * vec4(worldpos, 1.0);
gl_Position = u_proj * viewPos;
v_color0 = color0;
v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0);
}
|
GTA: Liberty City Stories |
v1.6.3 |
2025-03-28 |
Error in shader program link: info: Link Error: Vertex shader is missing.
fs: 00000000:00000022 Tex TexAlpha TFuncMod
#version 300 es
#extension GL_EXT_shader_framebuffer_fetch : require
precision lowp float;
uniform sampler2D tex;
in vec4 v_color0;
in highp vec3 v_texcoord;
inout vec4 fragColor0;
void main() {
vec4 t = texture(tex, v_texcoord.xy);
vec4 p = v_color0;
vec4 v = p * t;
fragColor0 = v;
}
vs: 00000000:00000012 THR Tex
#version 300 es
precision highp float;
in vec4 position;
in vec2 texcoord;
in lowp vec4 color0;
uniform mat4 u_proj_through;
out lowp vec4 v_color0;
out highp vec3 v_texcoord;
void main() {
v_texcoord = vec3(texcoord, 1.0);
v_color0 = color0;
gl_Position = u_proj_through * vec4(position.xyz, 1.0);
}
|
eFootball PC - V. |
v1.6.3 |
2025-03-20 |
Error in shader program link: info: L0100 GLSL allows exactly two attached shaders (one of each type) per program
fs: 00000000:0001d000 AlphaTest0 >
#version 100
precision lowp float;
uniform sampler2D testtex;
varying vec4 v_color0;
void main() {
vec4 v = v_color0 ;
if (v.a < 0.002) discard;
gl_FragColor = v;
}
vs: 00000000:0000000a THR C
#version 100
precision highp float;
attribute vec4 position;
attribute lowp vec4 color0;
uniform mat4 u_proj_through;
varying lowp vec4 v_color0;
void main() {
v_color0 = color0;
gl_Position = u_proj_through * vec4(position.xyz, 1.0);
}
|
METAL SLUG Anthology |
v1.18.1 |
2025-03-19 |
Error in shader program link: info: L0001 Vertex shader varying symbols are corrupt
fs: 00190000:0000d40a Tex TexAlpha TFuncBlend AlphaTest > TestDiscardToZero
#version 100
// Driver: Mali-400 MP - GLSL 100
#define DISCARD discard
precision lowp float;
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 00190000:0000d40a Tex TexAlpha TFuncBlend AlphaTest > TestDiscardToZero
uniform sampler2D tex;
uniform sampler2D testtex;
uniform vec3 u_texenv;
varying lowp vec4 v_color0;
varying mediump float v_fogdepth;
varying mediump vec3 v_texcoord;
void main() {
vec4 t = texture2D(tex, v_texcoord.xy);
vec4 p = v_color0;
vec4 v = vec4(mix(p.rgb, u_texenv.rgb, t.rgb), p.a * t.a);
float aResult = texture2D(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a;
if (aResult < 0.5) v.a = 0.0;
gl_FragColor = v;
}
vs: 00000000:00000002 THR
#version 100
// Driver: Mali-400 MP - GLSL 100
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 00000000:00000002 THR
attribute vec4 position;
attribute highp float fog;
attribute vec2 texcoord;
attribute lowp vec4 color0;
uniform mat4 u_proj_through;
uniform lowp float u_rotation;
uniform highp vec2 u_fogcoef;
varying lowp vec4 v_color0;
varying mediump vec3 v_texcoord;
varying mediump float v_fogdepth;
void main() {
v_texcoord = vec3(texcoord, 1.0);
v_color0 = color0;
v_fogdepth = fog;
vec4 outPos = mul(u_proj_through, vec4(position.xyz, 1.0));
gl_Position = outPos;
}
|
METAL SLUG Anthology |
v1.18.1 |
2025-03-19 |
Error in shader program link: info: L0001 Vertex shader varying symbols are corrupt
fs: 00190000:0000d782 Tex TexAlpha TClampST TFuncMod AlphaTest > TestDiscardToZero
#version 100
// Driver: Mali-400 MP - GLSL 100
#define DISCARD discard
precision lowp float;
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 00190000:0000d782 Tex TexAlpha TClampST TFuncMod AlphaTest > TestDiscardToZero
uniform sampler2D tex;
uniform vec4 u_texclamp;
uniform vec2 u_texclampoff;
uniform sampler2D testtex;
varying lowp vec4 v_color0;
varying mediump float v_fogdepth;
varying mediump vec3 v_texcoord;
void main() {
vec2 fixedcoord = vec2((clamp(v_texcoord.x, u_texclamp.z, u_texclamp.x - u_texclamp.z) + u_texclampoff.x), (clamp(v_texcoord.y, u_texclamp.w, u_texclamp.y - u_texclamp.w) + u_texclampoff.y));
vec4 t = texture2D(tex, fixedcoord.xy);
vec4 p = v_color0;
vec4 v = p * t;
float aResult = texture2D(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a;
if (aResult < 0.5) v.a = 0.0;
gl_FragColor = v;
}
vs: 00000000:00000002 THR
#version 100
// Driver: Mali-400 MP - GLSL 100
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 00000000:00000002 THR
attribute vec4 position;
attribute highp float fog;
attribute vec2 texcoord;
attribute lowp vec4 color0;
uniform mat4 u_proj_through;
uniform lowp float u_rotation;
uniform highp vec2 u_fogcoef;
varying lowp vec4 v_color0;
varying mediump vec3 v_texcoord;
varying mediump float v_fogdepth;
void main() {
v_texcoord = vec3(texcoord, 1.0);
v_color0 = color0;
v_fogdepth = fog;
vec4 outPos = mul(u_proj_through, vec4(position.xyz, 1.0));
gl_Position = outPos;
}
|
METAL SLUG Anthology |
v1.18.1 |
2025-03-19 |
Error in shader program link: info: L0001 Vertex shader varying symbols are corrupt
fs: 00190000:0000d402 Tex TexAlpha TFuncMod AlphaTest > TestDiscardToZero
#version 100
// Driver: Mali-400 MP - GLSL 100
#define DISCARD discard
precision lowp float;
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 00190000:0000d402 Tex TexAlpha TFuncMod AlphaTest > TestDiscardToZero
uniform sampler2D tex;
uniform sampler2D testtex;
varying lowp vec4 v_color0;
varying mediump float v_fogdepth;
varying mediump vec3 v_texcoord;
void main() {
vec4 t = texture2D(tex, v_texcoord.xy);
vec4 p = v_color0;
vec4 v = p * t;
float aResult = texture2D(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a;
if (aResult < 0.5) v.a = 0.0;
gl_FragColor = v;
}
vs: 00000000:00000002 THR
#version 100
// Driver: Mali-400 MP - GLSL 100
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 00000000:00000002 THR
attribute vec4 position;
attribute highp float fog;
attribute vec2 texcoord;
attribute lowp vec4 color0;
uniform mat4 u_proj_through;
uniform lowp float u_rotation;
uniform highp vec2 u_fogcoef;
varying lowp vec4 v_color0;
varying mediump vec3 v_texcoord;
varying mediump float v_fogdepth;
void main() {
v_texcoord = vec3(texcoord, 1.0);
v_color0 = color0;
v_fogdepth = fog;
vec4 outPos = mul(u_proj_through, vec4(position.xyz, 1.0));
gl_Position = outPos;
}
|
METAL SLUG Anthology |
v1.18.1 |
2025-03-19 |
Error in shader program link: info: L0001 Vertex shader varying symbols are corrupt
fs: 00180000:00000782 Tex TexAlpha TClampST TFuncMod
#version 100
// Driver: Mali-400 MP - GLSL 100
#define DISCARD discard
precision lowp float;
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 00180000:00000782 Tex TexAlpha TClampST TFuncMod
uniform sampler2D tex;
uniform vec4 u_texclamp;
uniform vec2 u_texclampoff;
varying lowp vec4 v_color0;
varying mediump float v_fogdepth;
varying mediump vec3 v_texcoord;
void main() {
vec2 fixedcoord = vec2((clamp(v_texcoord.x, u_texclamp.z, u_texclamp.x - u_texclamp.z) + u_texclampoff.x), (clamp(v_texcoord.y, u_texclamp.w, u_texclamp.y - u_texclamp.w) + u_texclampoff.y));
vec4 t = texture2D(tex, fixedcoord.xy);
vec4 p = v_color0;
vec4 v = p * t;
gl_FragColor = v;
}
vs: 00000000:00000002 THR
#version 100
// Driver: Mali-400 MP - GLSL 100
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 00000000:00000002 THR
attribute vec4 position;
attribute highp float fog;
attribute vec2 texcoord;
attribute lowp vec4 color0;
uniform mat4 u_proj_through;
uniform lowp float u_rotation;
uniform highp vec2 u_fogcoef;
varying lowp vec4 v_color0;
varying mediump vec3 v_texcoord;
varying mediump float v_fogdepth;
void main() {
v_texcoord = vec3(texcoord, 1.0);
v_color0 = color0;
v_fogdepth = fog;
vec4 outPos = mul(u_proj_through, vec4(position.xyz, 1.0));
gl_Position = outPos;
}
|
METAL SLUG Anthology |
v1.18.1 |
2025-03-19 |
Error in shader program link: info: L0001 Vertex shader varying symbols are corrupt
fs: 00180000:0000040a Tex TexAlpha TFuncBlend
#version 100
// Driver: Mali-400 MP - GLSL 100
#define DISCARD discard
precision lowp float;
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 00180000:0000040a Tex TexAlpha TFuncBlend
uniform sampler2D tex;
uniform vec3 u_texenv;
varying lowp vec4 v_color0;
varying mediump float v_fogdepth;
varying mediump vec3 v_texcoord;
void main() {
vec4 t = texture2D(tex, v_texcoord.xy);
vec4 p = v_color0;
vec4 v = vec4(mix(p.rgb, u_texenv.rgb, t.rgb), p.a * t.a);
gl_FragColor = v;
}
vs: 00000000:00000002 THR
#version 100
// Driver: Mali-400 MP - GLSL 100
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 00000000:00000002 THR
attribute vec4 position;
attribute highp float fog;
attribute vec2 texcoord;
attribute lowp vec4 color0;
uniform mat4 u_proj_through;
uniform lowp float u_rotation;
uniform highp vec2 u_fogcoef;
varying lowp vec4 v_color0;
varying mediump vec3 v_texcoord;
varying mediump float v_fogdepth;
void main() {
v_texcoord = vec3(texcoord, 1.0);
v_color0 = color0;
v_fogdepth = fog;
vec4 outPos = mul(u_proj_through, vec4(position.xyz, 1.0));
gl_Position = outPos;
}
|
eFootball Euro y Copa America By T. Bendezu |
v1.18.1 |
2025-03-19 |
Error in shader program link: info: Error: Uniform u_texelDelta precision mismatch with other stage.
Error: Linking failed.
fs: postshader
#version 320 es
precision mediump float;
precision highp int;
uniform vec2 u_texelDelta;
uniform vec2 u_pixelDelta;
layout(binding = 0) uniform mediump sampler2D sampler0;
uniform vec4 u_time;
in vec2 v_texcoord0;
out vec4 _RESERVED_IDENTIFIER_FIXUP_gl_FragColor;
in vec4 v_texcoordNC0;
in vec4 v_texcoordNC1;
in vec4 v_texcoordNC2;
in vec4 v_texcoordNC3;
mediump int SEPIA;
mediump int GRAYSCALE;
mediump int NEGATIVE;
mediump int PSPCOLORS;
bvec4 _and_(bvec4 A, bvec4 B)
{
return bvec4(A.x && B.x, A.y && B.y, A.z && B.z, A.w && B.w);
}
vec4 df(vec4 A, vec4 B)
{
return abs(A - B);
}
bvec4 close(vec4 A, vec4 B)
{
vec4 param = A;
vec4 param_1 = B;
return lessThan(df(param, param_1), vec4(15.0));
}
bvec4 _or_(bvec4 A, bvec4 B)
{
return bvec4(A.x || B.x, A.y || B.y, A.z || B.z, A.w || B.w);
}
vec4 weighted_distance(vec4 a, vec4 b, vec4 c, vec4 d, vec4 e, vec4 f, vec4 g, vec4 h)
{
vec4 param = a;
vec4 param_1 = b;
vec4 param_2 = a;
vec4 param_3 = c;
vec4 param_4 = d;
vec4 param_5 = e;
vec4 param_6 = d;
vec4 param_7 = f;
vec4 param_8 = g;
vec4 param_9 = h;
return (((df(param, param_1) + df(param_2, param_3)) + df(param_4, param_5)) + df(param_6, param_7)) + (df(param_8, param_9) * 4.0);
}
vec3 processxBR(vec3 color)
{
vec2 pS = vec2(1.0) / u_texelDelta;
vec2 fp = fract(v_texcoord0 * pS);
vec2 TexCoord_0 = v_texcoord0 - (fp * u_pixelDelta);
vec2 dx = vec2(u_texelDelta.x, 0.0);
vec2 dy = vec2(0.0, u_texelDelta.y);
vec2 y2 = dy + dy;
vec2 x2 = dx + dx;
vec3 A = texture(sampler0, (TexCoord_0 - dx) - dy).xyz;
vec3 B = texture(sampler0, TexCoord_0 - dy).xyz;
vec3 C = texture(sampler0, (TexCoord_0 + dx) - dy).xyz;
vec3 D = texture(sampler0, TexCoord_0 - dx).xyz;
vec3 E = texture(sampler0, TexCoord_0).xyz;
vec3 F = texture(sampler0, TexCoord_0 + dx).xyz;
vec3 G = texture(sampler0, (TexCoord_0 - dx) + dy).xyz;
vec3 H = texture(sampler0, TexCoord_0 + dy).xyz;
vec3 I = texture(sampler0, (TexCoord_0 + dx) + dy).xyz;
vec3 A1 = texture(sampler0, (TexCoord_0 - dx) - y2).xyz;
vec3 C1 = texture(sampler0, (TexCoord_0 + dx) - y2).xyz;
vec3 A0 = texture(sampler0, (TexCoord_0 - x2) - dy).xyz;
vec3 G0 = texture(sampler0, (TexCoord_0 - x2) + dy).xyz;
vec3 C4 = texture(sampler0, (TexCoord_0 + x2) - dy).xyz;
vec3 I4 = texture(sampler0, (TexCoord_0 + x2) + dy).xyz;
vec3 G5 = texture(sampler0, (TexCoord_0 - dx) + y2).xyz;
vec3 I5 = texture(sampler0, (TexCoord_0 + dx) + y2).xyz;
vec3 B1 = texture(sampler0, TexCoord_0 - y2).xyz;
vec3 D0 = texture(sampler0, TexCoord_0 - x2).xyz;
vec3 H5 = texture(sampler0, TexCoord_0 + y2).xyz;
vec3 F4 = texture(sampler0, TexCoord_0 + x2).xyz;
vec4 b = vec4(dot(B, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)), dot(D, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)), dot(H, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)), dot(F, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)));
vec4 c = vec4(dot(C, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)), dot(A, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)), dot(G, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)), dot(I, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)));
vec4 d = vec4(b.y, b.z, b.w, b.x);
vec4 e = vec4(dot(E, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)));
vec4 f = vec4(b.w, b.x, b.y, b.z);
vec4 g = vec4(c.z, c.w, c.x, c.y);
vec4 h = vec4(b.z, b.w, b.x, b.y);
vec4 i = vec4(c.w, c.x, c.y, c.z);
vec4 i4 = vec4(dot(I4, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)), dot(C1, vec3(16.1630001068115234375, 23.3509998321533203125, 8.4771995544 |
eFootball 25 Hend Asean New Season |
v1.10.3 |
2025-03-26 |
Error in shader program link: info: cannot find a matched output for input v_texcoordNC0
cannot find a matched output for input v_texcoordNC1
cannot find a matched output for input v_texcoordNC2
cannot find a matched output for input v_texcoordNC3
fs: postshader
#ifdef GL_ES
precision mediump float;
#endif
//Note : Recommend to use PPSSPP v1.1.1-183-gb411fc0 or newer for full functionality, there were some bugs in earlier versions.
//Note2 : Upscaling, smoothing and sharpening filters are not set to be mixed between each other since the results are pointless(they counter each other).
// Awas ngelag! :u
//======================================================================================================================================================================
//SMOOTHING FILTERS: //If you love smooth graphics ~ those are also great for downscaling - to do that, you need to use higher rendering res than your display res
//================
#define FXAA 1 //ON:1/OFF:0 /default FXAA, orginal info below
//================
#define GAUSS_SQ 0 //ON:1/OFF:0 /full square gauss filtering
#define Gsmoothing 2.5 //Default: 3.5 /increase for smoother(blurry) graphics
//================
#define GAUSS_S 0 //ON:1/OFF:0 /simple gauss filtering by Bigpet, slightly different from above /you can find standalone in https://github.com/hrydgard/ppsspp/issues/7242
//================
//SHARPENING FILTERS: //if you need very sharp image, add lots of aliasing
//================
#define SHARPEN 0 //ON:1/OFF:0 /a simple sharpen filter, might be counterproductive to FXAA and BLOOM, hence disabled by default
#define value 0.98 //Default: 7.5 /higher = more visible effect
//================
#define S_COM_V2 0 //Sharpen Complex v2 from https://github.com/mpc-hc similar to above in effect, maybe more accurate
#define S_val0 5.0 //Default: 5.0 /higher ~ increases sharpness /negative ~ can add extra blurr/strange effect
//================
//UPSCALING FILTERS: //To use those, you have to set rendering res to smaller than window/display size(x1 for best results) and screen scaling filter to "nearest"
//Starting from v1.1.1-28-g70e9979 you can also add Upscaling=True to ini file(check example) to do it automatically
//================
#define xBR 1 //ON:1/OFF:0 /5xBR upscale, nice for 2D games especially those that might be buggy with higher rendering res, initially made by Hyllian - license below
#define VariantB 0 //ON:1/OFF:0 /slightly less effect on fonts, dots and other small details
//================
#define xHQ 0 //ON:1/OFF:0 same as 4xHQ in PPSSPP, but actually using output resolution
#define scaleoffset 0.75 //Default: 0.75 /you can tweek it between 0.5 and 1.0, Note: to little = no effect, to high = ugliness
//================
//OTHER FILTERS: //Most effects from here on can be fully mixed without loosing previous effects. Exceptions: Natural Colors, Advanced Cartoon
//================
#define BLOOM 0 //ON:1/OFF:0 /bloom implementation from "my heroics" blog http://myheroics.wordpress.com/2008/09/04/glsl-bloom-shader/
#define KIMOCHI 1 //Senpai!
#define samples 3 //Default: 4 /higher = more glow, worse performance
#define quality 0.22 //Default: 0.18 /lower = smaller glow, better quality
#define Bpower 1.0 //Default: 1.0 /amount of bloom mixed
//================
#define COLORED 1 //ON:1/OFF:0 /coloring part of KrossX Overlay Bloom shader from here http://www.mediafire.com/krossx#ste5pa5ijfa0o
#define Cpower 0.69 //Default: 0.5 /strenght of the effect
//================
#define NATURALC 0 //ON:1/OFF:0 /by popular demand, natular colors, note: this shader can't be fully mixed with smoothing/sharpening/upscaling effects
#define ncpower 0.5 //Default:0.5 / higher = more natural color, check note line above
//================
#define ACARTOON 0 //ON:1/OFF:0 Advanced Cartoon from Guest |
eFootball Chelito 19 |
v1.6.3 |
2025-03-18 |
Error in shader program link: info: Link failed because of missing vertex shader.
fs: 00004000:00000022 Tex TexAlpha Flat TFuncMod
#version 300 es
#extension GL_EXT_shader_framebuffer_fetch : require
precision lowp float;
uniform sampler2D tex;
flat in vec4 v_color0;
in mediump vec3 v_texcoord;
inout vec4 fragColor0;
void main() {
vec4 t = texture(tex, v_texcoord.xy);
vec4 p = v_color0;
vec4 v = p * t;
fragColor0 = v;
}
vs: 40000000:00000910 HWX T Tex Flat
#version 300 es
precision highp float;
in vec3 position;
in vec2 texcoord;
uniform mat4 u_proj;
uniform mat4 u_world;
uniform mat4 u_view;
uniform vec4 u_uvscaleoffset;
uniform lowp vec4 u_matambientalpha;
flat out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
void main() {
vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz;
mediump vec3 worldnormal = vec3(0.0, 0.0, 1.0);
vec4 viewPos = u_view * vec4(worldpos, 1.0);
gl_Position = u_proj * viewPos;
v_color0 = u_matambientalpha;
v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0);
}
|
PES FL 2022 |
v1.17.1-334-g1786a4ddb |
2025-03-18 |
Error in shader program link: info: Link failed because of missing shader.
fs: thin3d
#version 320 es
#ifdef GL_ES
precision mediump float;
#endif
#ifdef GL_ES
precision lowp float;
#endif
#if __VERSION__ >= 130
#define varying in
#define texture2D texture
#define gl_FragColor fragColor0
out vec4 fragColor0;
#endif
varying vec4 oColor0;
varying vec2 oTexCoord0;
uniform sampler2D Sampler0;
void main() { gl_FragColor = texture2D(Sampler0, oTexCoord0).zyxw * oColor0; }
vs: thin3d
#version 320 es
#if __VERSION__ >= 130
#define attribute in
#define varying out
#endif
attribute vec3 Position;
attribute vec4 Color0;
attribute vec2 TexCoord0;
varying vec4 oColor0;
varying vec2 oTexCoord0;
uniform mat4 WorldViewProj;
uniform vec2 TintSaturation;
vec3 rgb2hsv(vec3 c) {
vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));
vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));
float d = q.x - min(q.w, q.y);
float e = 1.0e-10;
return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);
}
vec3 hsv2rgb(vec3 c) {
vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
}
void main() {
gl_Position = WorldViewProj * vec4(Position, 1.0);
vec3 hsv = rgb2hsv(Color0.xyz);
hsv.x += TintSaturation.x;
hsv.y *= TintSaturation.y;
oColor0 = vec4(hsv2rgb(hsv), Color0.w);
oTexCoord0 = TexCoord0;
} |
PES FL 2022 |
v1.17.1-334-g1786a4ddb |
2025-03-18 |
Error in shader program link: info: Link failed because of missing shader.
fs: thin3d
#version 320 es
#ifdef GL_ES
precision mediump float;
#endif
#ifdef GL_ES
precision lowp float;
#endif
#if __VERSION__ >= 130
#define varying in
#define texture2D texture
#define gl_FragColor fragColor0
out vec4 fragColor0;
#endif
varying vec4 oColor0;
varying vec2 oTexCoord0;
uniform sampler2D Sampler0;
void main() { gl_FragColor = texture2D(Sampler0, oTexCoord0) * oColor0; }
vs: thin3d
#version 320 es
#if __VERSION__ >= 130
#define attribute in
#define varying out
#endif
attribute vec3 Position;
attribute vec4 Color0;
attribute vec2 TexCoord0;
varying vec4 oColor0;
varying vec2 oTexCoord0;
uniform mat4 WorldViewProj;
uniform vec2 TintSaturation;
vec3 rgb2hsv(vec3 c) {
vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));
vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));
float d = q.x - min(q.w, q.y);
float e = 1.0e-10;
return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);
}
vec3 hsv2rgb(vec3 c) {
vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
}
void main() {
gl_Position = WorldViewProj * vec4(Position, 1.0);
vec3 hsv = rgb2hsv(Color0.xyz);
hsv.x += TintSaturation.x;
hsv.y *= TintSaturation.y;
oColor0 = vec4(hsv2rgb(hsv), Color0.w);
oTexCoord0 = TexCoord0;
} |
EFOOTBALL NEW PATCH SEASON 2025.... |
v1.18.1 |
2025-03-18 |
Error in shader program link: info: Variable u_texelDelta has unmatched precision qualifier in different shaders
fs: postshader
#version 320 es
precision mediump float;
precision highp int;
uniform vec2 u_texelDelta;
uniform vec2 u_pixelDelta;
layout(binding = 0) uniform mediump sampler2D sampler0;
uniform vec4 u_time;
in vec2 v_texcoord0;
out vec4 _RESERVED_IDENTIFIER_FIXUP_gl_FragColor;
in vec4 v_texcoordNC0;
in vec4 v_texcoordNC1;
in vec4 v_texcoordNC2;
in vec4 v_texcoordNC3;
mediump int SEPIA;
mediump int GRAYSCALE;
mediump int NEGATIVE;
mediump int PSPCOLORS;
bvec4 _and_(bvec4 A, bvec4 B)
{
return bvec4(A.x && B.x, A.y && B.y, A.z && B.z, A.w && B.w);
}
vec4 df(vec4 A, vec4 B)
{
return abs(A - B);
}
bvec4 close(vec4 A, vec4 B)
{
vec4 param = A;
vec4 param_1 = B;
return lessThan(df(param, param_1), vec4(15.0));
}
bvec4 _or_(bvec4 A, bvec4 B)
{
return bvec4(A.x || B.x, A.y || B.y, A.z || B.z, A.w || B.w);
}
vec4 weighted_distance(vec4 a, vec4 b, vec4 c, vec4 d, vec4 e, vec4 f, vec4 g, vec4 h)
{
vec4 param = a;
vec4 param_1 = b;
vec4 param_2 = a;
vec4 param_3 = c;
vec4 param_4 = d;
vec4 param_5 = e;
vec4 param_6 = d;
vec4 param_7 = f;
vec4 param_8 = g;
vec4 param_9 = h;
return (((df(param, param_1) + df(param_2, param_3)) + df(param_4, param_5)) + df(param_6, param_7)) + (df(param_8, param_9) * 4.0);
}
vec3 processxBR(vec3 color)
{
vec2 pS = vec2(1.0) / u_texelDelta;
vec2 fp = fract(v_texcoord0 * pS);
vec2 TexCoord_0 = v_texcoord0 - (fp * u_pixelDelta);
vec2 dx = vec2(u_texelDelta.x, 0.0);
vec2 dy = vec2(0.0, u_texelDelta.y);
vec2 y2 = dy + dy;
vec2 x2 = dx + dx;
vec3 A = texture(sampler0, (TexCoord_0 - dx) - dy).xyz;
vec3 B = texture(sampler0, TexCoord_0 - dy).xyz;
vec3 C = texture(sampler0, (TexCoord_0 + dx) - dy).xyz;
vec3 D = texture(sampler0, TexCoord_0 - dx).xyz;
vec3 E = texture(sampler0, TexCoord_0).xyz;
vec3 F = texture(sampler0, TexCoord_0 + dx).xyz;
vec3 G = texture(sampler0, (TexCoord_0 - dx) + dy).xyz;
vec3 H = texture(sampler0, TexCoord_0 + dy).xyz;
vec3 I = texture(sampler0, (TexCoord_0 + dx) + dy).xyz;
vec3 A1 = texture(sampler0, (TexCoord_0 - dx) - y2).xyz;
vec3 C1 = texture(sampler0, (TexCoord_0 + dx) - y2).xyz;
vec3 A0 = texture(sampler0, (TexCoord_0 - x2) - dy).xyz;
vec3 G0 = texture(sampler0, (TexCoord_0 - x2) + dy).xyz;
vec3 C4 = texture(sampler0, (TexCoord_0 + x2) - dy).xyz;
vec3 I4 = texture(sampler0, (TexCoord_0 + x2) + dy).xyz;
vec3 G5 = texture(sampler0, (TexCoord_0 - dx) + y2).xyz;
vec3 I5 = texture(sampler0, (TexCoord_0 + dx) + y2).xyz;
vec3 B1 = texture(sampler0, TexCoord_0 - y2).xyz;
vec3 D0 = texture(sampler0, TexCoord_0 - x2).xyz;
vec3 H5 = texture(sampler0, TexCoord_0 + y2).xyz;
vec3 F4 = texture(sampler0, TexCoord_0 + x2).xyz;
vec4 b = vec4(dot(B, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)), dot(D, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)), dot(H, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)), dot(F, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)));
vec4 c = vec4(dot(C, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)), dot(A, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)), dot(G, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)), dot(I, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)));
vec4 d = vec4(b.y, b.z, b.w, b.x);
vec4 e = vec4(dot(E, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)));
vec4 f = vec4(b.w, b.x, b.y, b.z);
vec4 g = vec4(c.z, c.w, c.x, c.y);
vec4 h = vec4(b.z, b.w, b.x, b.y);
vec4 i = vec4(c.w, c.x, c.y, c.z);
vec4 i4 = vec4(dot(I4, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)), dot(C1, vec3(16.1630001068115234375, 23.3509998321533203125, 8.477199554443359375)) |
eFootball PC - V. |
v1.6.3 |
2025-03-17 |
Error in shader program link: info: Link failed because of missing vertex shader.
fs: 00000000:00200022 Tex TexAlpha Fog TFuncMod
#version 300 es
#extension GL_EXT_shader_framebuffer_fetch : require
precision lowp float;
uniform sampler2D tex;
in vec4 v_color0;
uniform vec3 u_fogcolor;
in mediump float v_fogdepth;
in mediump vec3 v_texcoord;
inout vec4 fragColor0;
void main() {
vec4 t = texture(tex, v_texcoord.xy);
vec4 p = v_color0;
vec4 v = p * t;
float fogCoef = clamp(v_fogdepth, 0.0, 1.0);
v = mix(vec4(u_fogcolor, v.a), v, fogCoef);
fragColor0 = v;
}
vs: 00000000:0000091c HWX C T Fog Tex
#version 300 es
precision highp float;
in vec3 position;
in vec2 texcoord;
in lowp vec4 color0;
uniform mat4 u_proj;
uniform mat4 u_world;
uniform mat4 u_view;
uniform vec4 u_uvscaleoffset;
uniform lowp vec4 u_matambientalpha;
uniform highp vec2 u_fogcoef;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
out mediump float v_fogdepth;
void main() {
vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz;
mediump vec3 worldnormal = vec3(0.0, 0.0, 1.0);
vec4 viewPos = u_view * vec4(worldpos, 1.0);
gl_Position = u_proj * viewPos;
v_color0 = color0;
v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0);
v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y;
}
|
eFootball PC - V. |
v1.6.3-432-gfd6c3145d |
2025-03-16 |
Error in shader program link: info: L0100 GLSL allows exactly two attached shaders (one of each type) per program
fs: 00000000:0001d022 Tex TexAlpha TFuncMod AlphaTest0 >
#version 100
precision lowp float;
uniform sampler2D tex;
uniform sampler2D testtex;
varying vec4 v_color0;
varying mediump vec3 v_texcoord;
void main() {
vec4 t = texture2D(tex, v_texcoord.xy);
vec4 p = v_color0;
vec4 v = p * t;
if (v.a < 0.002) discard;
gl_FragColor = v;
}
vs: 00000000:0000001a THR C Tex
#version 100
precision highp float;
attribute vec4 position;
attribute vec2 texcoord;
attribute lowp vec4 color0;
uniform mat4 u_proj_through;
varying lowp vec4 v_color0;
varying mediump vec3 v_texcoord;
void main() {
v_texcoord = vec3(texcoord, 1.0);
v_color0 = color0;
gl_Position = u_proj_through * vec4(position.xyz, 1.0);
}
|
eFootball PC - V. |
v1.6.3 |
2025-03-15 |
Error in shader program link: info: Link failed because of missing vertex shader.
fs: 00004000:00000000 Flat
#version 300 es
#extension GL_ARM_shader_framebuffer_fetch : require
precision lowp float;
flat in vec4 v_color0;
out vec4 fragColor0;
void main() {
vec4 v = v_color0 ;
fragColor0 = v;
}
vs: 40000000:00000002 THR Flat
#version 300 es
precision highp float;
in vec4 position;
in lowp vec4 color0;
uniform mat4 u_proj_through;
flat out lowp vec4 v_color0;
void main() {
v_color0 = color0;
gl_Position = u_proj_through * vec4(position.xyz, 1.0);
}
|
eFootball Chelito 19 |
v1.6.3 |
2025-03-13 |
Error in shader program link: info: Link Error: Fragment shader is missing.
fs: 00004000:00000022 Tex TexAlpha Flat TFuncMod
#version 300 es
#extension GL_EXT_shader_framebuffer_fetch : require
precision lowp float;
uniform sampler2D tex;
flat in vec4 v_color0;
in highp vec3 v_texcoord;
inout vec4 fragColor0;
void main() {
vec4 t = texture(tex, v_texcoord.xy);
vec4 p = v_color0;
vec4 v = p * t;
fragColor0 = v;
}
vs: 40000000:00000918 HWX C T Tex Flat
#version 300 es
precision highp float;
in vec3 position;
in vec2 texcoord;
in lowp vec4 color0;
uniform mat4 u_proj;
uniform mat4 u_world;
uniform mat4 u_view;
uniform vec4 u_uvscaleoffset;
uniform lowp vec4 u_matambientalpha;
flat out lowp vec4 v_color0;
out highp vec3 v_texcoord;
void main() {
vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz;
mediump vec3 worldnormal = vec3(0.0, 0.0, 1.0);
vec4 viewPos = u_view * vec4(worldpos, 1.0);
gl_Position = u_proj * viewPos;
v_color0 = color0;
v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0);
}
|
FIFA 08 |
v1.10.3 |
2025-03-13 |
Error in shader program link: info: cannot find a matched output for input v_texcoordNC0
cannot find a matched output for input v_texcoordNC1
cannot find a matched output for input v_texcoordNC2
cannot find a matched output for input v_texcoordNC3
fs: postshader
#ifdef GL_ES
precision mediump float;
#endif
//Note : Recommend to use PPSSPP v1.1.1-183-gb411fc0 or newer for full functionality, there were some bugs in earlier versions.
//Note2 : Upscaling, smoothing and sharpening filters are not set to be mixed between each other since the results are pointless(they counter each other).
// Awas ngelag! :u
//======================================================================================================================================================================
//SMOOTHING FILTERS: //If you love smooth graphics ~ those are also great for downscaling - to do that, you need to use higher rendering res than your display res
//================
#define FXAA 1 //ON:1/OFF:0 /default FXAA, orginal info below
//================
#define GAUSS_SQ 0 //ON:1/OFF:0 /full square gauss filtering
#define Gsmoothing 2.5 //Default: 3.5 /increase for smoother(blurry) graphics
//================
#define GAUSS_S 0 //ON:1/OFF:0 /simple gauss filtering by Bigpet, slightly different from above /you can find standalone in https://github.com/hrydgard/ppsspp/issues/7242
//================
//SHARPENING FILTERS: //if you need very sharp image, add lots of aliasing
//================
#define SHARPEN 0 //ON:1/OFF:0 /a simple sharpen filter, might be counterproductive to FXAA and BLOOM, hence disabled by default
#define value 0.98 //Default: 7.5 /higher = more visible effect
//================
#define S_COM_V2 0 //Sharpen Complex v2 from https://github.com/mpc-hc similar to above in effect, maybe more accurate
#define S_val0 5.0 //Default: 5.0 /higher ~ increases sharpness /negative ~ can add extra blurr/strange effect
//================
//UPSCALING FILTERS: //To use those, you have to set rendering res to smaller than window/display size(x1 for best results) and screen scaling filter to "nearest"
//Starting from v1.1.1-28-g70e9979 you can also add Upscaling=True to ini file(check example) to do it automatically
//================
#define xBR 1 //ON:1/OFF:0 /5xBR upscale, nice for 2D games especially those that might be buggy with higher rendering res, initially made by Hyllian - license below
#define VariantB 0 //ON:1/OFF:0 /slightly less effect on fonts, dots and other small details
//================
#define xHQ 0 //ON:1/OFF:0 same as 4xHQ in PPSSPP, but actually using output resolution
#define scaleoffset 0.75 //Default: 0.75 /you can tweek it between 0.5 and 1.0, Note: to little = no effect, to high = ugliness
//================
//OTHER FILTERS: //Most effects from here on can be fully mixed without loosing previous effects. Exceptions: Natural Colors, Advanced Cartoon
//================
#define BLOOM 0 //ON:1/OFF:0 /bloom implementation from "my heroics" blog http://myheroics.wordpress.com/2008/09/04/glsl-bloom-shader/
#define KIMOCHI 1 //Senpai!
#define samples 3 //Default: 4 /higher = more glow, worse performance
#define quality 0.22 //Default: 0.18 /lower = smaller glow, better quality
#define Bpower 1.0 //Default: 1.0 /amount of bloom mixed
//================
#define COLORED 1 //ON:1/OFF:0 /coloring part of KrossX Overlay Bloom shader from here http://www.mediafire.com/krossx#ste5pa5ijfa0o
#define Cpower 0.69 //Default: 0.5 /strenght of the effect
//================
#define NATURALC 0 //ON:1/OFF:0 /by popular demand, natular colors, note: this shader can't be fully mixed with smoothing/sharpening/upscaling effects
#define ncpower 0.5 //Default:0.5 / higher = more natural color, check note line above
//================
#define ACARTOON 0 //ON:1/OFF:0 Advanced Cartoon from Guest |
DBS TTT LATINO - LOS IJUE30S |
v1.11.3 |
2025-03-12 |
Error in shader program link: info: L0001 Invalid shader type loaded
fs: 00000000:00800022 Tex TexAlpha 2x TFuncMod
#version 320 es
#extension GL_EXT_shader_framebuffer_fetch : require
// Mali-G52 - GLSL 320
#define DISCARD discard
precision lowp float;
precision highp int;
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
uniform sampler2D tex;
in lowp vec4 v_color0;
in mediump vec3 v_texcoord;
out vec4 fragColor0;
void main() {
vec4 t = texture(tex, v_texcoord.xy);
vec4 p = v_color0;
vec4 v = p * t;
v.rgb = clamp(v.rgb * 2.0, 0.0, 1.0);
fragColor0 = v;
}
vs: 00000000:00000012 THR Tex
#version 320 es
// Mali-G52 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
in vec4 position;
in vec2 texcoord;
in lowp vec4 color0;
uniform mat4 u_proj_through;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
void main() {
v_texcoord = vec3(texcoord, 1.0);
v_color0 = color0;
vec4 outPos = mul(u_proj_through, vec4(position.xyz, 1.0));
gl_Position = outPos;
}
|
DBS TTT LATINO - LOS IJUE30S |
v1.11.3 |
2025-03-12 |
Error in shader program link: info: L0001 Invalid shader type loaded
fs: 00000000:00800022 Tex TexAlpha 2x TFuncMod
#version 320 es
#extension GL_EXT_shader_framebuffer_fetch : require
// Mali-G52 - GLSL 320
#define DISCARD discard
precision lowp float;
precision highp int;
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
uniform sampler2D tex;
in lowp vec4 v_color0;
in mediump vec3 v_texcoord;
out vec4 fragColor0;
void main() {
vec4 t = texture(tex, v_texcoord.xy);
vec4 p = v_color0;
vec4 v = p * t;
v.rgb = clamp(v.rgb * 2.0, 0.0, 1.0);
fragColor0 = v;
}
vs: 00000000:0000001a THR C Tex
#version 320 es
// Mali-G52 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
in vec4 position;
in vec2 texcoord;
in lowp vec4 color0;
uniform mat4 u_proj_through;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
void main() {
v_texcoord = vec3(texcoord, 1.0);
v_color0 = color0;
vec4 outPos = mul(u_proj_through, vec4(position.xyz, 1.0));
gl_Position = outPos;
}
|
DBS TTT LATINO - LOS IJUE30S |
v1.11.3 |
2025-03-12 |
Error in shader program link: info: L0001 Invalid shader type loaded
fs: 00000000:00000002 Tex TFuncMod
#version 320 es
#extension GL_EXT_shader_framebuffer_fetch : require
// Mali-G52 - GLSL 320
#define DISCARD discard
precision lowp float;
precision highp int;
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
uniform sampler2D tex;
in lowp vec4 v_color0;
in mediump vec3 v_texcoord;
out vec4 fragColor0;
void main() {
vec4 t = texture(tex, v_texcoord.xy);
vec4 p = v_color0;
vec4 v = vec4(t.rgb * p.rgb, p.a);
fragColor0 = v;
}
vs: 00000000:0000001a THR C Tex
#version 320 es
// Mali-G52 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
in vec4 position;
in vec2 texcoord;
in lowp vec4 color0;
uniform mat4 u_proj_through;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
void main() {
v_texcoord = vec3(texcoord, 1.0);
v_color0 = color0;
vec4 outPos = mul(u_proj_through, vec4(position.xyz, 1.0));
gl_Position = outPos;
}
|
DBS TTT LATINO - LOS IJUE30S |
v1.11.3 |
2025-03-12 |
Error in shader program link: info: L0001 Invalid shader type loaded
fs: 00000000:00000002 Tex TFuncMod
#version 320 es
#extension GL_EXT_shader_framebuffer_fetch : require
// Mali-G52 - GLSL 320
#define DISCARD discard
precision lowp float;
precision highp int;
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
uniform sampler2D tex;
in lowp vec4 v_color0;
in mediump vec3 v_texcoord;
out vec4 fragColor0;
void main() {
vec4 t = texture(tex, v_texcoord.xy);
vec4 p = v_color0;
vec4 v = vec4(t.rgb * p.rgb, p.a);
fragColor0 = v;
}
vs: 00000000:00000012 THR Tex
#version 320 es
// Mali-G52 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
in vec4 position;
in vec2 texcoord;
in lowp vec4 color0;
uniform mat4 u_proj_through;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
void main() {
v_texcoord = vec3(texcoord, 1.0);
v_color0 = color0;
vec4 outPos = mul(u_proj_through, vec4(position.xyz, 1.0));
gl_Position = outPos;
}
|
DBS TTT LATINO - LOS IJUE30S |
v1.11.3 |
2025-03-12 |
Error in shader program link: info: L0001 Invalid shader type loaded
fs: 00000000:00000022 Tex TexAlpha TFuncMod
#version 320 es
#extension GL_EXT_shader_framebuffer_fetch : require
// Mali-G52 - GLSL 320
#define DISCARD discard
precision lowp float;
precision highp int;
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
uniform sampler2D tex;
in lowp vec4 v_color0;
in mediump vec3 v_texcoord;
out vec4 fragColor0;
void main() {
vec4 t = texture(tex, v_texcoord.xy);
vec4 p = v_color0;
vec4 v = p * t;
fragColor0 = v;
}
vs: 00000000:0000001a THR C Tex
#version 320 es
// Mali-G52 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
in vec4 position;
in vec2 texcoord;
in lowp vec4 color0;
uniform mat4 u_proj_through;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
void main() {
v_texcoord = vec3(texcoord, 1.0);
v_color0 = color0;
vec4 outPos = mul(u_proj_through, vec4(position.xyz, 1.0));
gl_Position = outPos;
}
|
eFootball Chelito 19 |
v1.6.3 |
2025-03-11 |
Error in shader program link: info: L0100 GLSL allows exactly two attached shaders (one of each type) per program
fs: 00004000:0001d002 Tex Flat TFuncMod AlphaTest0 >
#version 100
precision lowp float;
uniform sampler2D tex;
uniform sampler2D testtex;
varying vec4 v_color0;
varying mediump vec3 v_texcoord;
void main() {
vec4 t = texture2D(tex, v_texcoord.xy);
vec4 p = v_color0;
vec4 v = vec4(t.rgb * p.rgb, p.a);
if (v.a < 0.002) discard;
gl_FragColor = v;
}
vs: 40000000:00000012 THR Tex Flat
#version 100
precision highp float;
attribute vec4 position;
attribute vec2 texcoord;
attribute lowp vec4 color0;
uniform mat4 u_proj_through;
varying lowp vec4 v_color0;
varying mediump vec3 v_texcoord;
void main() {
v_texcoord = vec3(texcoord, 1.0);
v_color0 = color0;
gl_Position = u_proj_through * vec4(position.xyz, 1.0);
}
|
Grand Theft Auto: Vice City Stories |
v1.18 |
2025-03-11 |
Error in shader program link: info: ERROR: Compiled vertex shader was corrupt.
fs: 10180000:00000802 Tex LM FragUber TFuncMod
#version 300 es
#extension GL_EXT_shader_framebuffer_fetch : require
// Driver: Apple A11 GPU - GLSL 300
#define DISCARD discard
precision lowp float;
precision highp int;
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 10180000:00000802 Tex LM FragUber TFuncMod
uniform sampler2D tex;
uniform vec2 u_texNoAlphaMul;
in lowp vec4 v_color0;
in lowp vec3 v_color1;
in mediump float v_fogdepth;
in mediump vec3 v_texcoord;
out vec4 fragColor0;
void main() {
vec4 s = vec4(v_color1, 0.0);
vec4 t = texture(tex, v_texcoord.xy);
vec4 p = v_color0;
t.a = max(t.a, u_texNoAlphaMul.x);
vec4 v = p * t + s;
v.rgb *= u_texNoAlphaMul.y;
fragColor0 = v;
}
vs: 01000000:80120b21 HWX T N LM UVEnv Light: LightUberShader 0: c:0 t:0 1: c:0 t:0 Cull
#version 300 es
#extension GL_APPLE_clip_distance : enable
// Driver: Apple A11 GPU - GLSL 300
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 01000000:80120b21 HWX T N LM UVEnv Light: LightUberShader 0: c:0 t:0 1: c:0 t:0 Cull
in vec3 position;
in mediump vec3 normal;
in vec2 texcoord;
uniform mat4 u_proj;
uniform mat4 u_world;
uniform mat4 u_view;
uniform vec4 u_uvscaleoffset;
uniform uint u_lightControl;
uniform vec3 u_lightpos0;
uniform mediump vec3 u_lightatt0;
uniform mediump vec3 u_lightdir0;
uniform mediump vec2 u_lightangle_spotCoef0;
uniform lowp vec3 u_lightambient0;
uniform lowp vec3 u_lightdiffuse0;
uniform lowp vec3 u_lightspecular0;
uniform vec3 u_lightpos1;
uniform mediump vec3 u_lightatt1;
uniform mediump vec3 u_lightdir1;
uniform mediump vec2 u_lightangle_spotCoef1;
uniform lowp vec3 u_lightambient1;
uniform lowp vec3 u_lightdiffuse1;
uniform lowp vec3 u_lightspecular1;
uniform vec3 u_lightpos2;
uniform mediump vec3 u_lightatt2;
uniform mediump vec3 u_lightdir2;
uniform mediump vec2 u_lightangle_spotCoef2;
uniform lowp vec3 u_lightambient2;
uniform lowp vec3 u_lightdiffuse2;
uniform lowp vec3 u_lightspecular2;
uniform vec3 u_lightpos3;
uniform mediump vec3 u_lightatt3;
uniform mediump vec3 u_lightdir3;
uniform mediump vec2 u_lightangle_spotCoef3;
uniform lowp vec3 u_lightambient3;
uniform lowp vec3 u_lightdiffuse3;
uniform lowp vec3 u_lightspecular3;
uniform lowp vec4 u_ambient;
uniform lowp vec3 u_matdiffuse;
uniform lowp vec4 u_matspecular;
uniform lowp vec3 u_matemissive;
uniform lowp vec4 u_matambientalpha;
uniform highp vec2 u_fogcoef;
uniform highp vec4 u_depthRange;
uniform highp vec4 u_cullRangeMin;
uniform highp vec4 u_cullRangeMax;
out lowp vec4 v_color0;
out lowp vec3 v_color1;
out mediump vec3 v_texcoord;
out mediump float v_fogdepth;
vec3 normalizeOr001(vec3 v) {
return length(v) == 0.0 ? vec3(0.0, 0.0, 1.0) : normalize(v);
}
void main() {
vec3 worldpos = mul(vec4(position, 1.0), u_world).xyz;
mediump vec3 worldnormal = normalizeOr001(mul(vec4(normal, 0.0), u_world).xyz);
vec4 viewPos = vec4(mul(vec4(worldpos, 1.0), u_view).xyz, 1.0);
vec4 outPos = mul(u_proj, viewPos);
vec4 ambientColor = u_matambientalpha;
vec3 diffuseColor = u_matdiffuse.rgb;
vec3 specularColor = u_matspecular.rgb;
lowp vec4 lightSum0 = u_ambient * ambientColor + vec4(u_matemissive, 0.0);
lowp vec3 lightSum1 = splat3(0.0);
vec3 toLight;
lowp vec3 diffuse;
float distance;
lowp float lightScale;
mediump float ldot;
lowp float angle;
uint comp; uint type; float attenuation;
if ((u_lightControl & 0x1u) != 0x0u) {
comp = (u_lightControl >> 0x04u) & 0x3u;
type = (u_lightControl >> 0x06u) & 0x3u;
toLight = u_lightpos0;
if (type != 0x0u) {
toLight -= worldpos;
distance = length(toLight);
toLight /= distance;
attenuation = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0);
if (type == 0x01u) {
lightScale = attenuation;
} else {
angle = dot(u_lightdir0, toLight);
if (angle >= u_lightangle_spotCoef0.x) {
lightScale = attenuation * (u_lighta |
RIDGE RACER® |
v1.12.2 |
2025-03-10 |
Error in shader program link: info: (unknown reason)
fs: postshader
#ifdef GL_ES
precision mediump float;
#endif
/*
AA shader 4.o / AA shader 4.o - filtro
Copyright (C) 2014 guest(r) - [email protected]
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
// Modified as video aware smoothing effect for PPSSPP.
// Some variable definitions had to be moved inside functions(and so repeated) due to glsl->hlsl auto translation failing.
// Also auto translation fails with bool uniform, which is why u_video is defined as float.
#ifdef GL_ES
precision mediump float;
precision mediump int;
#endif
uniform sampler2D sampler0;
uniform float u_video;
//===========
varying vec2 v_texcoord0;
const vec3 dt = vec3(1.0,1.0,1.0);
vec3 texture2d (vec2 texcoord) {
float scale = 1.0;
if (u_video==1.0){
scale = 2.0;
} else {
scale = 7.0;
}
vec4 yx = vec4(1.0/480.0,1.0/272.0,-1.0/480.0,-1.0/272.0)/scale;
vec4 xy = vec4(2.0/480.0,2.0/272.0,-2.0/480.0,-2.0/272.0)/scale;
vec3 s00 = texture2D(sampler0, texcoord + yx.zw).xyz;
vec3 s20 = texture2D(sampler0, texcoord + yx.xw).xyz;
vec3 s22 = texture2D(sampler0, texcoord + yx.xy).xyz;
vec3 s02 = texture2D(sampler0, texcoord + yx.zy).xyz;
float m1=dot(abs(s00-s22),dt)+0.001;
float m2=dot(abs(s02-s20),dt)+0.001;
return 0.5*(m2*(s00+s22)+m1*(s02+s20))/(m1+m2);
}
vec3 texture2dd (vec2 texcoord) {
float scale = 1.0;
if (u_video==1.0){
scale = 2.0;
} else {
scale = 7.0;
}
vec4 yx = vec4(1.0/480.0,1.0/272.0,-1.0/480.0,-1.0/272.0)/scale;
vec4 xy = vec4(2.0/480.0,2.0/272.0,-2.0/480.0,-2.0/272.0)/scale;
vec3 c11 = texture2D(sampler0, texcoord ).xyz;
vec3 c00 = texture2D(sampler0, texcoord + xy.zw).xyz;
vec3 c20 = texture2D(sampler0, texcoord + xy.xw).xyz;
vec3 c22 = texture2D(sampler0, texcoord + xy.xy).xyz;
vec3 c02 = texture2D(sampler0, texcoord + xy.zy).xyz;
vec3 s00 = texture2D(sampler0, texcoord + yx.zw).xyz;
vec3 s20 = texture2D(sampler0, texcoord + yx.xw).xyz;
vec3 s22 = texture2D(sampler0, texcoord + yx.xy).xyz;
vec3 s02 = texture2D(sampler0, texcoord + yx.zy).xyz;
float d1=dot(abs(c00-c22),dt)+0.001;
float d2=dot(abs(c20-c02),dt)+0.001;
float m1=dot(abs(s00-s22),dt)+0.001;
float m2=dot(abs(s02-s20),dt)+0.001;
vec3 t2=(d1*(c20+c02)+d2*(c00+c22))/(2.0*(d1+d2));
return 0.25*(c11+t2+(m2*(s00+s22)+m1*(s02+s20))/(m1+m2));
}
void main() {
float scale = 7.0;
bool filtro = false;
if (u_video==1.0){
scale = 2.0;
filtro = true;
} else {
scale = 7.0;
filtro = false;
}
// Calculating texel coordinates
vec2 size = vec2(480.0,272.0)*scale;
vec2 inv_size = vec2(1.0/480.0,1.0/272.0)/scale;
vec2 OGL2Pos = v_texcoord0 * size;
vec2 fp = fract(OGL2Pos);
vec2 dx = vec2(inv_size.x,0.0);
vec2 dy = vec2(0.0, inv_size.y);
vec2 g1 = vec2(inv_size.x,inv_size.y);
vec2 g2 = vec2(-inv_size.x,inv_size.y);
vec2 pC4 = floor(OGL2Pos) * inv_size + 0.5*inv_size;
// Reading the texels
vec3 C0 = texture2d(pC4 - g1);
vec3 C1 = texture2d(pC4 - dy);
vec3 C2 = texture2d(pC4 - g2);
vec3 C3 = texture2d(pC4 - dx);
vec3 C4 = texture2d(pC4 );
vec3 C5 = texture2d(pC4 + dx);
vec3 C6 = texture2d(pC4 + g2);
vec3 C7 = texture2d(pC4 + dy);
vec3 C8 = texture2d(pC4 + g1);
vec3 ul, ur, dl, dr;
float m1, m2;
m1 = dot(abs(C0-C4),dt)+0.001 |
NEED FOR SPEED™ MOST WANTED 5-1-0 |
v1.12.2 |
2025-03-10 |
Error in shader program link: info: (unknown reason)
fs: postshader
#ifdef GL_ES
precision mediump float;
#endif
/*
AA shader 4.o / AA shader 4.o - filtro
Copyright (C) 2014 guest(r) - [email protected]
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
// Modified as video aware smoothing effect for PPSSPP.
// Some variable definitions had to be moved inside functions(and so repeated) due to glsl->hlsl auto translation failing.
// Also auto translation fails with bool uniform, which is why u_video is defined as float.
#ifdef GL_ES
precision mediump float;
precision mediump int;
#endif
uniform sampler2D sampler0;
uniform float u_video;
//===========
varying vec2 v_texcoord0;
const vec3 dt = vec3(1.0,1.0,1.0);
vec3 texture2d (vec2 texcoord) {
float scale = 1.0;
if (u_video==1.0){
scale = 2.0;
} else {
scale = 7.0;
}
vec4 yx = vec4(1.0/480.0,1.0/272.0,-1.0/480.0,-1.0/272.0)/scale;
vec4 xy = vec4(2.0/480.0,2.0/272.0,-2.0/480.0,-2.0/272.0)/scale;
vec3 s00 = texture2D(sampler0, texcoord + yx.zw).xyz;
vec3 s20 = texture2D(sampler0, texcoord + yx.xw).xyz;
vec3 s22 = texture2D(sampler0, texcoord + yx.xy).xyz;
vec3 s02 = texture2D(sampler0, texcoord + yx.zy).xyz;
float m1=dot(abs(s00-s22),dt)+0.001;
float m2=dot(abs(s02-s20),dt)+0.001;
return 0.5*(m2*(s00+s22)+m1*(s02+s20))/(m1+m2);
}
vec3 texture2dd (vec2 texcoord) {
float scale = 1.0;
if (u_video==1.0){
scale = 2.0;
} else {
scale = 7.0;
}
vec4 yx = vec4(1.0/480.0,1.0/272.0,-1.0/480.0,-1.0/272.0)/scale;
vec4 xy = vec4(2.0/480.0,2.0/272.0,-2.0/480.0,-2.0/272.0)/scale;
vec3 c11 = texture2D(sampler0, texcoord ).xyz;
vec3 c00 = texture2D(sampler0, texcoord + xy.zw).xyz;
vec3 c20 = texture2D(sampler0, texcoord + xy.xw).xyz;
vec3 c22 = texture2D(sampler0, texcoord + xy.xy).xyz;
vec3 c02 = texture2D(sampler0, texcoord + xy.zy).xyz;
vec3 s00 = texture2D(sampler0, texcoord + yx.zw).xyz;
vec3 s20 = texture2D(sampler0, texcoord + yx.xw).xyz;
vec3 s22 = texture2D(sampler0, texcoord + yx.xy).xyz;
vec3 s02 = texture2D(sampler0, texcoord + yx.zy).xyz;
float d1=dot(abs(c00-c22),dt)+0.001;
float d2=dot(abs(c20-c02),dt)+0.001;
float m1=dot(abs(s00-s22),dt)+0.001;
float m2=dot(abs(s02-s20),dt)+0.001;
vec3 t2=(d1*(c20+c02)+d2*(c00+c22))/(2.0*(d1+d2));
return 0.25*(c11+t2+(m2*(s00+s22)+m1*(s02+s20))/(m1+m2));
}
void main() {
float scale = 7.0;
bool filtro = false;
if (u_video==1.0){
scale = 2.0;
filtro = true;
} else {
scale = 7.0;
filtro = false;
}
// Calculating texel coordinates
vec2 size = vec2(480.0,272.0)*scale;
vec2 inv_size = vec2(1.0/480.0,1.0/272.0)/scale;
vec2 OGL2Pos = v_texcoord0 * size;
vec2 fp = fract(OGL2Pos);
vec2 dx = vec2(inv_size.x,0.0);
vec2 dy = vec2(0.0, inv_size.y);
vec2 g1 = vec2(inv_size.x,inv_size.y);
vec2 g2 = vec2(-inv_size.x,inv_size.y);
vec2 pC4 = floor(OGL2Pos) * inv_size + 0.5*inv_size;
// Reading the texels
vec3 C0 = texture2d(pC4 - g1);
vec3 C1 = texture2d(pC4 - dy);
vec3 C2 = texture2d(pC4 - g2);
vec3 C3 = texture2d(pC4 - dx);
vec3 C4 = texture2d(pC4 );
vec3 C5 = texture2d(pC4 + dx);
vec3 C6 = texture2d(pC4 + g2);
vec3 C7 = texture2d(pC4 + dy);
vec3 C8 = texture2d(pC4 + g1);
vec3 ul, ur, dl, dr;
float m1, m2;
m1 = dot(abs(C0-C4),dt)+0.001 |
Ben 10 Ultimate Alien Cosmic Destruction |
v1.6.3 |
2025-03-09 |
Error in shader program link: info: Link Error: Vertex shader is missing.
fs: 00002a82:0020d022 Tex TexAlpha Fog ReplaceBlend_2A:10_B:10_Eq:0 TFuncMod AlphaTest >
#version 300 es
#extension GL_EXT_shader_framebuffer_fetch : require
precision lowp float;
uniform sampler2D tex;
uniform vec3 u_blendFixA;
uniform vec3 u_blendFixB;
uniform sampler2D testtex;
in vec4 v_color0;
uniform vec3 u_fogcolor;
in highp float v_fogdepth;
in highp vec3 v_texcoord;
inout vec4 fragColor0;
void main() {
vec4 t = texture(tex, v_texcoord.xy);
vec4 p = v_color0;
vec4 v = p * t;
float aResult = texture(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a;
if (aResult < 0.5) discard;
float fogCoef = clamp(v_fogdepth, 0.0, 1.0);
v = mix(vec4(u_fogcolor, v.a), v, fogCoef);
v.rgb = v.rgb * u_blendFixA;
fragColor0 = v;
}
vs: 00000000:0000091c HWX C T Fog Tex
#version 300 es
precision highp float;
in vec3 position;
in vec2 texcoord;
in lowp vec4 color0;
uniform mat4 u_proj;
uniform mat4 u_world;
uniform mat4 u_view;
uniform vec4 u_uvscaleoffset;
uniform lowp vec4 u_matambientalpha;
uniform highp vec2 u_fogcoef;
out lowp vec4 v_color0;
out highp vec3 v_texcoord;
out highp float v_fogdepth;
void main() {
vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz;
mediump vec3 worldnormal = vec3(0.0, 0.0, 1.0);
vec4 viewPos = u_view * vec4(worldpos, 1.0);
gl_Position = u_proj * viewPos;
v_color0 = color0;
v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0);
v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y;
}
|
eFootball PC - V. |
v1.11.3 |
2025-03-09 |
Error in shader program link: info: Link failed because of missing fragment shader.
fs: thin3d
vs: thin3d
#version 320 es
#if __VERSION__ >= 130
#define attribute in
#define varying out
#endif
attribute vec3 Position;
attribute vec4 Color0;
attribute vec2 TexCoord0;
varying vec4 oColor0;
varying vec2 oTexCoord0;
uniform mat4 WorldViewProj;
void main() {
gl_Position = WorldViewProj * vec4(Position, 1.0);
oColor0 = Color0;
oTexCoord0 = TexCoord0;
}
|
eFootball SM - V. |
v1.6.3 |
2025-03-09 |
Error in shader program link: info: L0100 GLSL allows exactly two attached shaders (one of each type) per program
fs: 00000000:0001d022 Tex TexAlpha TFuncMod AlphaTest0 >
#version 100
precision lowp float;
uniform sampler2D tex;
uniform sampler2D testtex;
varying vec4 v_color0;
varying mediump vec3 v_texcoord;
void main() {
vec4 t = texture2D(tex, v_texcoord.xy);
vec4 p = v_color0;
vec4 v = p * t;
if (v.a < 0.002) discard;
gl_FragColor = v;
}
vs: 00000000:0000001a THR C Tex
#version 100
precision highp float;
attribute vec4 position;
attribute vec2 texcoord;
attribute lowp vec4 color0;
uniform mat4 u_proj_through;
varying lowp vec4 v_color0;
varying mediump vec3 v_texcoord;
void main() {
v_texcoord = vec3(texcoord, 1.0);
v_color0 = color0;
gl_Position = u_proj_through * vec4(position.xyz, 1.0);
}
|
ソードアート・オンライン -インフィニティ・モーメント- |
v1.18.1 |
2025-03-07 |
Error in shader program link: info: Error: Uniform u_texelDelta precision mismatch with other stage.
Error: Linking failed.
fs: postshader
#version 320 es
precision mediump float;
precision highp int;
layout(binding = 0) uniform mediump sampler2D sampler0;
uniform vec2 u_texelDelta;
in vec2 v_texcoord0;
in vec2 v_texcoord1;
out vec4 _RESERVED_IDENTIFIER_FIXUP_gl_FragColor;
void main()
{
vec2 texcoordInPixels = v_texcoord0 * v_texcoord1;
vec2 centerCoord = floor(texcoordInPixels) + vec2(0.5);
vec2 distFromCenter = abs(centerCoord - texcoordInPixels);
float Y = max(distFromCenter.x, distFromCenter.y);
Y *= Y;
float YY = Y * Y;
float YYY = YY * Y;
float LineWeight = YY - (2.7000000476837158203125 * YYY);
LineWeight = 1.0 - (14.0 * LineWeight);
vec3 colour = texture(sampler0, u_texelDelta * centerCoord).xyz * LineWeight;
_RESERVED_IDENTIFIER_FIXUP_gl_FragColor = vec4(colour, 1.0);
}
vs: postshader
#version 320 es
uniform vec2 u_texelDelta;
out vec2 v_texcoord0;
in vec2 a_texcoord0;
in vec4 a_position;
out vec2 v_texcoord1;
void main()
{
v_texcoord0 = a_texcoord0;
gl_Position = a_position;
v_texcoord1 = vec2(1.0) / u_texelDelta;
}
|
ソードアート・オンライン -インフィニティ・モーメント- |
v1.18.1 |
2025-03-07 |
Error in shader program link: info: Error: Uniform u_texelDelta precision mismatch with other stage.
Error: Linking failed.
fs: postshader
#version 320 es
precision mediump float;
precision highp int;
uniform vec2 u_texelDelta;
layout(binding = 0) uniform mediump sampler2D sampler0;
in vec2 v_texcoord0;
in vec2 v_texcoord1;
out vec4 _RESERVED_IDENTIFIER_FIXUP_gl_FragColor;
void main()
{
vec2 texcoordInPixels = ((v_texcoord0 * v_texcoord1) * 272.0) * u_texelDelta.y;
vec2 centerCoord = floor(texcoordInPixels) + vec2(0.5);
vec2 distFromCenter = abs(centerCoord - texcoordInPixels);
float Y = max(distFromCenter.x, distFromCenter.y);
Y *= Y;
float YY = Y * Y;
float YYY = YY * Y;
float LineWeight = YY - (2.7000000476837158203125 * YYY);
LineWeight = 1.0 - (14.0 * LineWeight);
vec3 screen = pow(texture(sampler0, v_texcoord0).xyz, vec3(2.21000003814697265625));
screen = clamp(screen, vec3(0.0), vec3(1.0));
screen = pow(mat3(vec3(0.920000016689300537109375, 0.0350000001490116119384765625, 0.00999999977648258209228515625), vec3(0.23999999463558197021484375, 0.795000016689300537109375, 0.014999999664723873138427734375), vec3(-0.1599999964237213134765625, 0.17000000178813934326171875, 0.97500002384185791015625)) * screen, vec3(0.4545454680919647216796875));
_RESERVED_IDENTIFIER_FIXUP_gl_FragColor = vec4(screen * LineWeight, 1.0);
}
vs: postshader
#version 320 es
uniform vec2 u_texelDelta;
out vec2 v_texcoord0;
in vec2 a_texcoord0;
in vec4 a_position;
out vec2 v_texcoord1;
void main()
{
v_texcoord0 = a_texcoord0;
gl_Position = a_position;
v_texcoord1 = vec2(1.0) / u_texelDelta;
}
|
eFootball Chelito 19 |
v1.6.3 |
2025-03-05 |
Error in shader program link: info: Link Error: Vertex shader is missing.
fs: 00004000:00000000 Flat
#version 300 es
#extension GL_EXT_shader_framebuffer_fetch : require
precision lowp float;
flat in vec4 v_color0;
inout vec4 fragColor0;
void main() {
vec4 v = v_color0 ;
fragColor0 = v;
}
vs: 40000000:00000002 THR Flat
#version 300 es
precision highp float;
in vec4 position;
in lowp vec4 color0;
uniform mat4 u_proj_through;
flat out lowp vec4 v_color0;
void main() {
v_color0 = color0;
gl_Position = u_proj_through * vec4(position.xyz, 1.0);
}
|
FOOTBALL 2025 |
v1.7.4 |
2025-03-05 |
Error in shader program link: info: Error: input v_texcoordNC0 not declared in output from previous stage.
Error: Linking failed.
fs: postshader
//Note : Recommend to use PPSSPP v1.1.1-183-gb411fc0 or newer for full functionality, there were some bugs in earlier versions.
//Note2 : Upscaling, smoothing and sharpening filters are not set to be mixed between each other since the results are pointless(they counter each other).
// Awas ngelag! :u
//======================================================================================================================================================================
//SMOOTHING FILTERS: //If you love smooth graphics ~ those are also great for downscaling - to do that, you need to use higher rendering res than your display res
//================
#define FXAA 1 //ON:1/OFF:0 /default FXAA, orginal info below
//================
#define GAUSS_SQ 0 //ON:1/OFF:0 /full square gauss filtering
#define Gsmoothing 2.5 //Default: 3.5 /increase for smoother(blurry) graphics
//================
#define GAUSS_S 0 //ON:1/OFF:0 /simple gauss filtering by Bigpet, slightly different from above /you can find standalone in https://github.com/hrydgard/ppsspp/issues/7242
//================
//SHARPENING FILTERS: //if you need very sharp image, add lots of aliasing
//================
#define SHARPEN 0 //ON:1/OFF:0 /a simple sharpen filter, might be counterproductive to FXAA and BLOOM, hence disabled by default
#define value 0.98 //Default: 7.5 /higher = more visible effect
//================
#define S_COM_V2 0 //Sharpen Complex v2 from https://github.com/mpc-hc similar to above in effect, maybe more accurate
#define S_val0 5.0 //Default: 5.0 /higher ~ increases sharpness /negative ~ can add extra blurr/strange effect
//================
//UPSCALING FILTERS: //To use those, you have to set rendering res to smaller than window/display size(x1 for best results) and screen scaling filter to "nearest"
//Starting from v1.1.1-28-g70e9979 you can also add Upscaling=True to ini file(check example) to do it automatically
//================
#define xBR 1 //ON:1/OFF:0 /5xBR upscale, nice for 2D games especially those that might be buggy with higher rendering res, initially made by Hyllian - license below
#define VariantB 0 //ON:1/OFF:0 /slightly less effect on fonts, dots and other small details
//================
#define xHQ 0 //ON:1/OFF:0 same as 4xHQ in PPSSPP, but actually using output resolution
#define scaleoffset 0.75 //Default: 0.75 /you can tweek it between 0.5 and 1.0, Note: to little = no effect, to high = ugliness
//================
//OTHER FILTERS: //Most effects from here on can be fully mixed without loosing previous effects. Exceptions: Natural Colors, Advanced Cartoon
//================
#define BLOOM 0 //ON:1/OFF:0 /bloom implementation from "my heroics" blog http://myheroics.wordpress.com/2008/09/04/glsl-bloom-shader/
#define KIMOCHI 1 //Senpai!
#define samples 3 //Default: 4 /higher = more glow, worse performance
#define quality 0.22 //Default: 0.18 /lower = smaller glow, better quality
#define Bpower 1.0 //Default: 1.0 /amount of bloom mixed
//================
#define COLORED 1 //ON:1/OFF:0 /coloring part of KrossX Overlay Bloom shader from here http://www.mediafire.com/krossx#ste5pa5ijfa0o
#define Cpower 0.69 //Default: 0.5 /strenght of the effect
//================
#define NATURALC 0 //ON:1/OFF:0 /by popular demand, natular colors, note: this shader can't be fully mixed with smoothing/sharpening/upscaling effects
#define ncpower 0.5 //Default:0.5 / higher = more natural color, check note line above
//================
#define ACARTOON 0 //ON:1/OFF:0 Advanced Cartoon from Guest shader pack
#define th 0.10 //Default: 0.10 /outlines sensitivity, recommended from 0.00...0.50
#define bb 0.45 //Default: 0.45 /outlines |
Dragon Ball Z: Tenkaichi Tag Team |
v1.11.3-1276-g192a43c1c |
2025-03-04 |
Error in shader program link: info: error: declarations for uniform `u_texelDelta` have mismatching precision qualifiers
fs: postshader
#version 310 es
precision mediump float;
precision highp int;
uniform vec2 u_pixelDelta;
layout(binding = 0) uniform mediump sampler2D sampler0;
uniform vec4 u_time;
uniform vec2 u_texelDelta;
in vec2 v_texcoord0;
out vec4 _RESERVED_IDENTIFIER_FIXUP_gl_FragColor;
in vec4 v_texcoordNC0;
in vec4 v_texcoordNC1;
in vec4 v_texcoordNC2;
in vec4 v_texcoordNC3;
mediump int SEPIA;
mediump int GRAYSCALE;
mediump int NEGATIVE;
mediump int PSPCOLORS;
vec3 processGAUSS_S(inout vec3 color)
{
float GAUSSS_SPAN_MAX = 1.5;
float GAUSSS_KERNEL_SIZE = 5.0;
vec2 offsetS = (u_pixelDelta * GAUSSS_SPAN_MAX) / vec2(GAUSSS_KERNEL_SIZE);
vec3 cGaussS0 = texture(sampler0, v_texcoord0 + (offsetS * vec2(0.0, -2.0))).xyz * 1.0;
vec3 cGaussS1 = texture(sampler0, v_texcoord0 + (offsetS * vec2(-1.0))).xyz * 3.0;
vec3 cGaussS2 = texture(sampler0, v_texcoord0 + (offsetS * vec2(0.0, -1.0))).xyz * 8.0;
vec3 cGaussS3 = texture(sampler0, v_texcoord0 + (offsetS * vec2(1.0, -1.0))).xyz * 3.0;
vec3 cGaussS4 = texture(sampler0, v_texcoord0 + (offsetS * vec2(-2.0, 0.0))).xyz * 1.0;
vec3 cGaussS5 = texture(sampler0, v_texcoord0 + (offsetS * vec2(-1.0, 0.0))).xyz * 8.0;
vec3 cGaussS6 = texture(sampler0, v_texcoord0 + (offsetS * vec2(0.0))).xyz * 10.0;
vec3 cGaussS7 = texture(sampler0, v_texcoord0 + (offsetS * vec2(1.0, 0.0))).xyz * 8.0;
vec3 cGaussS8 = texture(sampler0, v_texcoord0 + (offsetS * vec2(2.0, 0.0))).xyz * 1.0;
vec3 cGaussS9 = texture(sampler0, v_texcoord0 + (offsetS * vec2(-1.0, 1.0))).xyz * 3.0;
vec3 cGaussS10 = texture(sampler0, v_texcoord0 + (offsetS * vec2(0.0, 1.0))).xyz * 8.0;
vec3 cGaussS11 = texture(sampler0, v_texcoord0 + (offsetS * vec2(1.0))).xyz * 3.0;
vec3 cGaussS12 = texture(sampler0, v_texcoord0 + (offsetS * vec2(0.0, 2.0))).xyz * 1.0;
color = (((((((((((cGaussS0 + cGaussS1) + cGaussS2) + cGaussS3) + cGaussS4) + cGaussS5) + cGaussS6) + cGaussS7) + cGaussS8) + cGaussS9) + cGaussS10) + cGaussS11) + cGaussS12;
color /= vec3(58.0);
return color;
}
vec3 processSHADEBOOST(inout vec3 color)
{
float sat = 1.89999997615814208984375;
float brt = 0.699999988079071044921875;
float con = 1.2000000476837158203125;
float AvgLumR = 1.5;
float AvgLumG = 1.5;
float AvgLumB = 1.5;
if (SEPIA == 1)
{
sat = 0.00999999977648258209228515625;
brt = 1.75;
con = 1.0;
AvgLumR = 0.439999997615814208984375;
AvgLumG = 0.2599999904632568359375;
AvgLumB = 0.07999999821186065673828125;
}
if (GRAYSCALE == 1)
{
sat = 0.0;
brt = 1.0;
con = 1.0;
AvgLumR = 1.0;
AvgLumG = 1.0;
AvgLumB = 1.0;
}
if (NEGATIVE == 1)
{
sat = 1.0;
brt = 1.0;
con = -1.0;
AvgLumR = 1.0;
AvgLumG = 1.0;
AvgLumB = 1.0;
}
if (PSPCOLORS == 1)
{
sat = 1.0;
brt = 1.0;
con = 1.0;
AvgLumR = 0.959299981594085693359375;
AvgLumG = 1.0738999843597412109375;
AvgLumB = 1.46039998531341552734375;
}
vec3 AvgLumin = vec3(AvgLumR, AvgLumG, AvgLumB);
vec3 conRGB = vec3(0.5);
vec3 brtColor = color * brt;
vec3 intensity = vec3(((brtColor.x * 0.2125000059604644775390625) + (brtColor.y * 0.7153999805450439453125)) + (brtColor.z * 0.07209999859333038330078125));
vec3 satColor = mix(intensity, brtColor, vec3(sat));
vec3 conColor = mix(conRGB, satColor, vec3(con));
vec3 mixColor = AvgLumin * conColor;
color = mixColor;
return color;
}
void main()
{
SEPIA = 0;
GRAYSCALE = 0;
NEGATIVE = 0;
PSPCOLORS = 5;
vec3 color = texture(sampler0, v_texcoord0).xyz;
vec3 param = color;
vec3 _311 = processGAUSS_S(param);
color = _311;
vec3 param_1 = color;
vec3 _314 = processSHADEBOOST(param_1);
color = _314;
_RESERVED_IDENTIFIER_FIXUP_gl_FragColor = vec4(color.x, color.y, color.z, _RESERVED |
Dragon Ball Z: Tenkaichi Tag Team |
v1.18.1 |
2025-03-04 |
Error in shader program link: info: error: declarations for uniform `u_texelDelta` have mismatching precision qualifiers
fs: postshader
#version 310 es
precision mediump float;
precision highp int;
uniform vec2 u_pixelDelta;
layout(binding = 0) uniform mediump sampler2D sampler0;
uniform vec4 u_time;
uniform vec2 u_texelDelta;
in vec2 v_texcoord0;
out vec4 _RESERVED_IDENTIFIER_FIXUP_gl_FragColor;
in vec4 v_texcoordNC0;
in vec4 v_texcoordNC1;
in vec4 v_texcoordNC2;
in vec4 v_texcoordNC3;
mediump int SEPIA;
mediump int GRAYSCALE;
mediump int NEGATIVE;
mediump int PSPCOLORS;
vec3 processGAUSS_S(inout vec3 color)
{
float GAUSSS_SPAN_MAX = 1.5;
float GAUSSS_KERNEL_SIZE = 5.0;
vec2 offsetS = (u_pixelDelta * GAUSSS_SPAN_MAX) / vec2(GAUSSS_KERNEL_SIZE);
vec3 cGaussS0 = texture(sampler0, v_texcoord0 + (offsetS * vec2(0.0, -2.0))).xyz * 1.0;
vec3 cGaussS1 = texture(sampler0, v_texcoord0 + (offsetS * vec2(-1.0))).xyz * 3.0;
vec3 cGaussS2 = texture(sampler0, v_texcoord0 + (offsetS * vec2(0.0, -1.0))).xyz * 8.0;
vec3 cGaussS3 = texture(sampler0, v_texcoord0 + (offsetS * vec2(1.0, -1.0))).xyz * 3.0;
vec3 cGaussS4 = texture(sampler0, v_texcoord0 + (offsetS * vec2(-2.0, 0.0))).xyz * 1.0;
vec3 cGaussS5 = texture(sampler0, v_texcoord0 + (offsetS * vec2(-1.0, 0.0))).xyz * 8.0;
vec3 cGaussS6 = texture(sampler0, v_texcoord0 + (offsetS * vec2(0.0))).xyz * 10.0;
vec3 cGaussS7 = texture(sampler0, v_texcoord0 + (offsetS * vec2(1.0, 0.0))).xyz * 8.0;
vec3 cGaussS8 = texture(sampler0, v_texcoord0 + (offsetS * vec2(2.0, 0.0))).xyz * 1.0;
vec3 cGaussS9 = texture(sampler0, v_texcoord0 + (offsetS * vec2(-1.0, 1.0))).xyz * 3.0;
vec3 cGaussS10 = texture(sampler0, v_texcoord0 + (offsetS * vec2(0.0, 1.0))).xyz * 8.0;
vec3 cGaussS11 = texture(sampler0, v_texcoord0 + (offsetS * vec2(1.0))).xyz * 3.0;
vec3 cGaussS12 = texture(sampler0, v_texcoord0 + (offsetS * vec2(0.0, 2.0))).xyz * 1.0;
color = (((((((((((cGaussS0 + cGaussS1) + cGaussS2) + cGaussS3) + cGaussS4) + cGaussS5) + cGaussS6) + cGaussS7) + cGaussS8) + cGaussS9) + cGaussS10) + cGaussS11) + cGaussS12;
color /= vec3(58.0);
return color;
}
vec3 processSHADEBOOST(inout vec3 color)
{
float sat = 1.89999997615814208984375;
float brt = 0.699999988079071044921875;
float con = 1.2000000476837158203125;
float AvgLumR = 1.5;
float AvgLumG = 1.5;
float AvgLumB = 1.5;
if (SEPIA == 1)
{
sat = 0.00999999977648258209228515625;
brt = 1.75;
con = 1.0;
AvgLumR = 0.439999997615814208984375;
AvgLumG = 0.2599999904632568359375;
AvgLumB = 0.07999999821186065673828125;
}
if (GRAYSCALE == 1)
{
sat = 0.0;
brt = 1.0;
con = 1.0;
AvgLumR = 1.0;
AvgLumG = 1.0;
AvgLumB = 1.0;
}
if (NEGATIVE == 1)
{
sat = 1.0;
brt = 1.0;
con = -1.0;
AvgLumR = 1.0;
AvgLumG = 1.0;
AvgLumB = 1.0;
}
if (PSPCOLORS == 1)
{
sat = 1.0;
brt = 1.0;
con = 1.0;
AvgLumR = 0.959299981594085693359375;
AvgLumG = 1.0738999843597412109375;
AvgLumB = 1.46039998531341552734375;
}
vec3 AvgLumin = vec3(AvgLumR, AvgLumG, AvgLumB);
vec3 conRGB = vec3(0.5);
vec3 brtColor = color * brt;
vec3 intensity = vec3(((brtColor.x * 0.2125000059604644775390625) + (brtColor.y * 0.7153999805450439453125)) + (brtColor.z * 0.07209999859333038330078125));
vec3 satColor = mix(intensity, brtColor, vec3(sat));
vec3 conColor = mix(conRGB, satColor, vec3(con));
vec3 mixColor = AvgLumin * conColor;
color = mixColor;
return color;
}
void main()
{
SEPIA = 0;
GRAYSCALE = 0;
NEGATIVE = 0;
PSPCOLORS = 5;
vec3 color = texture(sampler0, v_texcoord0).xyz;
vec3 param = color;
vec3 _311 = processGAUSS_S(param);
color = _311;
vec3 param_1 = color;
vec3 _314 = processSHADEBOOST(param_1);
color = _314;
_RESERVED_IDENTIFIER_FIXUP_gl_FragColor.x = color.x;
_RESERVED_IDENTIFIER_FIXUP |
ModNation™ Racers |
v1.18.1 |
2025-03-04 |
Error in shader program link: info: error: declarations for uniform `u_texelDelta` have mismatching precision qualifiers
fs: postshader
#version 310 es
precision mediump float;
precision highp int;
layout(binding = 0) uniform mediump sampler2D sampler0;
uniform vec4 u_time;
uniform vec2 u_texelDelta;
uniform vec2 u_pixelDelta;
in vec2 v_texcoord0;
out vec4 _RESERVED_IDENTIFIER_FIXUP_gl_FragColor;
mediump int SEPIA;
mediump int GRAYSCALE;
mediump int NEGATIVE;
mediump int PSPCOLORS;
float overlay(float base, float blend)
{
float result = 0.0;
if (base < 0.5)
{
result = (2.0 * base) * blend;
}
else
{
result = 1.0 - ((1.0 - (2.0 * (base - 0.5))) * (1.0 - blend));
}
return result;
}
void main()
{
SEPIA = 0;
GRAYSCALE = 0;
NEGATIVE = 0;
PSPCOLORS = 1;
vec3 color = texture(sampler0, v_texcoord0).xyz;
vec3 colorB = color;
mediump int hatsu = 0;
vec3 blur = color * 1.2252061367034912109375;
float param = color.x;
float param_1 = blur.x;
float param_2 = color.y;
float param_3 = blur.y;
float param_4 = color.z;
float param_5 = blur.z;
vec3 newcolor = vec3(overlay(param, param_1), overlay(param_2, param_3), overlay(param_4, param_5));
color = mix(color, newcolor, vec3(0.5));
vec4 sum = vec4(0.0);
mediump int diffx = -1;
mediump int diffy = 0;
mediump int _109 = -diffy;
for (mediump int i = _109; i < diffy; i++)
{
mediump int _120 = -diffx;
for (mediump int j = _120; j < diffx; j++)
{
sum += (texture(sampler0, v_texcoord0 + (vec2(float(j), float(i)) * 0.00200000009499490261077880859375)) * 0.25);
}
}
bool _151 = color.x < 0.300000011920928955078125;
bool _157;
if (_151)
{
_157 = color.y < 0.300000011920928955078125;
}
else
{
_157 = _151;
}
bool _163;
if (_157)
{
_163 = color.z < 0.300000011920928955078125;
}
else
{
_163 = _157;
}
vec3 bloom;
if (_163)
{
bloom = ((sum.xyz * sum.xyz) * 0.01200000010430812835693359375) + color;
}
else
{
bool _179 = color.x < 0.5;
bool _185;
if (_179)
{
_185 = color.y < 0.5;
}
else
{
_185 = _179;
}
bool _191;
if (_185)
{
_191 = color.z < 0.5;
}
else
{
_191 = _185;
}
if (_191)
{
bloom = ((sum.xyz * sum.xyz) * 0.0089999996125698089599609375) + color;
}
else
{
bloom = ((sum.xyz * sum.xyz) * 0.0074999998323619365692138671875) + color;
}
}
color = mix(color, bloom, vec3(0.5));
if (hatsu == 1)
{
color = mix(colorB, color, vec3(0.5));
}
float sat = 1.7000000476837158203125;
float brt = 1.10000002384185791015625;
float con = 1.10000002384185791015625;
float AvgLumR = 1.10000002384185791015625;
float AvgLumG = 1.2999999523162841796875;
float AvgLumB = 1.2000000476837158203125;
if (SEPIA == 1)
{
sat = 0.00999999977648258209228515625;
brt = 1.75;
con = 1.0;
AvgLumR = 0.439999997615814208984375;
AvgLumG = 0.2599999904632568359375;
AvgLumB = 0.07999999821186065673828125;
}
if (GRAYSCALE == 1)
{
sat = 0.0;
brt = 1.0;
con = 1.0;
AvgLumR = 1.0;
AvgLumG = 1.0;
AvgLumB = 1.0;
}
if (NEGATIVE == 1)
{
sat = 1.0;
brt = 1.0;
con = -1.0;
AvgLumR = 1.0;
AvgLumG = 1.0;
AvgLumB = 1.0;
}
if (PSPCOLORS == 1)
{
sat = 1.0;
brt = 1.0;
con = 1.0;
AvgLumR = 0.959299981594085693359375;
AvgLumG = 1.0738999843597412109375;
AvgLumB = 1.46039998531341552734375;
}
vec3 AvgLumin = vec3(AvgLumR, AvgLumG, AvgLumB);
vec3 conRGB = vec3(0.5);
vec3 brtColor = color * brt;
vec3 intensity = vec3(((brtColor. |
eFootball Chelito 19 |
v1.6.3 |
2025-03-03 |
Error in shader program link: info: Link failed because of missing vertex shader.
fs: 00000000:0021d002 Tex Fog TFuncMod AlphaTest0 >
#version 300 es
#extension GL_ARM_shader_framebuffer_fetch : require
precision lowp float;
uniform sampler2D tex;
uniform sampler2D testtex;
in vec4 v_color0;
uniform vec3 u_fogcolor;
in mediump float v_fogdepth;
in mediump vec3 v_texcoord;
out vec4 fragColor0;
void main() {
vec4 t = texture(tex, v_texcoord.xy);
vec4 p = v_color0;
vec4 v = vec4(t.rgb * p.rgb, p.a);
if (v.a < 0.002) discard;
float fogCoef = clamp(v_fogdepth, 0.0, 1.0);
v = mix(vec4(u_fogcolor, v.a), v, fogCoef);
fragColor0 = v;
}
vs: 00000000:0000001c C Fog Tex
#version 300 es
precision highp float;
in vec4 position;
in vec2 texcoord;
in lowp vec4 color0;
uniform mat4 u_proj;
uniform highp vec2 u_fogcoef;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
out mediump float v_fogdepth;
void main() {
v_texcoord = vec3(texcoord, 1.0);
v_color0 = color0;
v_fogdepth = position.w;
gl_Position = u_proj * vec4(position.xyz, 1.0);
}
|
eFootball PES 2020 "C19" |
v1.7.2 |
2025-03-03 |
Error in shader program link: info: Link failed because of invalid fragment shader.
fs: postshader (failed)
// PPSSPP: Grabbed from Processing and slightly modified.
// FXAA shader, GLSL code adapted from:
// http://horde3d.org/wiki/index.php5?title=Shading_Technique_-_FXAA
// Whitepaper describing the technique:
// http://developer.download.nvidia.com/assets/gamedev/files/sdk/11/FXAA_WhitePaper.pdf
//======================================================================================================================================================================
//Extra options:
#define FXAA 0 //ON:1/OFF:0 /default FXAA, info above
//there's no extra config for fxaa here since from what I checked this simple fxaa version offers only more blur or less aa;c, you can check it yourself below
//================
#define GAUSS_SQ 0 //ON:1/OFF:0 /full square gauss filtering, don't use with either FXAA nor sharpen filters
#define Gsmoothing 3.5 //Default: 3.5 /increase for smoother(blurry) graphics
//================
#define GAUSS_S 0 //ON:1/OFF:0 /simple gauss filtering by Bigpet, slightly different from above /you can find standalone in https://github.com/hrydgard/ppsspp/issues/7242
//================
#define MIKU 0 //Hatsune<3 this is an optional filter for all those pale anime faces which get white with bloom/colored:P tested on Miku in white dress
//================
#define BLOOM 0 //ON:1/OFF:0 /bloom implementation from "my heroics" blog http://myheroics.wordpress.com/2008/09/04/glsl-bloom-shader/
#define samples 4 //Default: 4 /higher = more glow, worser performance
#define quality 0.25 //Default: 0.25 /lower = smaller glow, better quality
#define factor 0.002 //Default: 0.002 /just an extra tweak for the bloom slightly higher values might look better in some cases, but too much can cause artifacts
#define Bpower 0.5 //Default: 0.5 /amount of bloom mixed
//================
#define COLORED 1 //ON:1/OFF:0 /coloring part of KrossX Overlay Bloom shader from here http://www.mediafire.com/krossx#ste5pa5ijfa0o
#define Cpower 0.3 //Default: 0.5 /amount of effect mixed
//================
#define SHARPEN 0 //ON:1/OFF:0 /a simple sharpen filter, might be counterproductive to FXAA and BLOOM, hence disabled by default
#define value 7.5 //Default: 7.5 /higher = more visible effect
//================
#define S_COM_V2 0 //Sharpen Complex v2 from https://github.com/mpc-hc similar to above in effect, maybe more accurate
#define S_val0 5.0 //Default: 5.0 /higher ~ increases sharpness /negative ~ can add extra blurr/strange effect
//================
#define SHADEBOOST 1 //ON:1/OFF:0 /color correction from GSdx/pcsx2 plugin, initially taken from http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=21057
#define saturation 1.1 //Default: 1.0 //negative will look like inverted colors shader
#define brightness 2.5 //Default: 1.0
#define contrast 1.23 //Default: 1.0 //negative will be... well negative;p
#define red 0.55 //Default: 1.0
#define green 0.55 //Default: 1.0
#define blue 0.55 //Default: 1.0
//Shadeboost presets: //Shadeboost must be activated, presets override options above
int SEPIA = 0; //Moody coolors:)
int GRAYSCALE = 0; //Just for lols?
int NEGATIVE = 0; //As above
int PSPCOLORS = 0; //Makes the colors as on older PSP screens(colder)
//All presets are simple switch ON:1/OFF:0,
//================
#define GAMMA 1 //simple gamma function after reading http://filmicgames.com/archives/299
#define correction 1.2 //Default: 1.0
//================
#define SCANLINES 0 //Ugly lines which never existed on psp, yet are popular among some people(I had to, sorry:P)
#define SLsize 1 //Default: 1 /basically sets how wide each line is, from 1 to looks_weird_when_too_high
#define SLcolor 1.8 //Default: 2.8 /brightens screen to compensate for dark lines
#define SLpower 0.4 //Default: 0.4 /less/more = darker |
eFootball PES 2024 "SN3" |
v1.11.3 |
2025-03-02 |
Error in shader program link: info: L0001 Invalid shader type loaded
fs: 00000000:00000001 Clear
#version 320 es
#extension GL_ARM_shader_framebuffer_fetch : require
// Mali-G71 - GLSL 320
#define DISCARD discard
precision lowp float;
precision highp int;
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
in lowp vec4 v_color0;
out vec4 fragColor0;
void main() {
vec4 v = v_color0;
fragColor0 = v;
}
vs: 00000000:0000000a THR C
#version 320 es
// Mali-G71 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
in vec4 position;
in lowp vec4 color0;
uniform mat4 u_proj_through;
out lowp vec4 v_color0;
void main() {
v_color0 = color0;
vec4 outPos = mul(u_proj_through, vec4(position.xyz, 1.0));
gl_Position = outPos;
}
|
SOULCALIBUR: Broken Destiny |
v1.11.3 |
2025-02-28 |
Error in shader program link: info: (unknown reason)
fs: thin3d
vs: thin3d
#version 320 es
#if __VERSION__ >= 130
#define attribute in
#define varying out
#endif
attribute vec3 Position;
attribute vec4 Color0;
attribute vec2 TexCoord0;
varying vec4 oColor0;
varying vec2 oTexCoord0;
uniform mat4 WorldViewProj;
void main() {
gl_Position = WorldViewProj * vec4(Position, 1.0);
oColor0 = Color0;
oTexCoord0 = TexCoord0;
}
|
eFootball PES 2023 "SNE" |
v1.11.3 |
2025-03-01 |
Error in shader program link: info: L0001 Invalid shader type loaded
fs: 00000000:00000001 Clear
#version 320 es
#extension GL_ARM_shader_framebuffer_fetch : require
// Mali-G71 - GLSL 320
#define DISCARD discard
precision lowp float;
precision highp int;
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
in lowp vec4 v_color0;
out vec4 fragColor0;
void main() {
vec4 v = v_color0;
fragColor0 = v;
}
vs: 00000000:0000000a THR C
#version 320 es
// Mali-G71 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
in vec4 position;
in lowp vec4 color0;
uniform mat4 u_proj_through;
out lowp vec4 v_color0;
void main() {
v_color0 = color0;
vec4 outPos = mul(u_proj_through, vec4(position.xyz, 1.0));
gl_Position = outPos;
}
|
EA-Sports FC PC-V |
v1.11.3 |
2025-02-27 |
Error in shader program link: info: (unknown reason)
fs: postshader
#ifdef GL_ES
precision mediump float;
#endif
/*
AA shader 4.o / AA shader 4.o - filtro
Copyright (C) 2014 guest(r) - [email protected]
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
// Modified as video aware smoothing effect for PPSSPP.
// Some variable definitions had to be moved inside functions(and so repeated) due to glsl->hlsl auto translation failing.
// Also auto translation fails with bool uniform, which is why u_video is defined as float.
#ifdef GL_ES
precision mediump float;
precision mediump int;
#endif
uniform sampler2D sampler0;
uniform float u_video;
//===========
varying vec2 v_texcoord0;
const vec3 dt = vec3(1.0,1.0,1.0);
vec3 texture2d (vec2 texcoord) {
float scale = 1.0;
if (u_video==1.0){
scale = 2.0;
} else {
scale = 7.0;
}
vec4 yx = vec4(1.0/480.0,1.0/272.0,-1.0/480.0,-1.0/272.0)/scale;
vec4 xy = vec4(2.0/480.0,2.0/272.0,-2.0/480.0,-2.0/272.0)/scale;
vec3 s00 = texture2D(sampler0, texcoord + yx.zw).xyz;
vec3 s20 = texture2D(sampler0, texcoord + yx.xw).xyz;
vec3 s22 = texture2D(sampler0, texcoord + yx.xy).xyz;
vec3 s02 = texture2D(sampler0, texcoord + yx.zy).xyz;
float m1=dot(abs(s00-s22),dt)+0.001;
float m2=dot(abs(s02-s20),dt)+0.001;
return 0.5*(m2*(s00+s22)+m1*(s02+s20))/(m1+m2);
}
vec3 texture2dd (vec2 texcoord) {
float scale = 1.0;
if (u_video==1.0){
scale = 2.0;
} else {
scale = 7.0;
}
vec4 yx = vec4(1.0/480.0,1.0/272.0,-1.0/480.0,-1.0/272.0)/scale;
vec4 xy = vec4(2.0/480.0,2.0/272.0,-2.0/480.0,-2.0/272.0)/scale;
vec3 c11 = texture2D(sampler0, texcoord ).xyz;
vec3 c00 = texture2D(sampler0, texcoord + xy.zw).xyz;
vec3 c20 = texture2D(sampler0, texcoord + xy.xw).xyz;
vec3 c22 = texture2D(sampler0, texcoord + xy.xy).xyz;
vec3 c02 = texture2D(sampler0, texcoord + xy.zy).xyz;
vec3 s00 = texture2D(sampler0, texcoord + yx.zw).xyz;
vec3 s20 = texture2D(sampler0, texcoord + yx.xw).xyz;
vec3 s22 = texture2D(sampler0, texcoord + yx.xy).xyz;
vec3 s02 = texture2D(sampler0, texcoord + yx.zy).xyz;
float d1=dot(abs(c00-c22),dt)+0.001;
float d2=dot(abs(c20-c02),dt)+0.001;
float m1=dot(abs(s00-s22),dt)+0.001;
float m2=dot(abs(s02-s20),dt)+0.001;
vec3 t2=(d1*(c20+c02)+d2*(c00+c22))/(2.0*(d1+d2));
return 0.25*(c11+t2+(m2*(s00+s22)+m1*(s02+s20))/(m1+m2));
}
void main() {
float scale = 7.0;
bool filtro = false;
if (u_video==1.0){
scale = 2.0;
filtro = true;
} else {
scale = 7.0;
filtro = false;
}
// Calculating texel coordinates
vec2 size = vec2(480.0,272.0)*scale;
vec2 inv_size = vec2(1.0/480.0,1.0/272.0)/scale;
vec2 OGL2Pos = v_texcoord0 * size;
vec2 fp = fract(OGL2Pos);
vec2 dx = vec2(inv_size.x,0.0);
vec2 dy = vec2(0.0, inv_size.y);
vec2 g1 = vec2(inv_size.x,inv_size.y);
vec2 g2 = vec2(-inv_size.x,inv_size.y);
vec2 pC4 = floor(OGL2Pos) * inv_size + 0.5*inv_size;
// Reading the texels
vec3 C0 = texture2d(pC4 - g1);
vec3 C1 = texture2d(pC4 - dy);
vec3 C2 = texture2d(pC4 - g2);
vec3 C3 = texture2d(pC4 - dx);
vec3 C4 = texture2d(pC4 );
vec3 C5 = texture2d(pC4 + dx);
vec3 C6 = texture2d(pC4 + g2);
vec3 C7 = texture2d(pC4 + dy);
vec3 C8 = texture2d(pC4 + g1);
vec3 ul, ur, dl, dr;
float m1, m2;
m1 = dot(abs(C0-C4),dt)+0.001 |
eFootball Chelito 19 |
v1.12.2 |
2025-02-27 |
Error in shader program link: info: (unknown reason)
fs: postshader
#ifdef GL_ES
precision mediump float;
#endif
/*
AA shader 4.o / AA shader 4.o - filtro
Copyright (C) 2014 guest(r) - [email protected]
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
// Modified as video aware smoothing effect for PPSSPP.
// Some variable definitions had to be moved inside functions(and so repeated) due to glsl->hlsl auto translation failing.
// Also auto translation fails with bool uniform, which is why u_video is defined as float.
#ifdef GL_ES
precision mediump float;
precision mediump int;
#endif
uniform sampler2D sampler0;
uniform float u_video;
//===========
varying vec2 v_texcoord0;
const vec3 dt = vec3(1.0,1.0,1.0);
vec3 texture2d (vec2 texcoord) {
float scale = 1.0;
if (u_video==1.0){
scale = 2.0;
} else {
scale = 7.0;
}
vec4 yx = vec4(1.0/480.0,1.0/272.0,-1.0/480.0,-1.0/272.0)/scale;
vec4 xy = vec4(2.0/480.0,2.0/272.0,-2.0/480.0,-2.0/272.0)/scale;
vec3 s00 = texture2D(sampler0, texcoord + yx.zw).xyz;
vec3 s20 = texture2D(sampler0, texcoord + yx.xw).xyz;
vec3 s22 = texture2D(sampler0, texcoord + yx.xy).xyz;
vec3 s02 = texture2D(sampler0, texcoord + yx.zy).xyz;
float m1=dot(abs(s00-s22),dt)+0.001;
float m2=dot(abs(s02-s20),dt)+0.001;
return 0.5*(m2*(s00+s22)+m1*(s02+s20))/(m1+m2);
}
vec3 texture2dd (vec2 texcoord) {
float scale = 1.0;
if (u_video==1.0){
scale = 2.0;
} else {
scale = 7.0;
}
vec4 yx = vec4(1.0/480.0,1.0/272.0,-1.0/480.0,-1.0/272.0)/scale;
vec4 xy = vec4(2.0/480.0,2.0/272.0,-2.0/480.0,-2.0/272.0)/scale;
vec3 c11 = texture2D(sampler0, texcoord ).xyz;
vec3 c00 = texture2D(sampler0, texcoord + xy.zw).xyz;
vec3 c20 = texture2D(sampler0, texcoord + xy.xw).xyz;
vec3 c22 = texture2D(sampler0, texcoord + xy.xy).xyz;
vec3 c02 = texture2D(sampler0, texcoord + xy.zy).xyz;
vec3 s00 = texture2D(sampler0, texcoord + yx.zw).xyz;
vec3 s20 = texture2D(sampler0, texcoord + yx.xw).xyz;
vec3 s22 = texture2D(sampler0, texcoord + yx.xy).xyz;
vec3 s02 = texture2D(sampler0, texcoord + yx.zy).xyz;
float d1=dot(abs(c00-c22),dt)+0.001;
float d2=dot(abs(c20-c02),dt)+0.001;
float m1=dot(abs(s00-s22),dt)+0.001;
float m2=dot(abs(s02-s20),dt)+0.001;
vec3 t2=(d1*(c20+c02)+d2*(c00+c22))/(2.0*(d1+d2));
return 0.25*(c11+t2+(m2*(s00+s22)+m1*(s02+s20))/(m1+m2));
}
void main() {
float scale = 7.0;
bool filtro = false;
if (u_video==1.0){
scale = 2.0;
filtro = true;
} else {
scale = 7.0;
filtro = false;
}
// Calculating texel coordinates
vec2 size = vec2(480.0,272.0)*scale;
vec2 inv_size = vec2(1.0/480.0,1.0/272.0)/scale;
vec2 OGL2Pos = v_texcoord0 * size;
vec2 fp = fract(OGL2Pos);
vec2 dx = vec2(inv_size.x,0.0);
vec2 dy = vec2(0.0, inv_size.y);
vec2 g1 = vec2(inv_size.x,inv_size.y);
vec2 g2 = vec2(-inv_size.x,inv_size.y);
vec2 pC4 = floor(OGL2Pos) * inv_size + 0.5*inv_size;
// Reading the texels
vec3 C0 = texture2d(pC4 - g1);
vec3 C1 = texture2d(pC4 - dy);
vec3 C2 = texture2d(pC4 - g2);
vec3 C3 = texture2d(pC4 - dx);
vec3 C4 = texture2d(pC4 );
vec3 C5 = texture2d(pC4 + dx);
vec3 C6 = texture2d(pC4 + g2);
vec3 C7 = texture2d(pC4 + dy);
vec3 C8 = texture2d(pC4 + g1);
vec3 ul, ur, dl, dr;
float m1, m2;
m1 = dot(abs(C0-C4),dt)+0.001 |
BEN 10: Protector of Earth |
v1.12.2 |
2025-03-07 |
Error in shader program link: info: (unknown reason)
fs: postshader
#ifdef GL_ES
precision mediump float;
#endif
/*
AA shader 4.o / AA shader 4.o - filtro
Copyright (C) 2014 guest(r) - [email protected]
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
// Modified as video aware smoothing effect for PPSSPP.
// Some variable definitions had to be moved inside functions(and so repeated) due to glsl->hlsl auto translation failing.
// Also auto translation fails with bool uniform, which is why u_video is defined as float.
#ifdef GL_ES
precision mediump float;
precision mediump int;
#endif
uniform sampler2D sampler0;
uniform float u_video;
//===========
varying vec2 v_texcoord0;
const vec3 dt = vec3(1.0,1.0,1.0);
vec3 texture2d (vec2 texcoord) {
float scale = 1.0;
if (u_video==1.0){
scale = 2.0;
} else {
scale = 7.0;
}
vec4 yx = vec4(1.0/480.0,1.0/272.0,-1.0/480.0,-1.0/272.0)/scale;
vec4 xy = vec4(2.0/480.0,2.0/272.0,-2.0/480.0,-2.0/272.0)/scale;
vec3 s00 = texture2D(sampler0, texcoord + yx.zw).xyz;
vec3 s20 = texture2D(sampler0, texcoord + yx.xw).xyz;
vec3 s22 = texture2D(sampler0, texcoord + yx.xy).xyz;
vec3 s02 = texture2D(sampler0, texcoord + yx.zy).xyz;
float m1=dot(abs(s00-s22),dt)+0.001;
float m2=dot(abs(s02-s20),dt)+0.001;
return 0.5*(m2*(s00+s22)+m1*(s02+s20))/(m1+m2);
}
vec3 texture2dd (vec2 texcoord) {
float scale = 1.0;
if (u_video==1.0){
scale = 2.0;
} else {
scale = 7.0;
}
vec4 yx = vec4(1.0/480.0,1.0/272.0,-1.0/480.0,-1.0/272.0)/scale;
vec4 xy = vec4(2.0/480.0,2.0/272.0,-2.0/480.0,-2.0/272.0)/scale;
vec3 c11 = texture2D(sampler0, texcoord ).xyz;
vec3 c00 = texture2D(sampler0, texcoord + xy.zw).xyz;
vec3 c20 = texture2D(sampler0, texcoord + xy.xw).xyz;
vec3 c22 = texture2D(sampler0, texcoord + xy.xy).xyz;
vec3 c02 = texture2D(sampler0, texcoord + xy.zy).xyz;
vec3 s00 = texture2D(sampler0, texcoord + yx.zw).xyz;
vec3 s20 = texture2D(sampler0, texcoord + yx.xw).xyz;
vec3 s22 = texture2D(sampler0, texcoord + yx.xy).xyz;
vec3 s02 = texture2D(sampler0, texcoord + yx.zy).xyz;
float d1=dot(abs(c00-c22),dt)+0.001;
float d2=dot(abs(c20-c02),dt)+0.001;
float m1=dot(abs(s00-s22),dt)+0.001;
float m2=dot(abs(s02-s20),dt)+0.001;
vec3 t2=(d1*(c20+c02)+d2*(c00+c22))/(2.0*(d1+d2));
return 0.25*(c11+t2+(m2*(s00+s22)+m1*(s02+s20))/(m1+m2));
}
void main() {
float scale = 7.0;
bool filtro = false;
if (u_video==1.0){
scale = 2.0;
filtro = true;
} else {
scale = 7.0;
filtro = false;
}
// Calculating texel coordinates
vec2 size = vec2(480.0,272.0)*scale;
vec2 inv_size = vec2(1.0/480.0,1.0/272.0)/scale;
vec2 OGL2Pos = v_texcoord0 * size;
vec2 fp = fract(OGL2Pos);
vec2 dx = vec2(inv_size.x,0.0);
vec2 dy = vec2(0.0, inv_size.y);
vec2 g1 = vec2(inv_size.x,inv_size.y);
vec2 g2 = vec2(-inv_size.x,inv_size.y);
vec2 pC4 = floor(OGL2Pos) * inv_size + 0.5*inv_size;
// Reading the texels
vec3 C0 = texture2d(pC4 - g1);
vec3 C1 = texture2d(pC4 - dy);
vec3 C2 = texture2d(pC4 - g2);
vec3 C3 = texture2d(pC4 - dx);
vec3 C4 = texture2d(pC4 );
vec3 C5 = texture2d(pC4 + dx);
vec3 C6 = texture2d(pC4 + g2);
vec3 C7 = texture2d(pC4 + dy);
vec3 C8 = texture2d(pC4 + g1);
vec3 ul, ur, dl, dr;
float m1, m2;
m1 = dot(abs(C0-C4),dt)+0.001 |
MONSTER HUNTER PORTABLE 2nd G |
v1.9.0 |
2025-02-27 |
Error in shader program link: info: Link failed because of missing fragment shader.
fs: thin3d
#ifdef GL_ES
precision mediump float;
#endif
#ifdef GL_ES
precision lowp float;
#endif
#if __VERSION__ >= 130
#define varying in
#define texture2D texture
#define gl_FragColor fragColor0
out vec4 fragColor0;
#endif
varying vec4 oColor0;
varying vec2 oTexCoord0;
uniform sampler2D Sampler0;
void main() { gl_FragColor = texture2D(Sampler0, oTexCoord0).zyxw * oColor0; }
vs: thin3d
#if __VERSION__ >= 130
#define attribute in
#define varying out
#endif
attribute vec3 Position;
attribute vec4 Color0;
attribute vec2 TexCoord0;
varying vec4 oColor0;
varying vec2 oTexCoord0;
uniform mat4 WorldViewProj;
void main() {
gl_Position = WorldViewProj * vec4(Position, 1.0);
oColor0 = Color0;
oTexCoord0 = TexCoord0;
}
|
Toy Story 3 |
v1.9.0 |
2025-02-26 |
Error in shader program link: info: Link failed because of missing fragment shader.
fs: thin3d
#ifdef GL_ES
precision mediump float;
#endif
#ifdef GL_ES
precision lowp float;
#endif
#if __VERSION__ >= 130
#define varying in
#define texture2D texture
#define gl_FragColor fragColor0
out vec4 fragColor0;
#endif
varying vec4 oColor0;
varying vec2 oTexCoord0;
uniform sampler2D Sampler0;
void main() { gl_FragColor = texture2D(Sampler0, oTexCoord0).zyxw * oColor0; }
vs: thin3d
#if __VERSION__ >= 130
#define attribute in
#define varying out
#endif
attribute vec3 Position;
attribute vec4 Color0;
attribute vec2 TexCoord0;
varying vec4 oColor0;
varying vec2 oTexCoord0;
uniform mat4 WorldViewProj;
void main() {
gl_Position = WorldViewProj * vec4(Position, 1.0);
oColor0 = Color0;
oTexCoord0 = TexCoord0;
}
|
Toy Story 3 |
v1.9.0 |
2025-02-26 |
Error in shader program link: info: Link failed because of missing fragment shader.
fs: thin3d
#ifdef GL_ES
precision mediump float;
#endif
#ifdef GL_ES
precision lowp float;
#endif
#if __VERSION__ >= 130
#define varying in
#define texture2D texture
#define gl_FragColor fragColor0
out vec4 fragColor0;
#endif
varying vec4 oColor0;
varying vec2 oTexCoord0;
uniform sampler2D Sampler0;
void main() { gl_FragColor = texture2D(Sampler0, oTexCoord0).zyxw * oColor0; }
vs: thin3d
#if __VERSION__ >= 130
#define attribute in
#define varying out
#endif
attribute vec3 Position;
attribute vec4 Color0;
attribute vec2 TexCoord0;
varying vec4 oColor0;
varying vec2 oTexCoord0;
uniform mat4 WorldViewProj;
void main() {
gl_Position = WorldViewProj * vec4(Position, 1.0);
oColor0 = Color0;
oTexCoord0 = TexCoord0;
}
|
God of War: Chains of Olympus |
v1.18.1 |
2025-02-25 |
Error in shader program link: info: (unknown reason)
fs: 10180000:01200802 Tex Fog LM FragUber StenToAlpha StenUniform TFuncMod
#version 320 es
#extension GL_EXT_shader_framebuffer_fetch : require
// Driver: Adreno (TM) 610 - GLSL 320
#define DISCARD discard
precision lowp float;
precision highp int;
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 10180000:01200802 Tex Fog LM FragUber StenToAlpha StenUniform TFuncMod
uniform sampler2D tex;
uniform vec2 u_texNoAlphaMul;
uniform float u_stencilReplaceValue;
in lowp vec4 v_color0;
in lowp vec3 v_color1;
uniform vec3 u_fogcolor;
in mediump float v_fogdepth;
in mediump vec3 v_texcoord;
out vec4 fragColor0;
void main() {
vec4 s = vec4(v_color1, 0.0);
vec4 t = texture(tex, v_texcoord.xy);
vec4 p = v_color0;
t.a = max(t.a, u_texNoAlphaMul.x);
vec4 v = p * t + s;
v.rgb = clamp(v.rgb * u_texNoAlphaMul.y, 0.0, 1.0);
float fogCoef = clamp(v_fogdepth, 0.0, 1.0);
v = mix(vec4(u_fogcolor, v.a), v, fogCoef);
fragColor0 = vec4(v.rgb, u_stencilReplaceValue);
}
vs: 01000000:80000b29 HWX C T N LM Light: LightUberShader Cull
#version 320 es
#extension GL_EXT_clip_cull_distance : enable
// Driver: Adreno (TM) 610 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 01000000:80000b29 HWX C T N LM Light: LightUberShader Cull
in vec3 position;
in mediump vec3 normal;
in vec2 texcoord;
in lowp vec4 color0;
uniform mat4 u_proj;
uniform mat4 u_world;
uniform mat4 u_view;
uniform vec4 u_uvscaleoffset;
uniform uint u_lightControl;
uniform vec3 u_lightpos0;
uniform mediump vec3 u_lightatt0;
uniform mediump vec3 u_lightdir0;
uniform mediump vec2 u_lightangle_spotCoef0;
uniform lowp vec3 u_lightambient0;
uniform lowp vec3 u_lightdiffuse0;
uniform lowp vec3 u_lightspecular0;
uniform vec3 u_lightpos1;
uniform mediump vec3 u_lightatt1;
uniform mediump vec3 u_lightdir1;
uniform mediump vec2 u_lightangle_spotCoef1;
uniform lowp vec3 u_lightambient1;
uniform lowp vec3 u_lightdiffuse1;
uniform lowp vec3 u_lightspecular1;
uniform vec3 u_lightpos2;
uniform mediump vec3 u_lightatt2;
uniform mediump vec3 u_lightdir2;
uniform mediump vec2 u_lightangle_spotCoef2;
uniform lowp vec3 u_lightambient2;
uniform lowp vec3 u_lightdiffuse2;
uniform lowp vec3 u_lightspecular2;
uniform vec3 u_lightpos3;
uniform mediump vec3 u_lightatt3;
uniform mediump vec3 u_lightdir3;
uniform mediump vec2 u_lightangle_spotCoef3;
uniform lowp vec3 u_lightambient3;
uniform lowp vec3 u_lightdiffuse3;
uniform lowp vec3 u_lightspecular3;
uniform lowp vec4 u_ambient;
uniform lowp vec3 u_matdiffuse;
uniform lowp vec4 u_matspecular;
uniform lowp vec3 u_matemissive;
uniform lowp vec4 u_matambientalpha;
uniform highp vec2 u_fogcoef;
uniform highp vec4 u_depthRange;
uniform highp vec4 u_cullRangeMin;
uniform highp vec4 u_cullRangeMax;
out lowp vec4 v_color0;
out lowp vec3 v_color1;
out mediump vec3 v_texcoord;
out mediump float v_fogdepth;
vec3 normalizeOr001(vec3 v) {
return length(v) == 0.0 ? vec3(0.0, 0.0, 1.0) : normalize(v);
}
void main() {
vec3 worldpos = mul(vec4(position, 1.0), u_world).xyz;
mediump vec3 worldnormal = normalizeOr001(mul(vec4(normal, 0.0), u_world).xyz);
vec4 viewPos = vec4(mul(vec4(worldpos, 1.0), u_view).xyz, 1.0);
vec4 outPos = mul(u_proj, viewPos);
vec4 ambientColor = ((u_lightControl & (1u << 0x14u)) != 0x0u) ? color0 : u_matambientalpha;
vec3 diffuseColor = ((u_lightControl & (1u << 0x15u)) != 0x0u) ? color0.rgb : u_matdiffuse;
vec3 specularColor = ((u_lightControl & (1u << 0x16u)) != 0x0u) ? color0.rgb : u_matspecular.rgb;
lowp vec4 lightSum0 = u_ambient * ambientColor + vec4(u_matemissive, 0.0);
lowp vec3 lightSum1 = splat3(0.0);
vec3 toLight;
lowp vec3 diffuse;
float distance;
lowp float lightScale;
mediump float ldot;
lowp float angle;
uint comp; uint type; float attenuation;
if ((u_lightControl & 0x1u) != 0x0u) {
comp = (u_lightControl >> 0x04u) & 0x3u;
type = (u_lightControl >> 0x06u) & 0x3u;
toLight = u_lightpos0;
if (type != 0x0u) {
toLight -= wor |
God of War: Chains of Olympus |
v1.18.1 |
2025-02-25 |
Error in shader program link: info: (unknown reason)
fs: 10180000:02000802 Tex LM FragUber StenToAlphaDual StenUniform TFuncMod
#version 320 es
#extension GL_EXT_blend_func_extended : require
#extension GL_EXT_shader_framebuffer_fetch : require
// Driver: Adreno (TM) 610 - GLSL 320
#define DISCARD discard
precision lowp float;
precision highp int;
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 10180000:02000802 Tex LM FragUber StenToAlphaDual StenUniform TFuncMod
uniform sampler2D tex;
uniform vec2 u_texNoAlphaMul;
uniform float u_stencilReplaceValue;
in lowp vec4 v_color0;
in lowp vec3 v_color1;
in mediump float v_fogdepth;
in mediump vec3 v_texcoord;
out vec4 fragColor0;
out vec4 fragColor1;
void main() {
vec4 s = vec4(v_color1, 0.0);
vec4 t = texture(tex, v_texcoord.xy);
vec4 p = v_color0;
t.a = max(t.a, u_texNoAlphaMul.x);
vec4 v = p * t + s;
v.rgb *= u_texNoAlphaMul.y;
fragColor0 = vec4(v.rgb, u_stencilReplaceValue);
fragColor1 = vec4(0.0, 0.0, 0.0, v.a);
}
vs: 01000000:80000b29 HWX C T N LM Light: LightUberShader Cull
#version 320 es
#extension GL_EXT_clip_cull_distance : enable
// Driver: Adreno (TM) 610 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 01000000:80000b29 HWX C T N LM Light: LightUberShader Cull
in vec3 position;
in mediump vec3 normal;
in vec2 texcoord;
in lowp vec4 color0;
uniform mat4 u_proj;
uniform mat4 u_world;
uniform mat4 u_view;
uniform vec4 u_uvscaleoffset;
uniform uint u_lightControl;
uniform vec3 u_lightpos0;
uniform mediump vec3 u_lightatt0;
uniform mediump vec3 u_lightdir0;
uniform mediump vec2 u_lightangle_spotCoef0;
uniform lowp vec3 u_lightambient0;
uniform lowp vec3 u_lightdiffuse0;
uniform lowp vec3 u_lightspecular0;
uniform vec3 u_lightpos1;
uniform mediump vec3 u_lightatt1;
uniform mediump vec3 u_lightdir1;
uniform mediump vec2 u_lightangle_spotCoef1;
uniform lowp vec3 u_lightambient1;
uniform lowp vec3 u_lightdiffuse1;
uniform lowp vec3 u_lightspecular1;
uniform vec3 u_lightpos2;
uniform mediump vec3 u_lightatt2;
uniform mediump vec3 u_lightdir2;
uniform mediump vec2 u_lightangle_spotCoef2;
uniform lowp vec3 u_lightambient2;
uniform lowp vec3 u_lightdiffuse2;
uniform lowp vec3 u_lightspecular2;
uniform vec3 u_lightpos3;
uniform mediump vec3 u_lightatt3;
uniform mediump vec3 u_lightdir3;
uniform mediump vec2 u_lightangle_spotCoef3;
uniform lowp vec3 u_lightambient3;
uniform lowp vec3 u_lightdiffuse3;
uniform lowp vec3 u_lightspecular3;
uniform lowp vec4 u_ambient;
uniform lowp vec3 u_matdiffuse;
uniform lowp vec4 u_matspecular;
uniform lowp vec3 u_matemissive;
uniform lowp vec4 u_matambientalpha;
uniform highp vec2 u_fogcoef;
uniform highp vec4 u_depthRange;
uniform highp vec4 u_cullRangeMin;
uniform highp vec4 u_cullRangeMax;
out lowp vec4 v_color0;
out lowp vec3 v_color1;
out mediump vec3 v_texcoord;
out mediump float v_fogdepth;
vec3 normalizeOr001(vec3 v) {
return length(v) == 0.0 ? vec3(0.0, 0.0, 1.0) : normalize(v);
}
void main() {
vec3 worldpos = mul(vec4(position, 1.0), u_world).xyz;
mediump vec3 worldnormal = normalizeOr001(mul(vec4(normal, 0.0), u_world).xyz);
vec4 viewPos = vec4(mul(vec4(worldpos, 1.0), u_view).xyz, 1.0);
vec4 outPos = mul(u_proj, viewPos);
vec4 ambientColor = ((u_lightControl & (1u << 0x14u)) != 0x0u) ? color0 : u_matambientalpha;
vec3 diffuseColor = ((u_lightControl & (1u << 0x15u)) != 0x0u) ? color0.rgb : u_matdiffuse;
vec3 specularColor = ((u_lightControl & (1u << 0x16u)) != 0x0u) ? color0.rgb : u_matspecular.rgb;
lowp vec4 lightSum0 = u_ambient * ambientColor + vec4(u_matemissive, 0.0);
lowp vec3 lightSum1 = splat3(0.0);
vec3 toLight;
lowp vec3 diffuse;
float distance;
lowp float lightScale;
mediump float ldot;
lowp float angle;
uint comp; uint type; float attenuation;
if ((u_lightControl & 0x1u) != 0x0u) {
comp = (u_lightControl >> 0x04u) & 0x3u;
type = (u_lightControl >> 0x06u) & 0x3u;
toLight = u_lightpos0;
if (type != 0x0u) {
toLight -= worldpos;
distance = length(t |
God of War: Chains of Olympus |
v1.18.1 |
2025-02-25 |
Error in shader program link: info: (unknown reason)
fs: 10180000:02000802 Tex LM FragUber StenToAlphaDual StenUniform TFuncMod
#version 320 es
#extension GL_EXT_blend_func_extended : require
#extension GL_EXT_shader_framebuffer_fetch : require
// Driver: Adreno (TM) 610 - GLSL 320
#define DISCARD discard
precision lowp float;
precision highp int;
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 10180000:02000802 Tex LM FragUber StenToAlphaDual StenUniform TFuncMod
uniform sampler2D tex;
uniform vec2 u_texNoAlphaMul;
uniform float u_stencilReplaceValue;
in lowp vec4 v_color0;
in lowp vec3 v_color1;
in mediump float v_fogdepth;
in mediump vec3 v_texcoord;
out vec4 fragColor0;
out vec4 fragColor1;
void main() {
vec4 s = vec4(v_color1, 0.0);
vec4 t = texture(tex, v_texcoord.xy);
vec4 p = v_color0;
t.a = max(t.a, u_texNoAlphaMul.x);
vec4 v = p * t + s;
v.rgb *= u_texNoAlphaMul.y;
fragColor0 = vec4(v.rgb, u_stencilReplaceValue);
fragColor1 = vec4(0.0, 0.0, 0.0, v.a);
}
vs: 01000000:80120b29 HWX C T N LM UVEnv Light: LightUberShader 0: c:0 t:0 1: c:0 t:0 Cull
#version 320 es
#extension GL_EXT_clip_cull_distance : enable
// Driver: Adreno (TM) 610 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 01000000:80120b29 HWX C T N LM UVEnv Light: LightUberShader 0: c:0 t:0 1: c:0 t:0 Cull
in vec3 position;
in mediump vec3 normal;
in vec2 texcoord;
in lowp vec4 color0;
uniform mat4 u_proj;
uniform mat4 u_world;
uniform mat4 u_view;
uniform vec4 u_uvscaleoffset;
uniform uint u_lightControl;
uniform vec3 u_lightpos0;
uniform mediump vec3 u_lightatt0;
uniform mediump vec3 u_lightdir0;
uniform mediump vec2 u_lightangle_spotCoef0;
uniform lowp vec3 u_lightambient0;
uniform lowp vec3 u_lightdiffuse0;
uniform lowp vec3 u_lightspecular0;
uniform vec3 u_lightpos1;
uniform mediump vec3 u_lightatt1;
uniform mediump vec3 u_lightdir1;
uniform mediump vec2 u_lightangle_spotCoef1;
uniform lowp vec3 u_lightambient1;
uniform lowp vec3 u_lightdiffuse1;
uniform lowp vec3 u_lightspecular1;
uniform vec3 u_lightpos2;
uniform mediump vec3 u_lightatt2;
uniform mediump vec3 u_lightdir2;
uniform mediump vec2 u_lightangle_spotCoef2;
uniform lowp vec3 u_lightambient2;
uniform lowp vec3 u_lightdiffuse2;
uniform lowp vec3 u_lightspecular2;
uniform vec3 u_lightpos3;
uniform mediump vec3 u_lightatt3;
uniform mediump vec3 u_lightdir3;
uniform mediump vec2 u_lightangle_spotCoef3;
uniform lowp vec3 u_lightambient3;
uniform lowp vec3 u_lightdiffuse3;
uniform lowp vec3 u_lightspecular3;
uniform lowp vec4 u_ambient;
uniform lowp vec3 u_matdiffuse;
uniform lowp vec4 u_matspecular;
uniform lowp vec3 u_matemissive;
uniform lowp vec4 u_matambientalpha;
uniform highp vec2 u_fogcoef;
uniform highp vec4 u_depthRange;
uniform highp vec4 u_cullRangeMin;
uniform highp vec4 u_cullRangeMax;
out lowp vec4 v_color0;
out lowp vec3 v_color1;
out mediump vec3 v_texcoord;
out mediump float v_fogdepth;
vec3 normalizeOr001(vec3 v) {
return length(v) == 0.0 ? vec3(0.0, 0.0, 1.0) : normalize(v);
}
void main() {
vec3 worldpos = mul(vec4(position, 1.0), u_world).xyz;
mediump vec3 worldnormal = normalizeOr001(mul(vec4(normal, 0.0), u_world).xyz);
vec4 viewPos = vec4(mul(vec4(worldpos, 1.0), u_view).xyz, 1.0);
vec4 outPos = mul(u_proj, viewPos);
vec4 ambientColor = ((u_lightControl & (1u << 0x14u)) != 0x0u) ? color0 : u_matambientalpha;
vec3 diffuseColor = ((u_lightControl & (1u << 0x15u)) != 0x0u) ? color0.rgb : u_matdiffuse;
vec3 specularColor = ((u_lightControl & (1u << 0x16u)) != 0x0u) ? color0.rgb : u_matspecular.rgb;
lowp vec4 lightSum0 = u_ambient * ambientColor + vec4(u_matemissive, 0.0);
lowp vec3 lightSum1 = splat3(0.0);
vec3 toLight;
lowp vec3 diffuse;
float distance;
lowp float lightScale;
mediump float ldot;
lowp float angle;
uint comp; uint type; float attenuation;
if ((u_lightControl & 0x1u) != 0x0u) {
comp = (u_lightControl >> 0x04u) & 0x3u;
type = (u_lightControl >> 0x06u) & 0x3u;
toLight = u_lightpos0;
if (type != 0x0u |
God of War: Chains of Olympus |
v1.18.1 |
2025-02-25 |
Error in shader program link: info: (unknown reason)
fs: 10180000:0120d802 Tex Fog LM FragUber StenToAlpha StenUniform TFuncMod AlphaTest >
#version 320 es
#extension GL_EXT_shader_framebuffer_fetch : require
// Driver: Adreno (TM) 610 - GLSL 320
#define DISCARD discard
precision lowp float;
precision highp int;
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 10180000:0120d802 Tex Fog LM FragUber StenToAlpha StenUniform TFuncMod AlphaTest >
uniform sampler2D tex;
uniform vec2 u_texNoAlphaMul;
uniform uint u_alphacolorref;
uniform uint u_alphacolormask;
uniform float u_stencilReplaceValue;
in lowp vec4 v_color0;
in lowp vec3 v_color1;
uniform vec3 u_fogcolor;
in mediump float v_fogdepth;
in mediump vec3 v_texcoord;
int roundAndScaleTo255i(in float x) { return int(floor(x * 255.0 + 0.5)); }
out vec4 fragColor0;
void main() {
vec4 s = vec4(v_color1, 0.0);
vec4 t = texture(tex, v_texcoord.xy);
vec4 p = v_color0;
t.a = max(t.a, u_texNoAlphaMul.x);
vec4 v = p * t + s;
v.rgb = clamp(v.rgb * u_texNoAlphaMul.y, 0.0, 1.0);
float fogCoef = clamp(v_fogdepth, 0.0, 1.0);
v = mix(vec4(u_fogcolor, v.a), v, fogCoef);
if ((roundAndScaleTo255i(v.a) & int(u_alphacolormask >> 0x18u)) <= int(u_alphacolorref >> 0x18u)) DISCARD;
fragColor0 = vec4(v.rgb, u_stencilReplaceValue);
}
vs: 01000000:80000b29 HWX C T N LM Light: LightUberShader Cull
#version 320 es
#extension GL_EXT_clip_cull_distance : enable
// Driver: Adreno (TM) 610 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 01000000:80000b29 HWX C T N LM Light: LightUberShader Cull
in vec3 position;
in mediump vec3 normal;
in vec2 texcoord;
in lowp vec4 color0;
uniform mat4 u_proj;
uniform mat4 u_world;
uniform mat4 u_view;
uniform vec4 u_uvscaleoffset;
uniform uint u_lightControl;
uniform vec3 u_lightpos0;
uniform mediump vec3 u_lightatt0;
uniform mediump vec3 u_lightdir0;
uniform mediump vec2 u_lightangle_spotCoef0;
uniform lowp vec3 u_lightambient0;
uniform lowp vec3 u_lightdiffuse0;
uniform lowp vec3 u_lightspecular0;
uniform vec3 u_lightpos1;
uniform mediump vec3 u_lightatt1;
uniform mediump vec3 u_lightdir1;
uniform mediump vec2 u_lightangle_spotCoef1;
uniform lowp vec3 u_lightambient1;
uniform lowp vec3 u_lightdiffuse1;
uniform lowp vec3 u_lightspecular1;
uniform vec3 u_lightpos2;
uniform mediump vec3 u_lightatt2;
uniform mediump vec3 u_lightdir2;
uniform mediump vec2 u_lightangle_spotCoef2;
uniform lowp vec3 u_lightambient2;
uniform lowp vec3 u_lightdiffuse2;
uniform lowp vec3 u_lightspecular2;
uniform vec3 u_lightpos3;
uniform mediump vec3 u_lightatt3;
uniform mediump vec3 u_lightdir3;
uniform mediump vec2 u_lightangle_spotCoef3;
uniform lowp vec3 u_lightambient3;
uniform lowp vec3 u_lightdiffuse3;
uniform lowp vec3 u_lightspecular3;
uniform lowp vec4 u_ambient;
uniform lowp vec3 u_matdiffuse;
uniform lowp vec4 u_matspecular;
uniform lowp vec3 u_matemissive;
uniform lowp vec4 u_matambientalpha;
uniform highp vec2 u_fogcoef;
uniform highp vec4 u_depthRange;
uniform highp vec4 u_cullRangeMin;
uniform highp vec4 u_cullRangeMax;
out lowp vec4 v_color0;
out lowp vec3 v_color1;
out mediump vec3 v_texcoord;
out mediump float v_fogdepth;
vec3 normalizeOr001(vec3 v) {
return length(v) == 0.0 ? vec3(0.0, 0.0, 1.0) : normalize(v);
}
void main() {
vec3 worldpos = mul(vec4(position, 1.0), u_world).xyz;
mediump vec3 worldnormal = normalizeOr001(mul(vec4(normal, 0.0), u_world).xyz);
vec4 viewPos = vec4(mul(vec4(worldpos, 1.0), u_view).xyz, 1.0);
vec4 outPos = mul(u_proj, viewPos);
vec4 ambientColor = ((u_lightControl & (1u << 0x14u)) != 0x0u) ? color0 : u_matambientalpha;
vec3 diffuseColor = ((u_lightControl & (1u << 0x15u)) != 0x0u) ? color0.rgb : u_matdiffuse;
vec3 specularColor = ((u_lightControl & (1u << 0x16u)) != 0x0u) ? color0.rgb : u_matspecular.rgb;
lowp vec4 lightSum0 = u_ambient * ambientColor + vec4(u_matemissive, 0.0);
lowp vec3 lightSum1 = splat3(0.0);
vec3 toLight;
lowp vec3 diffuse;
float distance;
lowp float lightScale;
mediump float |
God of War: Chains of Olympus |
v1.18.1 |
2025-02-25 |
Error in shader program link: info: (unknown reason)
fs: 10180000:00200802 Tex Fog LM FragUber TFuncMod
#version 320 es
#extension GL_EXT_shader_framebuffer_fetch : require
// Driver: Adreno (TM) 610 - GLSL 320
#define DISCARD discard
precision lowp float;
precision highp int;
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 10180000:00200802 Tex Fog LM FragUber TFuncMod
uniform sampler2D tex;
uniform vec2 u_texNoAlphaMul;
in lowp vec4 v_color0;
in lowp vec3 v_color1;
uniform vec3 u_fogcolor;
in mediump float v_fogdepth;
in mediump vec3 v_texcoord;
out vec4 fragColor0;
void main() {
vec4 s = vec4(v_color1, 0.0);
vec4 t = texture(tex, v_texcoord.xy);
vec4 p = v_color0;
t.a = max(t.a, u_texNoAlphaMul.x);
vec4 v = p * t + s;
v.rgb = clamp(v.rgb * u_texNoAlphaMul.y, 0.0, 1.0);
float fogCoef = clamp(v_fogdepth, 0.0, 1.0);
v = mix(vec4(u_fogcolor, v.a), v, fogCoef);
fragColor0 = v;
}
vs: 01000000:80000b29 HWX C T N LM Light: LightUberShader Cull
#version 320 es
#extension GL_EXT_clip_cull_distance : enable
// Driver: Adreno (TM) 610 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 01000000:80000b29 HWX C T N LM Light: LightUberShader Cull
in vec3 position;
in mediump vec3 normal;
in vec2 texcoord;
in lowp vec4 color0;
uniform mat4 u_proj;
uniform mat4 u_world;
uniform mat4 u_view;
uniform vec4 u_uvscaleoffset;
uniform uint u_lightControl;
uniform vec3 u_lightpos0;
uniform mediump vec3 u_lightatt0;
uniform mediump vec3 u_lightdir0;
uniform mediump vec2 u_lightangle_spotCoef0;
uniform lowp vec3 u_lightambient0;
uniform lowp vec3 u_lightdiffuse0;
uniform lowp vec3 u_lightspecular0;
uniform vec3 u_lightpos1;
uniform mediump vec3 u_lightatt1;
uniform mediump vec3 u_lightdir1;
uniform mediump vec2 u_lightangle_spotCoef1;
uniform lowp vec3 u_lightambient1;
uniform lowp vec3 u_lightdiffuse1;
uniform lowp vec3 u_lightspecular1;
uniform vec3 u_lightpos2;
uniform mediump vec3 u_lightatt2;
uniform mediump vec3 u_lightdir2;
uniform mediump vec2 u_lightangle_spotCoef2;
uniform lowp vec3 u_lightambient2;
uniform lowp vec3 u_lightdiffuse2;
uniform lowp vec3 u_lightspecular2;
uniform vec3 u_lightpos3;
uniform mediump vec3 u_lightatt3;
uniform mediump vec3 u_lightdir3;
uniform mediump vec2 u_lightangle_spotCoef3;
uniform lowp vec3 u_lightambient3;
uniform lowp vec3 u_lightdiffuse3;
uniform lowp vec3 u_lightspecular3;
uniform lowp vec4 u_ambient;
uniform lowp vec3 u_matdiffuse;
uniform lowp vec4 u_matspecular;
uniform lowp vec3 u_matemissive;
uniform lowp vec4 u_matambientalpha;
uniform highp vec2 u_fogcoef;
uniform highp vec4 u_depthRange;
uniform highp vec4 u_cullRangeMin;
uniform highp vec4 u_cullRangeMax;
out lowp vec4 v_color0;
out lowp vec3 v_color1;
out mediump vec3 v_texcoord;
out mediump float v_fogdepth;
vec3 normalizeOr001(vec3 v) {
return length(v) == 0.0 ? vec3(0.0, 0.0, 1.0) : normalize(v);
}
void main() {
vec3 worldpos = mul(vec4(position, 1.0), u_world).xyz;
mediump vec3 worldnormal = normalizeOr001(mul(vec4(normal, 0.0), u_world).xyz);
vec4 viewPos = vec4(mul(vec4(worldpos, 1.0), u_view).xyz, 1.0);
vec4 outPos = mul(u_proj, viewPos);
vec4 ambientColor = ((u_lightControl & (1u << 0x14u)) != 0x0u) ? color0 : u_matambientalpha;
vec3 diffuseColor = ((u_lightControl & (1u << 0x15u)) != 0x0u) ? color0.rgb : u_matdiffuse;
vec3 specularColor = ((u_lightControl & (1u << 0x16u)) != 0x0u) ? color0.rgb : u_matspecular.rgb;
lowp vec4 lightSum0 = u_ambient * ambientColor + vec4(u_matemissive, 0.0);
lowp vec3 lightSum1 = splat3(0.0);
vec3 toLight;
lowp vec3 diffuse;
float distance;
lowp float lightScale;
mediump float ldot;
lowp float angle;
uint comp; uint type; float attenuation;
if ((u_lightControl & 0x1u) != 0x0u) {
comp = (u_lightControl >> 0x04u) & 0x3u;
type = (u_lightControl >> 0x06u) & 0x3u;
toLight = u_lightpos0;
if (type != 0x0u) {
toLight -= worldpos;
distance = length(toLight);
toLight /= distance;
attenuation = clamp(1.0 / dot(u_lightatt0, v |
God of War: Chains of Olympus |
v1.18.1 |
2025-02-25 |
Error in shader program link: info: (unknown reason)
fs: 10180000:00000802 Tex LM FragUber TFuncMod
#version 320 es
#extension GL_EXT_shader_framebuffer_fetch : require
// Driver: Adreno (TM) 610 - GLSL 320
#define DISCARD discard
precision lowp float;
precision highp int;
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 10180000:00000802 Tex LM FragUber TFuncMod
uniform sampler2D tex;
uniform vec2 u_texNoAlphaMul;
in lowp vec4 v_color0;
in lowp vec3 v_color1;
in mediump float v_fogdepth;
in mediump vec3 v_texcoord;
out vec4 fragColor0;
void main() {
vec4 s = vec4(v_color1, 0.0);
vec4 t = texture(tex, v_texcoord.xy);
vec4 p = v_color0;
t.a = max(t.a, u_texNoAlphaMul.x);
vec4 v = p * t + s;
v.rgb *= u_texNoAlphaMul.y;
fragColor0 = v;
}
vs: 01000000:80000b29 HWX C T N LM Light: LightUberShader Cull
#version 320 es
#extension GL_EXT_clip_cull_distance : enable
// Driver: Adreno (TM) 610 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 01000000:80000b29 HWX C T N LM Light: LightUberShader Cull
in vec3 position;
in mediump vec3 normal;
in vec2 texcoord;
in lowp vec4 color0;
uniform mat4 u_proj;
uniform mat4 u_world;
uniform mat4 u_view;
uniform vec4 u_uvscaleoffset;
uniform uint u_lightControl;
uniform vec3 u_lightpos0;
uniform mediump vec3 u_lightatt0;
uniform mediump vec3 u_lightdir0;
uniform mediump vec2 u_lightangle_spotCoef0;
uniform lowp vec3 u_lightambient0;
uniform lowp vec3 u_lightdiffuse0;
uniform lowp vec3 u_lightspecular0;
uniform vec3 u_lightpos1;
uniform mediump vec3 u_lightatt1;
uniform mediump vec3 u_lightdir1;
uniform mediump vec2 u_lightangle_spotCoef1;
uniform lowp vec3 u_lightambient1;
uniform lowp vec3 u_lightdiffuse1;
uniform lowp vec3 u_lightspecular1;
uniform vec3 u_lightpos2;
uniform mediump vec3 u_lightatt2;
uniform mediump vec3 u_lightdir2;
uniform mediump vec2 u_lightangle_spotCoef2;
uniform lowp vec3 u_lightambient2;
uniform lowp vec3 u_lightdiffuse2;
uniform lowp vec3 u_lightspecular2;
uniform vec3 u_lightpos3;
uniform mediump vec3 u_lightatt3;
uniform mediump vec3 u_lightdir3;
uniform mediump vec2 u_lightangle_spotCoef3;
uniform lowp vec3 u_lightambient3;
uniform lowp vec3 u_lightdiffuse3;
uniform lowp vec3 u_lightspecular3;
uniform lowp vec4 u_ambient;
uniform lowp vec3 u_matdiffuse;
uniform lowp vec4 u_matspecular;
uniform lowp vec3 u_matemissive;
uniform lowp vec4 u_matambientalpha;
uniform highp vec2 u_fogcoef;
uniform highp vec4 u_depthRange;
uniform highp vec4 u_cullRangeMin;
uniform highp vec4 u_cullRangeMax;
out lowp vec4 v_color0;
out lowp vec3 v_color1;
out mediump vec3 v_texcoord;
out mediump float v_fogdepth;
vec3 normalizeOr001(vec3 v) {
return length(v) == 0.0 ? vec3(0.0, 0.0, 1.0) : normalize(v);
}
void main() {
vec3 worldpos = mul(vec4(position, 1.0), u_world).xyz;
mediump vec3 worldnormal = normalizeOr001(mul(vec4(normal, 0.0), u_world).xyz);
vec4 viewPos = vec4(mul(vec4(worldpos, 1.0), u_view).xyz, 1.0);
vec4 outPos = mul(u_proj, viewPos);
vec4 ambientColor = ((u_lightControl & (1u << 0x14u)) != 0x0u) ? color0 : u_matambientalpha;
vec3 diffuseColor = ((u_lightControl & (1u << 0x15u)) != 0x0u) ? color0.rgb : u_matdiffuse;
vec3 specularColor = ((u_lightControl & (1u << 0x16u)) != 0x0u) ? color0.rgb : u_matspecular.rgb;
lowp vec4 lightSum0 = u_ambient * ambientColor + vec4(u_matemissive, 0.0);
lowp vec3 lightSum1 = splat3(0.0);
vec3 toLight;
lowp vec3 diffuse;
float distance;
lowp float lightScale;
mediump float ldot;
lowp float angle;
uint comp; uint type; float attenuation;
if ((u_lightControl & 0x1u) != 0x0u) {
comp = (u_lightControl >> 0x04u) & 0x3u;
type = (u_lightControl >> 0x06u) & 0x3u;
toLight = u_lightpos0;
if (type != 0x0u) {
toLight -= worldpos;
distance = length(toLight);
toLight /= distance;
attenuation = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0);
if (type == 0x01u) {
lightScale = attenuation;
} else {
angle = dot(u_l |
God of War: Chains of Olympus |
v1.18.1 |
2025-02-25 |
Error in shader program link: info: (unknown reason)
fs: 10180000:00000000 FragUber
#version 320 es
#extension GL_EXT_shader_framebuffer_fetch : require
// Driver: Adreno (TM) 610 - GLSL 320
#define DISCARD discard
precision lowp float;
precision highp int;
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 10180000:00000000 FragUber
in lowp vec4 v_color0;
in mediump float v_fogdepth;
out vec4 fragColor0;
void main() {
vec4 v = v_color0;
fragColor0 = v;
}
vs: 00000000:0000000a THR C
#version 320 es
// Driver: Adreno (TM) 610 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 00000000:0000000a THR C
in vec4 position;
in highp float fog;
in vec2 texcoord;
in lowp vec4 color0;
uniform mat4 u_proj_through;
uniform lowp float u_rotation;
uniform highp vec2 u_fogcoef;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
out mediump float v_fogdepth;
void main() {
v_texcoord = vec3(texcoord, 1.0);
v_color0 = color0;
v_fogdepth = fog;
vec4 outPos = mul(u_proj_through, vec4(position.xyz, 1.0));
gl_Position = outPos;
}
|
God of War: Chains of Olympus |
v1.18.1 |
2025-02-25 |
Error in shader program link: info: (unknown reason)
fs: 10180000:00200802 Tex Fog LM FragUber TFuncMod
#version 320 es
#extension GL_EXT_shader_framebuffer_fetch : require
// Driver: Adreno (TM) 610 - GLSL 320
#define DISCARD discard
precision lowp float;
precision highp int;
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 10180000:00200802 Tex Fog LM FragUber TFuncMod
uniform sampler2D tex;
uniform vec2 u_texNoAlphaMul;
in lowp vec4 v_color0;
in lowp vec3 v_color1;
uniform vec3 u_fogcolor;
in mediump float v_fogdepth;
in mediump vec3 v_texcoord;
out vec4 fragColor0;
void main() {
vec4 s = vec4(v_color1, 0.0);
vec4 t = texture(tex, v_texcoord.xy);
vec4 p = v_color0;
t.a = max(t.a, u_texNoAlphaMul.x);
vec4 v = p * t + s;
v.rgb = clamp(v.rgb * u_texNoAlphaMul.y, 0.0, 1.0);
float fogCoef = clamp(v_fogdepth, 0.0, 1.0);
v = mix(vec4(u_fogcolor, v.a), v, fogCoef);
fragColor0 = v;
}
vs: 01000000:80000929 HWX C T LM Light: LightUberShader Cull
#version 320 es
#extension GL_EXT_clip_cull_distance : enable
// Driver: Adreno (TM) 610 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 01000000:80000929 HWX C T LM Light: LightUberShader Cull
in vec3 position;
in vec2 texcoord;
in lowp vec4 color0;
uniform mat4 u_proj;
uniform mat4 u_world;
uniform mat4 u_view;
uniform vec4 u_uvscaleoffset;
uniform uint u_lightControl;
uniform vec3 u_lightpos0;
uniform mediump vec3 u_lightatt0;
uniform mediump vec3 u_lightdir0;
uniform mediump vec2 u_lightangle_spotCoef0;
uniform lowp vec3 u_lightambient0;
uniform lowp vec3 u_lightdiffuse0;
uniform lowp vec3 u_lightspecular0;
uniform vec3 u_lightpos1;
uniform mediump vec3 u_lightatt1;
uniform mediump vec3 u_lightdir1;
uniform mediump vec2 u_lightangle_spotCoef1;
uniform lowp vec3 u_lightambient1;
uniform lowp vec3 u_lightdiffuse1;
uniform lowp vec3 u_lightspecular1;
uniform vec3 u_lightpos2;
uniform mediump vec3 u_lightatt2;
uniform mediump vec3 u_lightdir2;
uniform mediump vec2 u_lightangle_spotCoef2;
uniform lowp vec3 u_lightambient2;
uniform lowp vec3 u_lightdiffuse2;
uniform lowp vec3 u_lightspecular2;
uniform vec3 u_lightpos3;
uniform mediump vec3 u_lightatt3;
uniform mediump vec3 u_lightdir3;
uniform mediump vec2 u_lightangle_spotCoef3;
uniform lowp vec3 u_lightambient3;
uniform lowp vec3 u_lightdiffuse3;
uniform lowp vec3 u_lightspecular3;
uniform lowp vec4 u_ambient;
uniform lowp vec3 u_matdiffuse;
uniform lowp vec4 u_matspecular;
uniform lowp vec3 u_matemissive;
uniform lowp vec4 u_matambientalpha;
uniform highp vec2 u_fogcoef;
uniform highp vec4 u_depthRange;
uniform highp vec4 u_cullRangeMin;
uniform highp vec4 u_cullRangeMax;
out lowp vec4 v_color0;
out lowp vec3 v_color1;
out mediump vec3 v_texcoord;
out mediump float v_fogdepth;
vec3 normalizeOr001(vec3 v) {
return length(v) == 0.0 ? vec3(0.0, 0.0, 1.0) : normalize(v);
}
void main() {
vec3 worldpos = mul(vec4(position, 1.0), u_world).xyz;
mediump vec3 worldnormal = normalizeOr001(mul(vec4(0.0, 0.0, 1.0, 0.0), u_world).xyz);
vec4 viewPos = vec4(mul(vec4(worldpos, 1.0), u_view).xyz, 1.0);
vec4 outPos = mul(u_proj, viewPos);
vec4 ambientColor = ((u_lightControl & (1u << 0x14u)) != 0x0u) ? color0 : u_matambientalpha;
vec3 diffuseColor = ((u_lightControl & (1u << 0x15u)) != 0x0u) ? color0.rgb : u_matdiffuse;
vec3 specularColor = ((u_lightControl & (1u << 0x16u)) != 0x0u) ? color0.rgb : u_matspecular.rgb;
lowp vec4 lightSum0 = u_ambient * ambientColor + vec4(u_matemissive, 0.0);
lowp vec3 lightSum1 = splat3(0.0);
vec3 toLight;
lowp vec3 diffuse;
float distance;
lowp float lightScale;
mediump float ldot;
lowp float angle;
uint comp; uint type; float attenuation;
if ((u_lightControl & 0x1u) != 0x0u) {
comp = (u_lightControl >> 0x04u) & 0x3u;
type = (u_lightControl >> 0x06u) & 0x3u;
toLight = u_lightpos0;
if (type != 0x0u) {
toLight -= worldpos;
distance = length(toLight);
toLight /= distance;
attenuation = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, di |
God of War: Chains of Olympus |
v1.18.1 |
2025-02-25 |
Error in shader program link: info: (unknown reason)
fs: 10180000:00200000 Fog FragUber
#version 320 es
#extension GL_EXT_shader_framebuffer_fetch : require
// Driver: Adreno (TM) 610 - GLSL 320
#define DISCARD discard
precision lowp float;
precision highp int;
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 10180000:00200000 Fog FragUber
in lowp vec4 v_color0;
uniform vec3 u_fogcolor;
in mediump float v_fogdepth;
out vec4 fragColor0;
void main() {
vec4 v = v_color0;
float fogCoef = clamp(v_fogdepth, 0.0, 1.0);
v = mix(vec4(u_fogcolor, v.a), v, fogCoef);
fragColor0 = v;
}
vs: 00000000:00000120 HWX Cull
#version 320 es
#extension GL_EXT_clip_cull_distance : enable
// Driver: Adreno (TM) 610 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 00000000:00000120 HWX Cull
in vec3 position;
uniform mat4 u_proj;
uniform mat4 u_world;
uniform mat4 u_view;
uniform vec4 u_uvscaleoffset;
uniform lowp vec4 u_matambientalpha;
uniform highp vec2 u_fogcoef;
uniform highp vec4 u_depthRange;
uniform highp vec4 u_cullRangeMin;
uniform highp vec4 u_cullRangeMax;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
out mediump float v_fogdepth;
vec3 normalizeOr001(vec3 v) {
return length(v) == 0.0 ? vec3(0.0, 0.0, 1.0) : normalize(v);
}
void main() {
vec3 worldpos = mul(vec4(position, 1.0), u_world).xyz;
mediump vec3 worldnormal = normalizeOr001(mul(vec4(0.0, 0.0, 1.0, 0.0), u_world).xyz);
vec4 viewPos = vec4(mul(vec4(worldpos, 1.0), u_view).xyz, 1.0);
vec4 outPos = mul(u_proj, viewPos);
vec4 ambientColor = u_matambientalpha;
v_color0 = u_matambientalpha;
v_texcoord = splat3(0.0);
v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y;
vec3 projPos = outPos.xyz / outPos.w;
float projZ = (projPos.z - u_depthRange.z) * u_depthRange.w;
if (u_cullRangeMin.w <= 0.0 || projZ * outPos.w > -outPos.w) {
if ((projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y) || (projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y)) {
outPos.xyzw = u_cullRangeMax.wwww;
}
}
if (u_cullRangeMin.w <= 0.0) {
if (projPos.z < u_cullRangeMin.z || projPos.z > u_cullRangeMax.z) {
outPos.xyzw = u_cullRangeMax.wwww;
}
}
gl_ClipDistance[0] = projZ * outPos.w + outPos.w + 0.000001;
if (u_cullRangeMin.w > 0.0 && u_depthRange.w != 0.0f) {
gl_CullDistance[0] = projPos.z - u_cullRangeMin.z;
gl_CullDistance[1] = u_cullRangeMax.z - projPos.z;
} else {
gl_CullDistance[0] = 0.0;
gl_CullDistance[1] = 0.0;
}
gl_Position = outPos;
}
|
God of War: Chains of Olympus |
v1.18.1 |
2025-02-25 |
Error in shader program link: info: (unknown reason)
fs: 10182a82:00000382 Tex FragUber TClampST ReplaceBlend_2A:10_B:10_Eq:0 TFuncMod
#version 320 es
#extension GL_EXT_shader_framebuffer_fetch : require
// Driver: Adreno (TM) 610 - GLSL 320
#define DISCARD discard
precision lowp float;
precision highp int;
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 10182a82:00000382 Tex FragUber TClampST ReplaceBlend_2A:10_B:10_Eq:0 TFuncMod
uniform sampler2D tex;
uniform vec2 u_texNoAlphaMul;
uniform vec3 u_blendFixA;
uniform vec3 u_blendFixB;
uniform vec4 u_texclamp;
uniform vec2 u_texclampoff;
in lowp vec4 v_color0;
in mediump float v_fogdepth;
in mediump vec3 v_texcoord;
out vec4 fragColor0;
void main() {
vec2 fixedcoord = vec2((clamp(v_texcoord.x, u_texclamp.z, u_texclamp.x - u_texclamp.z) + u_texclampoff.x), (clamp(v_texcoord.y, u_texclamp.w, u_texclamp.y - u_texclamp.w) + u_texclampoff.y));
vec4 t = texture(tex, fixedcoord.xy);
vec4 p = v_color0;
t.a = max(t.a, u_texNoAlphaMul.x);
vec4 v = p * t;
v.rgb = clamp(v.rgb * u_texNoAlphaMul.y, 0.0, 1.0);
v.rgb = v.rgb * u_blendFixA;
fragColor0 = v;
}
vs: 00000000:00000002 THR
#version 320 es
// Driver: Adreno (TM) 610 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 00000000:00000002 THR
in vec4 position;
in highp float fog;
in vec2 texcoord;
in lowp vec4 color0;
uniform mat4 u_proj_through;
uniform lowp float u_rotation;
uniform highp vec2 u_fogcoef;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
out mediump float v_fogdepth;
void main() {
v_texcoord = vec3(texcoord, 1.0);
v_color0 = color0;
v_fogdepth = fog;
vec4 outPos = mul(u_proj_through, vec4(position.xyz, 1.0));
gl_Position = outPos;
}
|
God of War: Chains of Olympus |
v1.18.1 |
2025-02-25 |
Error in shader program link: info: (unknown reason)
fs: 10180000:05000000 FragUber StenToAlpha Sten0
#version 320 es
#extension GL_EXT_shader_framebuffer_fetch : require
// Driver: Adreno (TM) 610 - GLSL 320
#define DISCARD discard
precision lowp float;
precision highp int;
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 10180000:05000000 FragUber StenToAlpha Sten0
in lowp vec4 v_color0;
in mediump float v_fogdepth;
out vec4 fragColor0;
void main() {
vec4 v = v_color0;
fragColor0 = vec4(v.rgb, 0.0);
}
vs: 00000000:00000002 THR
#version 320 es
// Driver: Adreno (TM) 610 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 00000000:00000002 THR
in vec4 position;
in highp float fog;
in vec2 texcoord;
in lowp vec4 color0;
uniform mat4 u_proj_through;
uniform lowp float u_rotation;
uniform highp vec2 u_fogcoef;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
out mediump float v_fogdepth;
void main() {
v_texcoord = vec3(texcoord, 1.0);
v_color0 = color0;
v_fogdepth = fog;
vec4 outPos = mul(u_proj_through, vec4(position.xyz, 1.0));
gl_Position = outPos;
}
|
God of War: Chains of Olympus |
v1.18.1 |
2025-02-25 |
Error in shader program link: info: (unknown reason)
fs: 10180000:00200000 Fog FragUber
#version 320 es
#extension GL_EXT_shader_framebuffer_fetch : require
// Driver: Adreno (TM) 610 - GLSL 320
#define DISCARD discard
precision lowp float;
precision highp int;
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 10180000:00200000 Fog FragUber
in lowp vec4 v_color0;
uniform vec3 u_fogcolor;
in mediump float v_fogdepth;
out vec4 fragColor0;
void main() {
vec4 v = v_color0;
float fogCoef = clamp(v_fogdepth, 0.0, 1.0);
v = mix(vec4(u_fogcolor, v.a), v, fogCoef);
fragColor0 = v;
}
vs: 00000000:00000928 HWX C T Cull
#version 320 es
#extension GL_EXT_clip_cull_distance : enable
// Driver: Adreno (TM) 610 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 00000000:00000928 HWX C T Cull
in vec3 position;
in vec2 texcoord;
in lowp vec4 color0;
uniform mat4 u_proj;
uniform mat4 u_world;
uniform mat4 u_view;
uniform vec4 u_uvscaleoffset;
uniform lowp vec4 u_matambientalpha;
uniform highp vec2 u_fogcoef;
uniform highp vec4 u_depthRange;
uniform highp vec4 u_cullRangeMin;
uniform highp vec4 u_cullRangeMax;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
out mediump float v_fogdepth;
vec3 normalizeOr001(vec3 v) {
return length(v) == 0.0 ? vec3(0.0, 0.0, 1.0) : normalize(v);
}
void main() {
vec3 worldpos = mul(vec4(position, 1.0), u_world).xyz;
mediump vec3 worldnormal = normalizeOr001(mul(vec4(0.0, 0.0, 1.0, 0.0), u_world).xyz);
vec4 viewPos = vec4(mul(vec4(worldpos, 1.0), u_view).xyz, 1.0);
vec4 outPos = mul(u_proj, viewPos);
vec4 ambientColor = u_matambientalpha;
v_color0 = color0;
v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0);
v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y;
vec3 projPos = outPos.xyz / outPos.w;
float projZ = (projPos.z - u_depthRange.z) * u_depthRange.w;
if (u_cullRangeMin.w <= 0.0 || projZ * outPos.w > -outPos.w) {
if ((projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y) || (projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y)) {
outPos.xyzw = u_cullRangeMax.wwww;
}
}
if (u_cullRangeMin.w <= 0.0) {
if (projPos.z < u_cullRangeMin.z || projPos.z > u_cullRangeMax.z) {
outPos.xyzw = u_cullRangeMax.wwww;
}
}
gl_ClipDistance[0] = projZ * outPos.w + outPos.w + 0.000001;
if (u_cullRangeMin.w > 0.0 && u_depthRange.w != 0.0f) {
gl_CullDistance[0] = projPos.z - u_cullRangeMin.z;
gl_CullDistance[1] = u_cullRangeMax.z - projPos.z;
} else {
gl_CullDistance[0] = 0.0;
gl_CullDistance[1] = 0.0;
}
gl_Position = outPos;
}
|
God of War: Chains of Olympus |
v1.18.1 |
2025-02-25 |
Error in shader program link: info: (unknown reason)
fs: 10180000:00000002 Tex FragUber TFuncMod
#version 320 es
#extension GL_EXT_shader_framebuffer_fetch : require
// Driver: Adreno (TM) 610 - GLSL 320
#define DISCARD discard
precision lowp float;
precision highp int;
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 10180000:00000002 Tex FragUber TFuncMod
uniform sampler2D tex;
uniform vec2 u_texNoAlphaMul;
in lowp vec4 v_color0;
in mediump float v_fogdepth;
in mediump vec3 v_texcoord;
out vec4 fragColor0;
void main() {
vec4 t = texture(tex, v_texcoord.xy);
vec4 p = v_color0;
t.a = max(t.a, u_texNoAlphaMul.x);
vec4 v = p * t;
v.rgb *= u_texNoAlphaMul.y;
fragColor0 = v;
}
vs: 00000000:0000000a THR C
#version 320 es
// Driver: Adreno (TM) 610 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 00000000:0000000a THR C
in vec4 position;
in highp float fog;
in vec2 texcoord;
in lowp vec4 color0;
uniform mat4 u_proj_through;
uniform lowp float u_rotation;
uniform highp vec2 u_fogcoef;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
out mediump float v_fogdepth;
void main() {
v_texcoord = vec3(texcoord, 1.0);
v_color0 = color0;
v_fogdepth = fog;
vec4 outPos = mul(u_proj_through, vec4(position.xyz, 1.0));
gl_Position = outPos;
}
|
God of War: Chains of Olympus |
v1.18.1 |
2025-02-25 |
Error in shader program link: info: (unknown reason)
fs: 10180000:0120d802 Tex Fog LM FragUber StenToAlpha StenUniform TFuncMod AlphaTest >
#version 320 es
#extension GL_EXT_shader_framebuffer_fetch : require
// Driver: Adreno (TM) 610 - GLSL 320
#define DISCARD discard
precision lowp float;
precision highp int;
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 10180000:0120d802 Tex Fog LM FragUber StenToAlpha StenUniform TFuncMod AlphaTest >
uniform sampler2D tex;
uniform vec2 u_texNoAlphaMul;
uniform uint u_alphacolorref;
uniform uint u_alphacolormask;
uniform float u_stencilReplaceValue;
in lowp vec4 v_color0;
in lowp vec3 v_color1;
uniform vec3 u_fogcolor;
in mediump float v_fogdepth;
in mediump vec3 v_texcoord;
int roundAndScaleTo255i(in float x) { return int(floor(x * 255.0 + 0.5)); }
out vec4 fragColor0;
void main() {
vec4 s = vec4(v_color1, 0.0);
vec4 t = texture(tex, v_texcoord.xy);
vec4 p = v_color0;
t.a = max(t.a, u_texNoAlphaMul.x);
vec4 v = p * t + s;
v.rgb = clamp(v.rgb * u_texNoAlphaMul.y, 0.0, 1.0);
float fogCoef = clamp(v_fogdepth, 0.0, 1.0);
v = mix(vec4(u_fogcolor, v.a), v, fogCoef);
if ((roundAndScaleTo255i(v.a) & int(u_alphacolormask >> 0x18u)) <= int(u_alphacolorref >> 0x18u)) DISCARD;
fragColor0 = vec4(v.rgb, u_stencilReplaceValue);
}
vs: 01000000:80000f29 HWX C T N LM RevN Light: LightUberShader Cull
#version 320 es
#extension GL_EXT_clip_cull_distance : enable
// Driver: Adreno (TM) 610 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 01000000:80000f29 HWX C T N LM RevN Light: LightUberShader Cull
in vec3 position;
in mediump vec3 normal;
in vec2 texcoord;
in lowp vec4 color0;
uniform mat4 u_proj;
uniform mat4 u_world;
uniform mat4 u_view;
uniform vec4 u_uvscaleoffset;
uniform uint u_lightControl;
uniform vec3 u_lightpos0;
uniform mediump vec3 u_lightatt0;
uniform mediump vec3 u_lightdir0;
uniform mediump vec2 u_lightangle_spotCoef0;
uniform lowp vec3 u_lightambient0;
uniform lowp vec3 u_lightdiffuse0;
uniform lowp vec3 u_lightspecular0;
uniform vec3 u_lightpos1;
uniform mediump vec3 u_lightatt1;
uniform mediump vec3 u_lightdir1;
uniform mediump vec2 u_lightangle_spotCoef1;
uniform lowp vec3 u_lightambient1;
uniform lowp vec3 u_lightdiffuse1;
uniform lowp vec3 u_lightspecular1;
uniform vec3 u_lightpos2;
uniform mediump vec3 u_lightatt2;
uniform mediump vec3 u_lightdir2;
uniform mediump vec2 u_lightangle_spotCoef2;
uniform lowp vec3 u_lightambient2;
uniform lowp vec3 u_lightdiffuse2;
uniform lowp vec3 u_lightspecular2;
uniform vec3 u_lightpos3;
uniform mediump vec3 u_lightatt3;
uniform mediump vec3 u_lightdir3;
uniform mediump vec2 u_lightangle_spotCoef3;
uniform lowp vec3 u_lightambient3;
uniform lowp vec3 u_lightdiffuse3;
uniform lowp vec3 u_lightspecular3;
uniform lowp vec4 u_ambient;
uniform lowp vec3 u_matdiffuse;
uniform lowp vec4 u_matspecular;
uniform lowp vec3 u_matemissive;
uniform lowp vec4 u_matambientalpha;
uniform highp vec2 u_fogcoef;
uniform highp vec4 u_depthRange;
uniform highp vec4 u_cullRangeMin;
uniform highp vec4 u_cullRangeMax;
out lowp vec4 v_color0;
out lowp vec3 v_color1;
out mediump vec3 v_texcoord;
out mediump float v_fogdepth;
vec3 normalizeOr001(vec3 v) {
return length(v) == 0.0 ? vec3(0.0, 0.0, 1.0) : normalize(v);
}
void main() {
vec3 worldpos = mul(vec4(position, 1.0), u_world).xyz;
mediump vec3 worldnormal = normalizeOr001(mul(vec4(-normal, 0.0), u_world).xyz);
vec4 viewPos = vec4(mul(vec4(worldpos, 1.0), u_view).xyz, 1.0);
vec4 outPos = mul(u_proj, viewPos);
vec4 ambientColor = ((u_lightControl & (1u << 0x14u)) != 0x0u) ? color0 : u_matambientalpha;
vec3 diffuseColor = ((u_lightControl & (1u << 0x15u)) != 0x0u) ? color0.rgb : u_matdiffuse;
vec3 specularColor = ((u_lightControl & (1u << 0x16u)) != 0x0u) ? color0.rgb : u_matspecular.rgb;
lowp vec4 lightSum0 = u_ambient * ambientColor + vec4(u_matemissive, 0.0);
lowp vec3 lightSum1 = splat3(0.0);
vec3 toLight;
lowp vec3 diffuse;
float distance;
lowp float lightScale;
med |