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 | 
			
				| Dragon Ball Z: Tenkaichi Tag Team | v1.11.2-917-g89e70c319 | 2025-10-20 | WriteToHardware: Invalid address e6ef739c near PC 0880dcc8 LR 0880dcc8 | 
				| EA SPORTS FC26 BY Charly | v1.19.3 | 2025-10-31 | Savedata version requested: 3 | 
				| eFootball Lop - Play | v1.11.2-917-g89e70c319 | 2025-10-12 | sceKernelLoadModule: unsupported options size=00000014, flags=00000000, pos=0, access=1, data=1, text=1 | 
				| SBK®08 Superbike World Championship | v1.11.2-917-g89e70c319 | 2025-10-10 | sceKernelRegisterSubIntrHandler(30, 0, 089c90fc, 0905c150): duplicate handler | 
				| SBK®08 Superbike World Championship | v1.11.2-917-g89e70c319 | 2025-10-10 | sceKernelRegisterSubIntrHandler(30, 0, 089c90fc, 091fad20): duplicate handler | 
				| SBK®08 Superbike World Championship | v1.11.2-917-g89e70c319 | 2025-10-10 | sceKernelRegisterSubIntrHandler(30, 0, 089c90fc, 0919faa0): duplicate handler | 
				| SBK®08 Superbike World Championship | v1.11.2-917-g89e70c319 | 2025-10-10 | sceKernelRegisterSubIntrHandler(30, 0, 089c90fc, 091988f0): duplicate handler | 
				| SBK®08 Superbike World Championship | v1.11.2-917-g89e70c319 | 2025-10-10 | sceKernelRegisterSubIntrHandler(30, 0, 089c90fc, 090e3da0): duplicate handler | 
				| eFootball 2026 By Komo Valeri | v1.9.4 | 2025-10-31 | Savedata version requested: 3 | 
				| MYFP26 ENGLISH | v1.9.4 | 2025-10-31 | Savedata version requested: 3 | 
				| Dragon Ball Z: Tenkaichi Tag Team | v1.11.2-917-g89e70c319 | 2025-09-12 | WriteToHardware: Invalid address 04c7c000 near PC 0883c798 LR 0883c798 | 
				| eFootball Lop - Play | v1.9.4 | 2025-10-30 | sceDmacMemcpy(dest=092ed040, src=086ce900, size=1251072): overlapping read | 
				| EA FC 2024 BY FUMA GOONERS | v1.9.4 | 2025-10-29 | Unknown GetPointer 00000000 PC 088287f0 LR 08828800 | 
				| EA FC 2024 BY FUMA GOONERS | v1.9.4 | 2025-10-31 | MIPSCompileOp: Invalid instruction 46800499 | 
				| EA FC 2024 BY FUMA GOONERS | v1.9.4 | 2025-10-30 | Savedata version requested on save: 3 | 
				| EA FC 2024 BY FUMA GOONERS | v1.9.4 | 2025-10-31 | Savedata version requested: 3 | 
				| eFOOTBALL BETWAY PREMIERSHIP | v1.9.4 | 2025-10-31 | Savedata version requested on save: 3 | 
				| eFootball RB - V. | v1.9.4 | 2025-10-31 | avcodec_decode_audio4: Error decoding audio -1094995529 / bebbb1b7 | 
				| eFootball RB - V. | v1.9.4 | 2025-10-31 | Savedata version requested: 3 | 
				| eFootball RB - V. | v1.9.4 | 2025-10-31 | Savedata version requested on save: 3 | 
				| Dragon Ball Z: Tenkaichi Tag Team | v1.11.2-917-g89e70c319 | 2025-09-03 | MIPSCompileOp: Invalid instruction 750b08d0 | 
				| Dragon Ball Z: Tenkaichi Tag Team | v1.11.2-917-g89e70c319 | 2025-09-03 | MIPSCompileOp: Invalid instruction 7e81fc50 | 
				| Dragon Ball Z: Tenkaichi Tag Team | v1.11.2-917-g89e70c319 | 2025-09-03 | Bad vertex address 0b6d282d! | 
				| Dragon Ball Z: Tenkaichi Tag Team | v1.11.2-917-g89e70c319 | 2025-09-03 | Unknown GE command : ef31d1eb | 
				| NARUTO SHIPPUDEN: Ultimate Ninja Impact | v1.11.2-917-g89e70c319 | 2025-09-02 | Error in shader compilation: info: 0:37: S0027: Cannot modify an input variable
00000000:00000930 HWX T Tex Cull 
#version 320 es
// Mali-G57 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
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 vec4 u_cullRangeMin;
uniform highp vec4 u_cullRangeMax;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
in vec3 h_normal;
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 = vec3(0.0, 0.0, 1.0);
  vec4 viewPos = vec4(mul(vec4(worldpos, 1.0), u_view).xyz, 1.0);
  viewPos.xy *= 0.631295;
  vec4 outPos = mul(u_proj, viewPos);
  v_color0 = u_matambientalpha;
  v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.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;
  h_normal = vec3(-1.0);
} | 
				| NARUTO SHIPPUDEN: Ultimate Ninja Impact | v1.11.2-917-g89e70c319 | 2025-09-02 | Error in shader compilation: info: 0:19: S0027: Cannot modify an input variable
00000000:00000012 THR Tex 
#version 320 es
// Mali-G57 - 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;
in vec3 h_normal;
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;
  h_normal = vec3(-1.0);
} | 
				| NARUTO SHIPPUDEN: Ultimate Ninja Impact | v1.11.2-917-g89e70c319 | 2025-09-02 | Error in shader compilation: info: 0:16: S0027: Cannot modify an input variable
00000000:00000002 THR 
#version 320 es
// Mali-G57 - 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;
in vec3 h_normal;
void main() {
  v_color0 = color0;
  vec4 outPos = mul(u_proj_through, vec4(position.xyz, 1.0));
  gl_Position = outPos;
  h_normal = vec3(-1.0);
} | 
				| NARUTO SHIPPUDEN: Ultimate Ninja Impact | v1.11.2-917-g89e70c319 | 2025-09-02 | Error in shader compilation: info: 0:41: S0027: Cannot modify an input variable
00000000:0000093c HWX C T Fog Tex Cull 
#version 320 es
// Mali-G57 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
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_cullRangeMin;
uniform highp vec4 u_cullRangeMax;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
out mediump float v_fogdepth;
in vec3 h_normal;
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 = vec3(0.0, 0.0, 1.0);
  vec4 viewPos = vec4(mul(vec4(worldpos, 1.0), u_view).xyz, 1.0);
  viewPos.xy *= 0.631295;
  vec4 outPos = mul(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;
  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;
  h_normal = vec3(-1.0);
} | 
				| NARUTO SHIPPUDEN: Ultimate Ninja Impact | v1.11.2-917-g89e70c319 | 2025-09-02 | Error in shader compilation: info: 0:36: S0027: Cannot modify an input variable
00000000:00000124 HWX Fog Cull 
#version 320 es
// Mali-G57 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
in vec3 position;
uniform mat4 u_proj;
uniform mat4 u_world;
uniform mat4 u_view;
uniform lowp vec4 u_matambientalpha;
uniform highp vec2 u_fogcoef;
uniform highp vec4 u_cullRangeMin;
uniform highp vec4 u_cullRangeMax;
out lowp vec4 v_color0;
out mediump float v_fogdepth;
in vec3 h_normal;
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 = vec3(0.0, 0.0, 1.0);
  vec4 viewPos = vec4(mul(vec4(worldpos, 1.0), u_view).xyz, 1.0);
  viewPos.xy *= 0.631295;
  vec4 outPos = mul(u_proj, viewPos);
  v_color0 = u_matambientalpha;
  v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y;
  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;
  h_normal = vec3(-1.0);
} | 
				| NARUTO SHIPPUDEN: Ultimate Ninja Impact | v1.11.2-917-g89e70c319 | 2025-09-02 | Error in shader compilation: info: 0:40: S0027: Cannot modify an input variable
00000000:00000934 HWX T Fog Tex Cull 
#version 320 es
// Mali-G57 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
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;
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;
in vec3 h_normal;
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 = vec3(0.0, 0.0, 1.0);
  vec4 viewPos = vec4(mul(vec4(worldpos, 1.0), u_view).xyz, 1.0);
  viewPos.xy *= 0.631295;
  vec4 outPos = mul(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;
  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;
  h_normal = vec3(-1.0);
} | 
				| NARUTO SHIPPUDEN: Ultimate Ninja Impact | v1.11.2-917-g89e70c319 | 2025-09-02 | Error in shader compilation: info: 0:88: S0027: Cannot modify an input variable
01f30001:00000b39 HWX C T N LM Tex Light: 0: c:1 t:0 1: c:0 t:0 2: c:0 t:0 3: c:0 t:0 MatUp:3 Cull 
#version 320 es
// Mali-G57 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
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 vec3 u_lightpos0;
uniform lowp vec3 u_lightambient0;
uniform lowp vec3 u_lightdiffuse0;
uniform lowp vec3 u_lightspecular0;
uniform vec3 u_lightpos1;
uniform lowp vec3 u_lightambient1;
uniform lowp vec3 u_lightdiffuse1;
uniform vec3 u_lightpos2;
uniform lowp vec3 u_lightambient2;
uniform lowp vec3 u_lightdiffuse2;
uniform vec3 u_lightpos3;
uniform lowp vec3 u_lightambient3;
uniform lowp vec3 u_lightdiffuse3;
uniform lowp vec4 u_ambient;
uniform lowp vec4 u_matspecular;
uniform lowp vec3 u_matemissive;
uniform lowp vec4 u_matambientalpha;
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;
in vec3 h_normal;
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);
  viewPos.xy *= 0.631295;
  vec4 outPos = mul(u_proj, viewPos);
  lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0);
  lowp vec3 lightSum1 = splat3(0.0);
  vec3 toLight;
  lowp vec3 diffuse;
  mediump float ldot;
  toLight = u_lightpos0;
  ldot = dot(toLight, worldnormal);
  diffuse = (u_lightdiffuse0 * color0.rgb) * max(ldot, 0.0);
  if (ldot >= 0.0) {
    ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal);
    if (u_matspecular.a <= 0.0) {
      ldot = 1.0;
    } else {
      ldot = pow(max(ldot, 0.0), u_matspecular.a);
    }
    if (ldot > 0.0)
      lightSum1 += u_lightspecular0 * u_matspecular.rgb * ldot ;
  }
  lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse);
  toLight = u_lightpos1;
  ldot = dot(toLight, worldnormal);
  diffuse = (u_lightdiffuse1 * color0.rgb) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse);
  toLight = u_lightpos2;
  ldot = dot(toLight, worldnormal);
  diffuse = (u_lightdiffuse2 * color0.rgb) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse);
  toLight = u_lightpos3;
  ldot = dot(toLight, worldnormal);
  diffuse = (u_lightdiffuse3 * color0.rgb) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient3 * color0.rgb + diffuse);
  v_color0 = clamp(lightSum0, 0.0, 1.0);
  v_color1 = clamp(lightSum1, 0.0, 1.0);
  v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.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;
  h_normal = worldnormal*0.5+0.5;
} | 
				| NARUTO SHIPPUDEN: Ultimate Ninja Impact | v1.11.2-917-g89e70c319 | 2025-09-02 | Error in shader compilation: info: 0:16: S0027: Cannot modify an input variable
00000000:0000000a THR C 
#version 320 es
// Mali-G57 - 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;
in vec3 h_normal;
void main() {
  v_color0 = color0;
  vec4 outPos = mul(u_proj_through, vec4(position.xyz, 1.0));
  gl_Position = outPos;
  h_normal = vec3(-1.0);
} | 
				| Call of Duty : Roads to Victory™ | v1.11.2-917-g89e70c319 | 2025-08-31 | avcodec_decode_audio4: Error decoding audio -1094995529 / bebbb1b7 | 
				| Dragon Ball :  Sparking  Zero | v1.8.0 | 2025-10-30 | sceGeListEnqueue: invalid address 40000000 | 
				| Dragon Ball Z: Tenkaichi Tag Team | v1.11.2-917-g89e70c319 | 2025-08-27 | Error in shader compilation: info: Compile failed.
ERROR: 0:19: 'assign' : l-value required (can't modify a vertex in/attribute variable)
1 compilation errors. No code generated.
00000000:0000001a THR C Tex 
#version 320 es
// PowerVR Rogue GE8320 - 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;
in vec3 h_normal;
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;
  h_normal = vec3(-1.0);
} | 
				| Dragon Ball Z: Tenkaichi Tag Team | v1.11.2-917-g89e70c319 | 2025-08-27 | Error in shader compilation: info: Compile failed.
ERROR: 0:37: 'assign' : l-value required (can't modify a vertex in/attribute variable)
1 compilation errors. No code generated.
00000000:00010130 HWX Tex TexProjPos UVMtx Cull 
#version 320 es
// PowerVR Rogue GE8320 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
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;
uniform highp vec4 u_cullRangeMin;
uniform highp vec4 u_cullRangeMax;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
in vec3 h_normal;
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 = vec3(0.0, 0.0, 1.0);
  vec4 viewPos = vec4(mul(vec4(worldpos, 1.0), u_view).xyz, 1.0);
  viewPos.xy *= 0.333333;
  vec4 outPos = mul(u_proj, viewPos);
  v_color0 = u_matambientalpha;
  v_texcoord = mul(vec4(position, 1.0), u_texmtx).xyz * vec3(u_uvscaleoffset.xy, 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;
  h_normal = vec3(-1.0);
} | 
				| Dragon Ball Z: Tenkaichi Tag Team | v1.11.2-917-g89e70c319 | 2025-08-27 | Error in shader compilation: info: Compile failed.
ERROR: 0:19: 'assign' : l-value required (can't modify a vertex in/attribute variable)
1 compilation errors. No code generated.
00000000:00000012 THR Tex 
#version 320 es
// PowerVR Rogue GE8320 - 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;
in vec3 h_normal;
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;
  h_normal = vec3(-1.0);
} | 
				| Dragon Ball Z: Tenkaichi Tag Team | v1.11.2-917-g89e70c319 | 2025-08-27 | Error in shader compilation: info: Compile failed.
ERROR: 0:37: 'assign' : l-value required (can't modify a vertex in/attribute variable)
1 compilation errors. No code generated.
00000000:00000930 HWX T Tex Cull 
#version 320 es
// PowerVR Rogue GE8320 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
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 vec4 u_cullRangeMin;
uniform highp vec4 u_cullRangeMax;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
in vec3 h_normal;
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 = vec3(0.0, 0.0, 1.0);
  vec4 viewPos = vec4(mul(vec4(worldpos, 1.0), u_view).xyz, 1.0);
  viewPos.xy *= 0.333333;
  vec4 outPos = mul(u_proj, viewPos);
  v_color0 = u_matambientalpha;
  v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.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;
  h_normal = vec3(-1.0);
} | 
				| Dragon Ball Z: Tenkaichi Tag Team | v1.11.2-917-g89e70c319 | 2025-08-27 | Error in shader compilation: info: Compile failed.
ERROR: 0:38: 'assign' : l-value required (can't modify a vertex in/attribute variable)
1 compilation errors. No code generated.
00000000:00000938 HWX C T Tex Cull 
#version 320 es
// PowerVR Rogue GE8320 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
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 vec4 u_cullRangeMin;
uniform highp vec4 u_cullRangeMax;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
in vec3 h_normal;
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 = vec3(0.0, 0.0, 1.0);
  vec4 viewPos = vec4(mul(vec4(worldpos, 1.0), u_view).xyz, 1.0);
  viewPos.xy *= 0.333333;
  vec4 outPos = mul(u_proj, viewPos);
  v_color0 = color0;
  v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.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;
  h_normal = vec3(-1.0);
} | 
				| Dragon Ball Z: Tenkaichi Tag Team | v1.11.2-917-g89e70c319 | 2025-08-27 | Error in shader compilation: info: Compile failed.
ERROR: 0:16: 'assign' : l-value required (can't modify a vertex in/attribute variable)
1 compilation errors. No code generated.
00000000:0000000a THR C 
#version 320 es
// PowerVR Rogue GE8320 - 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;
in vec3 h_normal;
void main() {
  v_color0 = color0;
  vec4 outPos = mul(u_proj_through, vec4(position.xyz, 1.0));
  gl_Position = outPos;
  h_normal = vec3(-1.0);
} | 
				| Dragon Ball Z: Tenkaichi Tag Team | v1.11.2-917-g89e70c319 | 2025-08-27 | Error in shader compilation: info: Compile failed.
ERROR: 0:20: 'assign' : l-value required (can't modify a vertex in/attribute variable)
1 compilation errors. No code generated.
00000000:0000001a THR C Tex 
#version 320 es
// PowerVR Rogue GE8320 - 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;
in float h_depth;
void main() {
  v_texcoord = vec3(texcoord, 1.0);
  v_color0 = color0;
  vec4 outPos = mul(u_proj_through, vec4(position.xyz, 1.0));
v_color0.rgb = vec3(0.0);
  gl_Position = outPos;
  h_depth = outPos.z/outPos.w;
} | 
				| Dragon Ball Z: Tenkaichi Tag Team | v1.11.2-917-g89e70c319 | 2025-08-27 | Error in shader compilation: info: Compile failed.
ERROR: 0:38: 'assign' : l-value required (can't modify a vertex in/attribute variable)
1 compilation errors. No code generated.
00000000:00010130 HWX Tex TexProjPos UVMtx Cull 
#version 320 es
// PowerVR Rogue GE8320 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
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;
uniform highp vec4 u_cullRangeMin;
uniform highp vec4 u_cullRangeMax;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
in float h_depth;
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 = vec3(0.0, 0.0, 1.0);
  vec4 viewPos = vec4(mul(vec4(worldpos, 1.0), u_view).xyz, 1.0);
  viewPos.xy *= 0.333333;
  vec4 outPos = mul(u_proj, viewPos);
  v_color0 = u_matambientalpha;
  v_texcoord = mul(vec4(position, 1.0), u_texmtx).xyz * vec3(u_uvscaleoffset.xy, 1.0);
v_color0.rgb = vec3(0.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;
  h_depth = outPos.z/outPos.w;
} | 
				| Dragon Ball Z: Tenkaichi Tag Team | v1.11.2-917-g89e70c319 | 2025-08-27 | Error in shader compilation: info: Compile failed.
ERROR: 0:20: 'assign' : l-value required (can't modify a vertex in/attribute variable)
1 compilation errors. No code generated.
00000000:00000012 THR Tex 
#version 320 es
// PowerVR Rogue GE8320 - 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;
in float h_depth;
void main() {
  v_texcoord = vec3(texcoord, 1.0);
  v_color0 = color0;
  vec4 outPos = mul(u_proj_through, vec4(position.xyz, 1.0));
v_color0.rgb = vec3(0.0);
  gl_Position = outPos;
  h_depth = outPos.z/outPos.w;
} | 
				| Dragon Ball Z: Tenkaichi Tag Team | v1.11.2-917-g89e70c319 | 2025-08-27 | Error in shader compilation: info: Compile failed.
ERROR: 0:38: 'assign' : l-value required (can't modify a vertex in/attribute variable)
1 compilation errors. No code generated.
00000000:00000930 HWX T Tex Cull 
#version 320 es
// PowerVR Rogue GE8320 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
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 vec4 u_cullRangeMin;
uniform highp vec4 u_cullRangeMax;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
in float h_depth;
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 = vec3(0.0, 0.0, 1.0);
  vec4 viewPos = vec4(mul(vec4(worldpos, 1.0), u_view).xyz, 1.0);
  viewPos.xy *= 0.333333;
  vec4 outPos = mul(u_proj, viewPos);
  v_color0 = u_matambientalpha;
  v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0);
v_color0.rgb = vec3(0.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;
  h_depth = outPos.z/outPos.w;
} | 
				| Dragon Ball Z: Tenkaichi Tag Team | v1.11.2-917-g89e70c319 | 2025-08-27 | Error in shader compilation: info: Compile failed.
ERROR: 0:39: 'assign' : l-value required (can't modify a vertex in/attribute variable)
1 compilation errors. No code generated.
00000000:00000938 HWX C T Tex Cull 
#version 320 es
// PowerVR Rogue GE8320 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
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 vec4 u_cullRangeMin;
uniform highp vec4 u_cullRangeMax;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
in float h_depth;
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 = vec3(0.0, 0.0, 1.0);
  vec4 viewPos = vec4(mul(vec4(worldpos, 1.0), u_view).xyz, 1.0);
  viewPos.xy *= 0.333333;
  vec4 outPos = mul(u_proj, viewPos);
  v_color0 = color0;
  v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0);
v_color0.rgb = vec3(0.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;
  h_depth = outPos.z/outPos.w;
} | 
				| Dragon Ball Z: Tenkaichi Tag Team | v1.11.2-917-g89e70c319 | 2025-08-27 | Error in shader compilation: info: Compile failed.
ERROR: 0:17: 'assign' : l-value required (can't modify a vertex in/attribute variable)
1 compilation errors. No code generated.
00000000:0000000a THR C 
#version 320 es
// PowerVR Rogue GE8320 - 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;
in float h_depth;
void main() {
  v_color0 = color0;
  vec4 outPos = mul(u_proj_through, vec4(position.xyz, 1.0));
v_color0.rgb = vec3(0.0);
  gl_Position = outPos;
  h_depth = outPos.z/outPos.w;
} | 
				| Dragon Ball Z: Tenkaichi Tag Team | v1.11.2-917-g89e70c319 | 2025-08-27 | Error in shader compilation: info: Compile failed.
ERROR: 0:19: 'assign' : l-value required (can't modify a vertex in/attribute variable)
1 compilation errors. No code generated.
00000000:0000001a THR C Tex 
#version 320 es
// PowerVR Rogue GE8320 - 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;
in float h_depth;
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;
  h_depth = outPos.z/outPos.w;
} | 
				| Dragon Ball Z: Tenkaichi Tag Team | v1.11.2-917-g89e70c319 | 2025-08-27 | Error in shader compilation: info: Compile failed.
ERROR: 0:37: 'assign' : l-value required (can't modify a vertex in/attribute variable)
1 compilation errors. No code generated.
00000000:00010130 HWX Tex TexProjPos UVMtx Cull 
#version 320 es
// PowerVR Rogue GE8320 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
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;
uniform highp vec4 u_cullRangeMin;
uniform highp vec4 u_cullRangeMax;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
in float h_depth;
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 = vec3(0.0, 0.0, 1.0);
  vec4 viewPos = vec4(mul(vec4(worldpos, 1.0), u_view).xyz, 1.0);
  viewPos.xy *= 0.333333;
  vec4 outPos = mul(u_proj, viewPos);
  v_color0 = u_matambientalpha;
  v_texcoord = mul(vec4(position, 1.0), u_texmtx).xyz * vec3(u_uvscaleoffset.xy, 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;
  h_depth = outPos.z/outPos.w;
} | 
				| Dragon Ball Z: Tenkaichi Tag Team | v1.11.2-917-g89e70c319 | 2025-08-27 | Error in shader compilation: info: Compile failed.
ERROR: 0:19: 'assign' : l-value required (can't modify a vertex in/attribute variable)
1 compilation errors. No code generated.
00000000:00000012 THR Tex 
#version 320 es
// PowerVR Rogue GE8320 - 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;
in float h_depth;
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;
  h_depth = outPos.z/outPos.w;
} | 
				| Dragon Ball Z: Tenkaichi Tag Team | v1.11.2-917-g89e70c319 | 2025-08-27 | Error in shader compilation: info: Compile failed.
ERROR: 0:37: 'assign' : l-value required (can't modify a vertex in/attribute variable)
1 compilation errors. No code generated.
00000000:00000930 HWX T Tex Cull 
#version 320 es
// PowerVR Rogue GE8320 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
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 vec4 u_cullRangeMin;
uniform highp vec4 u_cullRangeMax;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
in float h_depth;
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 = vec3(0.0, 0.0, 1.0);
  vec4 viewPos = vec4(mul(vec4(worldpos, 1.0), u_view).xyz, 1.0);
  viewPos.xy *= 0.333333;
  vec4 outPos = mul(u_proj, viewPos);
  v_color0 = u_matambientalpha;
  v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.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;
  h_depth = outPos.z/outPos.w;
} | 
				| Dragon Ball Z: Tenkaichi Tag Team | v1.11.2-917-g89e70c319 | 2025-08-27 | Error in shader compilation: info: Compile failed.
ERROR: 0:38: 'assign' : l-value required (can't modify a vertex in/attribute variable)
1 compilation errors. No code generated.
00000000:00000938 HWX C T Tex Cull 
#version 320 es
// PowerVR Rogue GE8320 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
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 vec4 u_cullRangeMin;
uniform highp vec4 u_cullRangeMax;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
in float h_depth;
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 = vec3(0.0, 0.0, 1.0);
  vec4 viewPos = vec4(mul(vec4(worldpos, 1.0), u_view).xyz, 1.0);
  viewPos.xy *= 0.333333;
  vec4 outPos = mul(u_proj, viewPos);
  v_color0 = color0;
  v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.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;
  h_depth = outPos.z/outPos.w;
} | 
				| Dragon Ball Z: Tenkaichi Tag Team | v1.11.2-917-g89e70c319 | 2025-08-27 | Error in shader compilation: info: Compile failed.
ERROR: 0:16: 'assign' : l-value required (can't modify a vertex in/attribute variable)
1 compilation errors. No code generated.
00000000:0000000a THR C 
#version 320 es
// PowerVR Rogue GE8320 - 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;
in float h_depth;
void main() {
  v_color0 = color0;
  vec4 outPos = mul(u_proj_through, vec4(position.xyz, 1.0));
  gl_Position = outPos;
  h_depth = outPos.z/outPos.w;
} | 
				| Dragon Ball Z Shin Budokai | v1.11.2-917-g89e70c319 | 2025-08-26 | sceKernelCreateSema(RealMutex) unsupported options parameter, size = 144849144 | 
				| God of War®:降誕の刻印 | v1.11.2-917-g89e70c319 | 2025-08-26 | sceKernelLoadModule: unsupported options size=00000014, flags=09fffad0, pos=0, access=1, data=2, text=2 | 
				| Shinobido: Tales of the Ninja | v1.11.2-917-g89e70c319 | 2025-08-26 | sceKernelCreateSema(SNDMUTEX) unsupported options parameter, size = 142748256 | 
				| Shinobido: Tales of the Ninja | v1.11.2-917-g89e70c319 | 2025-08-26 | sceKernelCreateSema(RealMutex) unsupported options parameter, size = 146059204 | 
				| eFootball Lop - Play | v1.11.2-917-g89e70c319 | 2025-08-23 | Moving files by Android URI is not yet supported | 
				| Aliens vs. Predator™ - Requiem | v1.11.2-917-g89e70c319 | 2025-08-15 | Savedata version requested: 3 | 
				| EA-Sports FC  Lop-Play | v1.9.4 | 2025-10-31 | Savedata version requested: 3 | 
				| EA-Sports FC  Lop-Play | v1.9.4 | 2025-10-31 | Savedata version requested on save: 3 | 
				| eFootball 2026 StaR Patch | v1.9.4 | 2025-10-31 | Savedata version requested on save: 3 | 
				| eFootball 2026 StaR Patch | v1.9.4 | 2025-10-31 | Savedata version requested: 3 | 
				| EA FC 2024 BY SPARTAN JR 11 | v1.9.4 | 2025-10-31 | Unknown GetPointer 00000000 PC 0881c2d8 LR 0881c2e8 | 
				| EA FC 2024 BY SPARTAN JR 11 | v1.9.4 | 2025-10-30 | Unknown GetPointer 00000000 PC 088287f0 LR 08828800 | 
				| EA FC 2024 BY SPARTAN JR 11 | v1.9.4 | 2025-10-30 | Unknown GetPointer 00000000 PC 08816148 LR 0881615c | 
				| EA FC 2024 BY SPARTAN JR 11 | v1.9.4 | 2025-10-30 | Savedata version requested on save: 3 | 
				| EA FC 2024 BY SPARTAN JR 11 | v1.9.4 | 2025-10-31 | MIPSCompileOp: Invalid instruction 46800499 | 
				| EA FC 2024 BY SPARTAN JR 11 | v1.9.4 | 2025-10-31 | Savedata version requested: 3 | 
				| Yu-Gi-Oh!  GX Tag Force 3 | v1.11.2-917-g89e70c319 | 2025-08-01 | __KernelStopThread: thread 662 does not exist | 
				| eFootball 2024 By Komo Valeri | v1.9.4 | 2025-10-15 | Savedata version requested: 3 | 
				| "eFootball Mod Full Asia Musim 2024 by TRMD" | v1.9.4 | 2025-10-31 | Savedata version requested: 3 | 
				| eFootball Lop - Play | v1.9.4 | 2025-10-29 | Unknown GetPointer 00000000 PC 08808448 LR 08808460 | 
				| EA FC 2024 BY SPARTAN JR 11 | v1.9.4 | 2025-10-31 | Savedata version requested: 3 | 
				| eFootball Lop - Play | v1.9.4 | 2025-10-31 | 80630006=sceAtracSetDataAndGetID(09a25200, 00004000): invalid RIFF header | 
				| Tomb Raider: Anniversary™ | v1.11.2-917-g89e70c319 | 2025-07-26 | Moving files by Android URI is not yet supported | 
				| Tomb Raider: Anniversary™ | v1.11.2-917-g89e70c319 | 2025-07-26 | Error in shader compilation: info: Compile failed.
ERROR: 0:94: 'assign' : l-value required (can't modify a vertex in/attribute)
ERROR: 0:95: 'assign' : l-value required (can't modify a vertex in/attribute)
2 compilation errors. No code generated.
01710844:00000b3c HWX C T N Fog Tex Light: 0: c:0 t:1 1: c:0 t:1 2: c:0 t:2 MatUp:1 Cull 
#version 320 es
// PowerVR Rogue GE8322 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
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 vec3 u_lightpos0;
uniform mediump vec3 u_lightatt0;
uniform lowp vec3 u_lightambient0;
uniform lowp vec3 u_lightdiffuse0;
uniform vec3 u_lightpos1;
uniform mediump vec3 u_lightatt1;
uniform lowp vec3 u_lightambient1;
uniform lowp vec3 u_lightdiffuse1;
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 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;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
out mediump float v_fogdepth;
in float h_depth;
in vec3 h_normal;
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);
  lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0);
  vec3 toLight;
  lowp vec3 diffuse;
  float distance;
  lowp float lightScale;
  mediump float ldot;
  lowp float angle;
  toLight = u_lightpos0 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0);
  diffuse = (u_lightdiffuse0 * u_matdiffuse) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse) * lightScale;
  toLight = u_lightpos1 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0);
  diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale;
  toLight = u_lightpos2 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  angle = length(u_lightdir2) == 0.0 ? 0.0 : 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) * (u_lightangle_spotCoef2.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef2.y));
  } else {
    lightScale = 0.0;
  }
  diffuse = (u_lightdiffuse2 * u_matdiffuse) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse) * lightScale;
  v_color0 = clamp(lightSum0, 0.0, 1.0);
  v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0);
  v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y;
v_color0.rgb = vec3(0.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;
  h_depth = outPos.z/outPos.w;
  h_normal = worldnormal*0.5+0.5;
} | 
				| Tomb Raider: Anniversary™ | v1.11.2-917-g89e70c319 | 2025-07-26 | Error in shader compilation: info: Compile failed.
ERROR: 0:83: 'assign' : l-value required (can't modify a vertex in/attribute)
ERROR: 0:84: 'assign' : l-value required (can't modify a vertex in/attribute)
2 compilation errors. No code generated.
01310084:00000b3c HWX C T N Fog Tex Light: 0: c:0 t:1 1: c:0 t:2 MatUp:1 Cull 
#version 320 es
// PowerVR Rogue GE8322 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
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 vec3 u_lightpos0;
uniform mediump vec3 u_lightatt0;
uniform lowp vec3 u_lightambient0;
uniform lowp vec3 u_lightdiffuse0;
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 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;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
out mediump float v_fogdepth;
in float h_depth;
in vec3 h_normal;
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);
  lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0);
  vec3 toLight;
  lowp vec3 diffuse;
  float distance;
  lowp float lightScale;
  mediump float ldot;
  lowp float angle;
  toLight = u_lightpos0 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0);
  diffuse = (u_lightdiffuse0 * u_matdiffuse) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse) * lightScale;
  toLight = u_lightpos1 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  angle = length(u_lightdir1) == 0.0 ? 0.0 : 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) * (u_lightangle_spotCoef1.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
  } else {
    lightScale = 0.0;
  }
  diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale;
  v_color0 = clamp(lightSum0, 0.0, 1.0);
  v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0);
  v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y;
v_color0.rgb = vec3(0.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;
  h_depth = outPos.z/outPos.w;
  h_normal = worldnormal*0.5+0.5;
} | 
				| Tomb Raider: Anniversary™ | v1.11.2-917-g89e70c319 | 2025-07-26 | Error in shader compilation: info: Compile failed.
ERROR: 0:43: 'assign' : l-value required (can't modify a vertex in/attribute)
ERROR: 0:44: 'assign' : l-value required (can't modify a vertex in/attribute)
2 compilation errors. No code generated.
00000000:00000b3c HWX C T N Fog Tex Cull 
#version 320 es
// PowerVR Rogue GE8322 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
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;
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;
in float h_depth;
in vec3 h_normal;
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);
  v_color0 = color0;
  v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0);
  v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y;
v_color0.rgb = vec3(0.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;
  h_depth = outPos.z/outPos.w;
  h_normal = worldnormal*0.5+0.5;
} | 
				| Tomb Raider: Anniversary™ | v1.11.2-917-g89e70c319 | 2025-07-26 | Error in shader compilation: info: Compile failed.
ERROR: 0:21: 'assign' : l-value required (can't modify a vertex in/attribute)
ERROR: 0:22: 'assign' : l-value required (can't modify a vertex in/attribute)
2 compilation errors. No code generated.
00000000:00000012 THR Tex 
#version 320 es
// PowerVR Rogue GE8322 - 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;
in float h_depth;
in vec3 h_normal;
void main() {
  v_texcoord = vec3(texcoord, 1.0);
  v_color0 = color0;
  vec4 outPos = mul(u_proj_through, vec4(position.xyz, 1.0));
v_color0.rgb = vec3(0.0);
  gl_Position = outPos;
  h_depth = outPos.z/outPos.w;
  h_normal = vec3(-1.0);
} | 
				| Tomb Raider: Anniversary™ | v1.11.2-917-g89e70c319 | 2025-07-26 | Error in shader compilation: info: Compile failed.
ERROR: 0:18: 'assign' : l-value required (can't modify a vertex in/attribute)
ERROR: 0:19: 'assign' : l-value required (can't modify a vertex in/attribute)
2 compilation errors. No code generated.
00000000:0000000a THR C 
#version 320 es
// PowerVR Rogue GE8322 - 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;
in float h_depth;
in vec3 h_normal;
void main() {
  v_color0 = color0;
  vec4 outPos = mul(u_proj_through, vec4(position.xyz, 1.0));
v_color0.rgb = vec3(0.0);
  gl_Position = outPos;
  h_depth = outPos.z/outPos.w;
  h_normal = vec3(-1.0);
} | 
				| Tomb Raider: Anniversary™ | v1.11.2-917-g89e70c319 | 2025-07-26 | Error in shader compilation: info: Compile failed.
ERROR: 0:21: 'assign' : l-value required (can't modify a vertex in/attribute)
ERROR: 0:22: 'assign' : l-value required (can't modify a vertex in/attribute)
2 compilation errors. No code generated.
00000000:0000001a THR C Tex 
#version 320 es
// PowerVR Rogue GE8322 - 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;
in float h_depth;
in vec3 h_normal;
void main() {
  v_texcoord = vec3(texcoord, 1.0);
  v_color0 = color0;
  vec4 outPos = mul(u_proj_through, vec4(position.xyz, 1.0));
v_color0.rgb = vec3(0.0);
  gl_Position = outPos;
  h_depth = outPos.z/outPos.w;
  h_normal = vec3(-1.0);
} | 
				| Tomb Raider: Anniversary™ | v1.11.2-917-g89e70c319 | 2025-07-26 | Error in shader compilation: info: Compile failed.
ERROR: 0:105: 'assign' : l-value required (can't modify a vertex in/attribute)
ERROR: 0:106: 'assign' : l-value required (can't modify a vertex in/attribute)
2 compilation errors. No code generated.
01f18444:00000b3c HWX C T N Fog Tex Light: 0: c:0 t:1 1: c:0 t:1 2: c:0 t:1 3: c:0 t:2 MatUp:1 Cull 
#version 320 es
// PowerVR Rogue GE8322 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
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 vec3 u_lightpos0;
uniform mediump vec3 u_lightatt0;
uniform lowp vec3 u_lightambient0;
uniform lowp vec3 u_lightdiffuse0;
uniform vec3 u_lightpos1;
uniform mediump vec3 u_lightatt1;
uniform lowp vec3 u_lightambient1;
uniform lowp vec3 u_lightdiffuse1;
uniform vec3 u_lightpos2;
uniform mediump vec3 u_lightatt2;
uniform lowp vec3 u_lightambient2;
uniform lowp vec3 u_lightdiffuse2;
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 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;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
out mediump float v_fogdepth;
in float h_depth;
in vec3 h_normal;
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);
  lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0);
  vec3 toLight;
  lowp vec3 diffuse;
  float distance;
  lowp float lightScale;
  mediump float ldot;
  lowp float angle;
  toLight = u_lightpos0 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0);
  diffuse = (u_lightdiffuse0 * u_matdiffuse) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse) * lightScale;
  toLight = u_lightpos1 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0);
  diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale;
  toLight = u_lightpos2 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  lightScale = clamp(1.0 / dot(u_lightatt2, vec3(1.0, distance, distance*distance)), 0.0, 1.0);
  diffuse = (u_lightdiffuse2 * u_matdiffuse) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse) * lightScale;
  toLight = u_lightpos3 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  angle = length(u_lightdir3) == 0.0 ? 0.0 : dot(normalize(u_lightdir3), toLight);
  if (angle >= u_lightangle_spotCoef3.x) {
    lightScale = clamp(1.0 / dot(u_lightatt3, vec3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef3.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef3.y));
  } else {
    lightScale = 0.0;
  }
  diffuse = (u_lightdiffuse3 * u_matdiffuse) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient3 * color0.rgb + diffuse) * lightScale;
  v_color0 = clamp(lightSum0, 0.0, 1.0);
  v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0);
  v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y;
v_color0.rgb = vec3(0.0);
  vec3 projPo | 
				| Tomb Raider: Anniversary™ | v1.11.2-917-g89e70c319 | 2025-07-26 | Error in shader compilation: info: Compile failed.
ERROR: 0:112: 'assign' : l-value required (can't modify a vertex in/attribute)
ERROR: 0:113: 'assign' : l-value required (can't modify a vertex in/attribute)
2 compilation errors. No code generated.
01f18844:00000b3c HWX C T N Fog Tex Light: 0: c:0 t:1 1: c:0 t:1 2: c:0 t:2 3: c:0 t:2 MatUp:1 Cull 
#version 320 es
// PowerVR Rogue GE8322 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
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 vec3 u_lightpos0;
uniform mediump vec3 u_lightatt0;
uniform lowp vec3 u_lightambient0;
uniform lowp vec3 u_lightdiffuse0;
uniform vec3 u_lightpos1;
uniform mediump vec3 u_lightatt1;
uniform lowp vec3 u_lightambient1;
uniform lowp vec3 u_lightdiffuse1;
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 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 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;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
out mediump float v_fogdepth;
in float h_depth;
in vec3 h_normal;
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);
  lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0);
  vec3 toLight;
  lowp vec3 diffuse;
  float distance;
  lowp float lightScale;
  mediump float ldot;
  lowp float angle;
  toLight = u_lightpos0 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0);
  diffuse = (u_lightdiffuse0 * u_matdiffuse) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse) * lightScale;
  toLight = u_lightpos1 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0);
  diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale;
  toLight = u_lightpos2 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  angle = length(u_lightdir2) == 0.0 ? 0.0 : 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) * (u_lightangle_spotCoef2.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef2.y));
  } else {
    lightScale = 0.0;
  }
  diffuse = (u_lightdiffuse2 * u_matdiffuse) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse) * lightScale;
  toLight = u_lightpos3 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  angle = length(u_lightdir3) == 0.0 ? 0.0 : dot(normalize(u_lightdir3), toLight);
  if (angle >= u_lightangle_spotCoef3.x) {
    lightScale = clamp(1.0 / dot(u_lightatt3, vec3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef3.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef3.y));
  } else {
    lightScale = 0.0;
  }
  diffus | 
				| Tomb Raider: Anniversary™ | v1.11.2-917-g89e70c319 | 2025-07-26 | Error in shader compilation: info: Compile failed.
ERROR: 0:97: 'assign' : l-value required (can't modify a vertex in/attribute)
ERROR: 0:98: 'assign' : l-value required (can't modify a vertex in/attribute)
2 compilation errors. No code generated.
01f14444:00000b3c HWX C T N Fog Tex Light: 0: c:0 t:1 1: c:0 t:1 2: c:0 t:1 3: c:0 t:1 MatUp:1 Cull 
#version 320 es
// PowerVR Rogue GE8322 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
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 vec3 u_lightpos0;
uniform mediump vec3 u_lightatt0;
uniform lowp vec3 u_lightambient0;
uniform lowp vec3 u_lightdiffuse0;
uniform vec3 u_lightpos1;
uniform mediump vec3 u_lightatt1;
uniform lowp vec3 u_lightambient1;
uniform lowp vec3 u_lightdiffuse1;
uniform vec3 u_lightpos2;
uniform mediump vec3 u_lightatt2;
uniform lowp vec3 u_lightambient2;
uniform lowp vec3 u_lightdiffuse2;
uniform vec3 u_lightpos3;
uniform mediump vec3 u_lightatt3;
uniform lowp vec3 u_lightambient3;
uniform lowp vec3 u_lightdiffuse3;
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;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
out mediump float v_fogdepth;
in float h_depth;
in vec3 h_normal;
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);
  lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0);
  vec3 toLight;
  lowp vec3 diffuse;
  float distance;
  lowp float lightScale;
  mediump float ldot;
  toLight = u_lightpos0 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0);
  diffuse = (u_lightdiffuse0 * u_matdiffuse) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse) * lightScale;
  toLight = u_lightpos1 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0);
  diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale;
  toLight = u_lightpos2 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  lightScale = clamp(1.0 / dot(u_lightatt2, vec3(1.0, distance, distance*distance)), 0.0, 1.0);
  diffuse = (u_lightdiffuse2 * u_matdiffuse) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse) * lightScale;
  toLight = u_lightpos3 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  lightScale = clamp(1.0 / dot(u_lightatt3, vec3(1.0, distance, distance*distance)), 0.0, 1.0);
  diffuse = (u_lightdiffuse3 * u_matdiffuse) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient3 * color0.rgb + diffuse) * lightScale;
  v_color0 = clamp(lightSum0, 0.0, 1.0);
  v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0);
  v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y;
v_color0.rgb = vec3(0.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 = | 
				| Tomb Raider: Anniversary™ | v1.11.2-917-g89e70c319 | 2025-07-26 | Error in shader compilation: info: Compile failed.
ERROR: 0:48: 'assign' : l-value required (can't modify a vertex in/attribute)
ERROR: 0:49: 'assign' : l-value required (can't modify a vertex in/attribute)
2 compilation errors. No code generated.
01010000:0000093c HWX C T Fog Tex Light: MatUp:1 Cull 
#version 320 es
// PowerVR Rogue GE8322 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
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;
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;
in float h_depth;
in vec3 h_normal;
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 = vec3(0.0, 0.0, 1.0);
  vec4 viewPos = vec4(mul(vec4(worldpos, 1.0), u_view).xyz, 1.0);
  vec4 outPos = mul(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);
  v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y;
v_color0.rgb = vec3(0.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;
  h_depth = outPos.z/outPos.w;
  h_normal = vec3(-1.0);
} | 
				| Tomb Raider: Anniversary™ | v1.11.2-917-g89e70c319 | 2025-07-26 | Error in shader compilation: info: Compile failed.
ERROR: 0:64: 'assign' : l-value required (can't modify a vertex in/attribute)
ERROR: 0:65: 'assign' : l-value required (can't modify a vertex in/attribute)
2 compilation errors. No code generated.
01110004:00000b3c HWX C T N Fog Tex Light: 0: c:0 t:1 MatUp:1 Cull 
#version 320 es
// PowerVR Rogue GE8322 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
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 vec3 u_lightpos0;
uniform mediump vec3 u_lightatt0;
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;
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;
in float h_depth;
in vec3 h_normal;
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);
  lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0);
  vec3 toLight;
  lowp vec3 diffuse;
  float distance;
  lowp float lightScale;
  mediump float ldot;
  toLight = u_lightpos0 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0);
  diffuse = (u_lightdiffuse0 * u_matdiffuse) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse) * lightScale;
  v_color0 = clamp(lightSum0, 0.0, 1.0);
  v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0);
  v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y;
v_color0.rgb = vec3(0.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;
  h_depth = outPos.z/outPos.w;
  h_normal = worldnormal*0.5+0.5;
} | 
				| Tomb Raider: Anniversary™ | v1.11.2-917-g89e70c319 | 2025-07-26 | Error in shader compilation: info: Compile failed.
ERROR: 0:18: 'assign' : l-value required (can't modify a vertex in/attribute)
ERROR: 0:19: 'assign' : l-value required (can't modify a vertex in/attribute)
2 compilation errors. No code generated.
00000000:00000002 THR 
#version 320 es
// PowerVR Rogue GE8322 - 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;
in float h_depth;
in vec3 h_normal;
void main() {
  v_color0 = color0;
  vec4 outPos = mul(u_proj_through, vec4(position.xyz, 1.0));
v_color0.rgb = vec3(0.0);
  gl_Position = outPos;
  h_depth = outPos.z/outPos.w;
  h_normal = vec3(-1.0);
} | 
				| Tomb Raider: Legend™ | v1.11.2-917-g89e70c319 | 2025-07-26 | Error in shader compilation: info: Compile failed.
ERROR: 0:109: 'assign' : l-value required (can't modify a vertex in/attribute)
ERROR: 0:110: 'assign' : l-value required (can't modify a vertex in/attribute)
2 compilation errors. No code generated.
01f18484:00000b38 HWX C T N Tex Light: 0: c:0 t:1 1: c:0 t:2 2: c:0 t:1 3: c:0 t:2 MatUp:1 Cull 
#version 320 es
// PowerVR Rogue GE8322 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
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 vec3 u_lightpos0;
uniform mediump vec3 u_lightatt0;
uniform lowp vec3 u_lightambient0;
uniform lowp vec3 u_lightdiffuse0;
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 vec3 u_lightpos2;
uniform mediump vec3 u_lightatt2;
uniform lowp vec3 u_lightambient2;
uniform lowp vec3 u_lightdiffuse2;
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 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 vec4 u_cullRangeMin;
uniform highp vec4 u_cullRangeMax;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
in float h_depth;
in vec3 h_normal;
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);
  lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0);
  vec3 toLight;
  lowp vec3 diffuse;
  float distance;
  lowp float lightScale;
  mediump float ldot;
  lowp float angle;
  toLight = u_lightpos0 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0);
  diffuse = (u_lightdiffuse0 * u_matdiffuse) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse) * lightScale;
  toLight = u_lightpos1 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  angle = length(u_lightdir1) == 0.0 ? 0.0 : 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) * (u_lightangle_spotCoef1.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
  } else {
    lightScale = 0.0;
  }
  diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale;
  toLight = u_lightpos2 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  lightScale = clamp(1.0 / dot(u_lightatt2, vec3(1.0, distance, distance*distance)), 0.0, 1.0);
  diffuse = (u_lightdiffuse2 * u_matdiffuse) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse) * lightScale;
  toLight = u_lightpos3 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  angle = length(u_lightdir3) == 0.0 ? 0.0 : dot(normalize(u_lightdir3), toLight);
  if (angle >= u_lightangle_spotCoef3.x) {
    lightScale = clamp(1.0 / dot(u_lightatt3, vec3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef3.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef3.y));
  } else {
    lightScale = 0.0;
  }
  diffuse = (u_lightdiffuse3 * u_matdiffuse) * max(ldot, 0.0);
  lightSu | 
				| Tomb Raider: Legend™ | v1.11.2-917-g89e70c319 | 2025-07-26 | Error in shader compilation: info: Compile failed.
ERROR: 0:109: 'assign' : l-value required (can't modify a vertex in/attribute)
ERROR: 0:110: 'assign' : l-value required (can't modify a vertex in/attribute)
2 compilation errors. No code generated.
01f14848:00000b38 HWX C T N Tex Light: 0: c:0 t:2 1: c:0 t:1 2: c:0 t:2 3: c:0 t:1 MatUp:1 Cull 
#version 320 es
// PowerVR Rogue GE8322 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
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 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 vec3 u_lightpos1;
uniform mediump vec3 u_lightatt1;
uniform lowp vec3 u_lightambient1;
uniform lowp vec3 u_lightdiffuse1;
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 vec3 u_lightpos3;
uniform mediump vec3 u_lightatt3;
uniform lowp vec3 u_lightambient3;
uniform lowp vec3 u_lightdiffuse3;
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 vec4 u_cullRangeMin;
uniform highp vec4 u_cullRangeMax;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
in float h_depth;
in vec3 h_normal;
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);
  lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0);
  vec3 toLight;
  lowp vec3 diffuse;
  float distance;
  lowp float lightScale;
  mediump float ldot;
  lowp float angle;
  toLight = u_lightpos0 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  angle = length(u_lightdir0) == 0.0 ? 0.0 : dot(normalize(u_lightdir0), toLight);
  if (angle >= u_lightangle_spotCoef0.x) {
    lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef0.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef0.y));
  } else {
    lightScale = 0.0;
  }
  diffuse = (u_lightdiffuse0 * u_matdiffuse) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse) * lightScale;
  toLight = u_lightpos1 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0);
  diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale;
  toLight = u_lightpos2 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  angle = length(u_lightdir2) == 0.0 ? 0.0 : 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) * (u_lightangle_spotCoef2.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef2.y));
  } else {
    lightScale = 0.0;
  }
  diffuse = (u_lightdiffuse2 * u_matdiffuse) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse) * lightScale;
  toLight = u_lightpos3 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  lightScale = clamp(1.0 / dot(u_lightatt3, vec3(1.0, distance, distance*distance)), 0.0, 1.0);
  diffuse = (u_lightdiffuse3 * u_matdiffuse) * max(ldot, 0.0);
  lightSu | 
				| Tomb Raider: Legend™ | v1.11.2-917-g89e70c319 | 2025-07-26 | Error in shader compilation: info: Compile failed.
ERROR: 0:116: 'assign' : l-value required (can't modify a vertex in/attribute)
ERROR: 0:117: 'assign' : l-value required (can't modify a vertex in/attribute)
2 compilation errors. No code generated.
01f18848:00000b38 HWX C T N Tex Light: 0: c:0 t:2 1: c:0 t:1 2: c:0 t:2 3: c:0 t:2 MatUp:1 Cull 
#version 320 es
// PowerVR Rogue GE8322 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
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 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 vec3 u_lightpos1;
uniform mediump vec3 u_lightatt1;
uniform lowp vec3 u_lightambient1;
uniform lowp vec3 u_lightdiffuse1;
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 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 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 vec4 u_cullRangeMin;
uniform highp vec4 u_cullRangeMax;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
in float h_depth;
in vec3 h_normal;
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);
  lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0);
  vec3 toLight;
  lowp vec3 diffuse;
  float distance;
  lowp float lightScale;
  mediump float ldot;
  lowp float angle;
  toLight = u_lightpos0 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  angle = length(u_lightdir0) == 0.0 ? 0.0 : dot(normalize(u_lightdir0), toLight);
  if (angle >= u_lightangle_spotCoef0.x) {
    lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef0.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef0.y));
  } else {
    lightScale = 0.0;
  }
  diffuse = (u_lightdiffuse0 * u_matdiffuse) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse) * lightScale;
  toLight = u_lightpos1 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0);
  diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale;
  toLight = u_lightpos2 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  angle = length(u_lightdir2) == 0.0 ? 0.0 : 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) * (u_lightangle_spotCoef2.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef2.y));
  } else {
    lightScale = 0.0;
  }
  diffuse = (u_lightdiffuse2 * u_matdiffuse) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse) * lightScale;
  toLight = u_lightpos3 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  angle = length(u_lightdir3) == 0.0 ? 0.0 : dot(normalize(u_lightdir3), toLight);
  if ( | 
				| Tomb Raider: Legend™ | v1.11.2-917-g89e70c319 | 2025-07-26 | Error in shader compilation: info: Compile failed.
ERROR: 0:109: 'assign' : l-value required (can't modify a vertex in/attribute)
ERROR: 0:110: 'assign' : l-value required (can't modify a vertex in/attribute)
2 compilation errors. No code generated.
01f18844:00000b38 HWX C T N Tex Light: 0: c:0 t:1 1: c:0 t:1 2: c:0 t:2 3: c:0 t:2 MatUp:1 Cull 
#version 320 es
// PowerVR Rogue GE8322 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
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 vec3 u_lightpos0;
uniform mediump vec3 u_lightatt0;
uniform lowp vec3 u_lightambient0;
uniform lowp vec3 u_lightdiffuse0;
uniform vec3 u_lightpos1;
uniform mediump vec3 u_lightatt1;
uniform lowp vec3 u_lightambient1;
uniform lowp vec3 u_lightdiffuse1;
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 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 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 vec4 u_cullRangeMin;
uniform highp vec4 u_cullRangeMax;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
in float h_depth;
in vec3 h_normal;
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);
  lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0);
  vec3 toLight;
  lowp vec3 diffuse;
  float distance;
  lowp float lightScale;
  mediump float ldot;
  lowp float angle;
  toLight = u_lightpos0 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0);
  diffuse = (u_lightdiffuse0 * u_matdiffuse) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse) * lightScale;
  toLight = u_lightpos1 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0);
  diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale;
  toLight = u_lightpos2 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  angle = length(u_lightdir2) == 0.0 ? 0.0 : 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) * (u_lightangle_spotCoef2.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef2.y));
  } else {
    lightScale = 0.0;
  }
  diffuse = (u_lightdiffuse2 * u_matdiffuse) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse) * lightScale;
  toLight = u_lightpos3 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  angle = length(u_lightdir3) == 0.0 ? 0.0 : dot(normalize(u_lightdir3), toLight);
  if (angle >= u_lightangle_spotCoef3.x) {
    lightScale = clamp(1.0 / dot(u_lightatt3, vec3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef3.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef3.y));
  } else {
    lightScale = 0.0;
  }
  diffuse = (u_lightdiffuse3 * u_matdiffuse) * max(ldot, 0.0);
  lightSu | 
				| Tomb Raider: Legend™ | v1.11.2-917-g89e70c319 | 2025-07-26 | Error in shader compilation: info: Compile failed.
ERROR: 0:18: 'assign' : l-value required (can't modify a vertex in/attribute)
ERROR: 0:19: 'assign' : l-value required (can't modify a vertex in/attribute)
2 compilation errors. No code generated.
00000000:0000000a THR C 
#version 320 es
// PowerVR Rogue GE8322 - 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;
in float h_depth;
in vec3 h_normal;
void main() {
  v_color0 = color0;
  vec4 outPos = mul(u_proj_through, vec4(position.xyz, 1.0));
v_color0.rgb = vec3(0.0);
  gl_Position = outPos;
  h_depth = outPos.z/outPos.w;
  h_normal = vec3(-1.0);
} | 
				| Tomb Raider: Legend™ | v1.11.2-917-g89e70c319 | 2025-07-26 | Error in shader compilation: info: Compile failed.
ERROR: 0:74: 'assign' : l-value required (can't modify a vertex in/attribute)
ERROR: 0:75: 'assign' : l-value required (can't modify a vertex in/attribute)
2 compilation errors. No code generated.
01310044:003a0b38 HWX C T N Tex UVEnv Light: 0: c:0 t:1 1: c:0 t:1 2: c:0 t:0 3: c:0 t:0 MatUp:1 Cull 
#version 320 es
// PowerVR Rogue GE8322 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
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 vec3 u_lightpos0;
uniform mediump vec3 u_lightatt0;
uniform lowp vec3 u_lightambient0;
uniform lowp vec3 u_lightdiffuse0;
uniform vec3 u_lightpos1;
uniform mediump vec3 u_lightatt1;
uniform lowp vec3 u_lightambient1;
uniform lowp vec3 u_lightdiffuse1;
uniform vec3 u_lightpos2;
uniform vec3 u_lightpos3;
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 vec4 u_cullRangeMin;
uniform highp vec4 u_cullRangeMax;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
in float h_depth;
in vec3 h_normal;
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);
  lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0);
  vec3 toLight;
  lowp vec3 diffuse;
  float distance;
  lowp float lightScale;
  mediump float ldot;
  toLight = u_lightpos0 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0);
  diffuse = (u_lightdiffuse0 * u_matdiffuse) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse) * lightScale;
  toLight = u_lightpos1 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0);
  diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale;
  v_color0 = clamp(lightSum0, 0.0, 1.0);
  v_texcoord = vec3(u_uvscaleoffset.xy * vec2(1.0 + (length(u_lightpos2) == 0.0 ? worldnormal.z : dot(normalize(u_lightpos2), worldnormal)), 1.0 + (length(u_lightpos3) == 0.0 ? worldnormal.z : dot(normalize(u_lightpos3), worldnormal))) * 0.5, 1.0);
v_color0.rgb = vec3(0.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;
  h_depth = outPos.z/outPos.w;
  h_normal = worldnormal*0.5+0.5;
} | 
				| Tomb Raider: Legend™ | v1.11.2-917-g89e70c319 | 2025-07-26 | Error in shader compilation: info: Compile failed.
ERROR: 0:116: 'assign' : l-value required (can't modify a vertex in/attribute)
ERROR: 0:117: 'assign' : l-value required (can't modify a vertex in/attribute)
2 compilation errors. No code generated.
01f14888:00000b38 HWX C T N Tex Light: 0: c:0 t:2 1: c:0 t:2 2: c:0 t:2 3: c:0 t:1 MatUp:1 Cull 
#version 320 es
// PowerVR Rogue GE8322 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
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 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 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 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 vec3 u_lightpos3;
uniform mediump vec3 u_lightatt3;
uniform lowp vec3 u_lightambient3;
uniform lowp vec3 u_lightdiffuse3;
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 vec4 u_cullRangeMin;
uniform highp vec4 u_cullRangeMax;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
in float h_depth;
in vec3 h_normal;
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);
  lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0);
  vec3 toLight;
  lowp vec3 diffuse;
  float distance;
  lowp float lightScale;
  mediump float ldot;
  lowp float angle;
  toLight = u_lightpos0 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  angle = length(u_lightdir0) == 0.0 ? 0.0 : dot(normalize(u_lightdir0), toLight);
  if (angle >= u_lightangle_spotCoef0.x) {
    lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef0.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef0.y));
  } else {
    lightScale = 0.0;
  }
  diffuse = (u_lightdiffuse0 * u_matdiffuse) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse) * lightScale;
  toLight = u_lightpos1 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  angle = length(u_lightdir1) == 0.0 ? 0.0 : 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) * (u_lightangle_spotCoef1.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
  } else {
    lightScale = 0.0;
  }
  diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale;
  toLight = u_lightpos2 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  angle = length(u_lightdir2) == 0.0 ? 0.0 : 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) * (u_lightangle_spotCoef2.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef2.y));
  } else {
    lightScale = 0.0;
  }
  diffuse = (u_lightdiffuse2 * u_matdiffuse) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient2 * colo | 
				| Tomb Raider: Legend™ | v1.11.2-917-g89e70c319 | 2025-07-26 | Error in shader compilation: info: Compile failed.
ERROR: 0:109: 'assign' : l-value required (can't modify a vertex in/attribute)
ERROR: 0:110: 'assign' : l-value required (can't modify a vertex in/attribute)
2 compilation errors. No code generated.
01f18448:00000b38 HWX C T N Tex Light: 0: c:0 t:2 1: c:0 t:1 2: c:0 t:1 3: c:0 t:2 MatUp:1 Cull 
#version 320 es
// PowerVR Rogue GE8322 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
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 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 vec3 u_lightpos1;
uniform mediump vec3 u_lightatt1;
uniform lowp vec3 u_lightambient1;
uniform lowp vec3 u_lightdiffuse1;
uniform vec3 u_lightpos2;
uniform mediump vec3 u_lightatt2;
uniform lowp vec3 u_lightambient2;
uniform lowp vec3 u_lightdiffuse2;
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 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 vec4 u_cullRangeMin;
uniform highp vec4 u_cullRangeMax;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
in float h_depth;
in vec3 h_normal;
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);
  lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0);
  vec3 toLight;
  lowp vec3 diffuse;
  float distance;
  lowp float lightScale;
  mediump float ldot;
  lowp float angle;
  toLight = u_lightpos0 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  angle = length(u_lightdir0) == 0.0 ? 0.0 : dot(normalize(u_lightdir0), toLight);
  if (angle >= u_lightangle_spotCoef0.x) {
    lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef0.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef0.y));
  } else {
    lightScale = 0.0;
  }
  diffuse = (u_lightdiffuse0 * u_matdiffuse) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse) * lightScale;
  toLight = u_lightpos1 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0);
  diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale;
  toLight = u_lightpos2 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  lightScale = clamp(1.0 / dot(u_lightatt2, vec3(1.0, distance, distance*distance)), 0.0, 1.0);
  diffuse = (u_lightdiffuse2 * u_matdiffuse) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse) * lightScale;
  toLight = u_lightpos3 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  angle = length(u_lightdir3) == 0.0 ? 0.0 : dot(normalize(u_lightdir3), toLight);
  if (angle >= u_lightangle_spotCoef3.x) {
    lightScale = clamp(1.0 / dot(u_lightatt3, vec3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef3.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef3.y));
  } else {
    lightScale = 0.0;
  }
  diffuse = (u_lightdiffuse3 * u_matdiffuse) * max(ldot, 0.0);
  lightSu | 
				| Tomb Raider: Legend™ | v1.11.2-917-g89e70c319 | 2025-07-26 | Error in shader compilation: info: Compile failed.
ERROR: 0:102: 'assign' : l-value required (can't modify a vertex in/attribute)
ERROR: 0:103: 'assign' : l-value required (can't modify a vertex in/attribute)
2 compilation errors. No code generated.
01f14484:00000b38 HWX C T N Tex Light: 0: c:0 t:1 1: c:0 t:2 2: c:0 t:1 3: c:0 t:1 MatUp:1 Cull 
#version 320 es
// PowerVR Rogue GE8322 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
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 vec3 u_lightpos0;
uniform mediump vec3 u_lightatt0;
uniform lowp vec3 u_lightambient0;
uniform lowp vec3 u_lightdiffuse0;
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 vec3 u_lightpos2;
uniform mediump vec3 u_lightatt2;
uniform lowp vec3 u_lightambient2;
uniform lowp vec3 u_lightdiffuse2;
uniform vec3 u_lightpos3;
uniform mediump vec3 u_lightatt3;
uniform lowp vec3 u_lightambient3;
uniform lowp vec3 u_lightdiffuse3;
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 vec4 u_cullRangeMin;
uniform highp vec4 u_cullRangeMax;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
in float h_depth;
in vec3 h_normal;
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);
  lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0);
  vec3 toLight;
  lowp vec3 diffuse;
  float distance;
  lowp float lightScale;
  mediump float ldot;
  lowp float angle;
  toLight = u_lightpos0 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0);
  diffuse = (u_lightdiffuse0 * u_matdiffuse) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse) * lightScale;
  toLight = u_lightpos1 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  angle = length(u_lightdir1) == 0.0 ? 0.0 : 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) * (u_lightangle_spotCoef1.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
  } else {
    lightScale = 0.0;
  }
  diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale;
  toLight = u_lightpos2 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  lightScale = clamp(1.0 / dot(u_lightatt2, vec3(1.0, distance, distance*distance)), 0.0, 1.0);
  diffuse = (u_lightdiffuse2 * u_matdiffuse) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse) * lightScale;
  toLight = u_lightpos3 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  lightScale = clamp(1.0 / dot(u_lightatt3, vec3(1.0, distance, distance*distance)), 0.0, 1.0);
  diffuse = (u_lightdiffuse3 * u_matdiffuse) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient3 * color0.rgb + diffuse) * lightScale;
  v_color0 = clamp(lightSum0, 0.0, 1.0);
  v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0);
v_color0.rgb = vec3(0.0);
  vec3 projPos = outPos.xyz / outPos.w;
  if (u_cullRangeMin.w <= 0.0 || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMa | 
				| Tomb Raider: Legend™ | v1.11.2-917-g89e70c319 | 2025-07-26 | Error in shader compilation: info: Compile failed.
ERROR: 0:109: 'assign' : l-value required (can't modify a vertex in/attribute)
ERROR: 0:110: 'assign' : l-value required (can't modify a vertex in/attribute)
2 compilation errors. No code generated.
01f14884:00000b38 HWX C T N Tex Light: 0: c:0 t:1 1: c:0 t:2 2: c:0 t:2 3: c:0 t:1 MatUp:1 Cull 
#version 320 es
// PowerVR Rogue GE8322 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
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 vec3 u_lightpos0;
uniform mediump vec3 u_lightatt0;
uniform lowp vec3 u_lightambient0;
uniform lowp vec3 u_lightdiffuse0;
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 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 vec3 u_lightpos3;
uniform mediump vec3 u_lightatt3;
uniform lowp vec3 u_lightambient3;
uniform lowp vec3 u_lightdiffuse3;
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 vec4 u_cullRangeMin;
uniform highp vec4 u_cullRangeMax;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
in float h_depth;
in vec3 h_normal;
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);
  lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0);
  vec3 toLight;
  lowp vec3 diffuse;
  float distance;
  lowp float lightScale;
  mediump float ldot;
  lowp float angle;
  toLight = u_lightpos0 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0);
  diffuse = (u_lightdiffuse0 * u_matdiffuse) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse) * lightScale;
  toLight = u_lightpos1 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  angle = length(u_lightdir1) == 0.0 ? 0.0 : 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) * (u_lightangle_spotCoef1.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
  } else {
    lightScale = 0.0;
  }
  diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale;
  toLight = u_lightpos2 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  angle = length(u_lightdir2) == 0.0 ? 0.0 : 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) * (u_lightangle_spotCoef2.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef2.y));
  } else {
    lightScale = 0.0;
  }
  diffuse = (u_lightdiffuse2 * u_matdiffuse) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse) * lightScale;
  toLight = u_lightpos3 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  lightScale = clamp(1.0 / dot(u_lightatt3, vec3(1.0, distance, distance*distance)), 0.0, 1.0);
  diffuse = (u_lightdiffuse3 * u_matdiffuse) * max(ldot, 0.0);
  lightSu | 
				| Tomb Raider: Legend™ | v1.11.2-917-g89e70c319 | 2025-07-26 | Error in shader compilation: info: Compile failed.
ERROR: 0:82: 'assign' : l-value required (can't modify a vertex in/attribute)
ERROR: 0:83: 'assign' : l-value required (can't modify a vertex in/attribute)
2 compilation errors. No code generated.
01310084:003a0b38 HWX C T N Tex UVEnv Light: 0: c:0 t:1 1: c:0 t:2 2: c:0 t:0 3: c:0 t:0 MatUp:1 Cull 
#version 320 es
// PowerVR Rogue GE8322 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
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 vec3 u_lightpos0;
uniform mediump vec3 u_lightatt0;
uniform lowp vec3 u_lightambient0;
uniform lowp vec3 u_lightdiffuse0;
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 vec3 u_lightpos2;
uniform vec3 u_lightpos3;
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 vec4 u_cullRangeMin;
uniform highp vec4 u_cullRangeMax;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
in float h_depth;
in vec3 h_normal;
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);
  lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0);
  vec3 toLight;
  lowp vec3 diffuse;
  float distance;
  lowp float lightScale;
  mediump float ldot;
  lowp float angle;
  toLight = u_lightpos0 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0);
  diffuse = (u_lightdiffuse0 * u_matdiffuse) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse) * lightScale;
  toLight = u_lightpos1 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  angle = length(u_lightdir1) == 0.0 ? 0.0 : 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) * (u_lightangle_spotCoef1.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
  } else {
    lightScale = 0.0;
  }
  diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale;
  v_color0 = clamp(lightSum0, 0.0, 1.0);
  v_texcoord = vec3(u_uvscaleoffset.xy * vec2(1.0 + (length(u_lightpos2) == 0.0 ? worldnormal.z : dot(normalize(u_lightpos2), worldnormal)), 1.0 + (length(u_lightpos3) == 0.0 ? worldnormal.z : dot(normalize(u_lightpos3), worldnormal))) * 0.5, 1.0);
v_color0.rgb = vec3(0.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;
  h_depth = outPos.z/outPos.w;
  h_normal = worldnormal*0.5+0.5;
} | 
				| Tomb Raider: Legend™ | v1.11.2-917-g89e70c319 | 2025-07-26 | Error in shader compilation: info: Compile failed.
ERROR: 0:61: 'assign' : l-value required (can't modify a vertex in/attribute)
ERROR: 0:62: 'assign' : l-value required (can't modify a vertex in/attribute)
2 compilation errors. No code generated.
01110004:00000b38 HWX C T N Tex Light: 0: c:0 t:1 MatUp:1 Cull 
#version 320 es
// PowerVR Rogue GE8322 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
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 vec3 u_lightpos0;
uniform mediump vec3 u_lightatt0;
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 vec4 u_cullRangeMin;
uniform highp vec4 u_cullRangeMax;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
in float h_depth;
in vec3 h_normal;
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);
  lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0);
  vec3 toLight;
  lowp vec3 diffuse;
  float distance;
  lowp float lightScale;
  mediump float ldot;
  toLight = u_lightpos0 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0);
  diffuse = (u_lightdiffuse0 * u_matdiffuse) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse) * lightScale;
  v_color0 = clamp(lightSum0, 0.0, 1.0);
  v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0);
v_color0.rgb = vec3(0.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;
  h_depth = outPos.z/outPos.w;
  h_normal = worldnormal*0.5+0.5;
} | 
				| Tomb Raider: Legend™ | v1.11.2-917-g89e70c319 | 2025-07-26 | Error in shader compilation: info: Compile failed.
ERROR: 0:89: 'assign' : l-value required (can't modify a vertex in/attribute)
ERROR: 0:90: 'assign' : l-value required (can't modify a vertex in/attribute)
2 compilation errors. No code generated.
01310088:003a0b38 HWX C T N Tex UVEnv Light: 0: c:0 t:2 1: c:0 t:2 2: c:0 t:0 3: c:0 t:0 MatUp:1 Cull 
#version 320 es
// PowerVR Rogue GE8322 - GLSL 320
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
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 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 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 vec3 u_lightpos2;
uniform vec3 u_lightpos3;
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 vec4 u_cullRangeMin;
uniform highp vec4 u_cullRangeMax;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
in float h_depth;
in vec3 h_normal;
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);
  lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0);
  vec3 toLight;
  lowp vec3 diffuse;
  float distance;
  lowp float lightScale;
  mediump float ldot;
  lowp float angle;
  toLight = u_lightpos0 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  angle = length(u_lightdir0) == 0.0 ? 0.0 : dot(normalize(u_lightdir0), toLight);
  if (angle >= u_lightangle_spotCoef0.x) {
    lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef0.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef0.y));
  } else {
    lightScale = 0.0;
  }
  diffuse = (u_lightdiffuse0 * u_matdiffuse) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse) * lightScale;
  toLight = u_lightpos1 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  angle = length(u_lightdir1) == 0.0 ? 0.0 : 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) * (u_lightangle_spotCoef1.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
  } else {
    lightScale = 0.0;
  }
  diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
  lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale;
  v_color0 = clamp(lightSum0, 0.0, 1.0);
  v_texcoord = vec3(u_uvscaleoffset.xy * vec2(1.0 + (length(u_lightpos2) == 0.0 ? worldnormal.z : dot(normalize(u_lightpos2), worldnormal)), 1.0 + (length(u_lightpos3) == 0.0 ? worldnormal.z : dot(normalize(u_lightpos3), worldnormal))) * 0.5, 1.0);
v_color0.rgb = vec3(0.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;
  h_depth = outPos.z/outPos.w;
  h_normal = worldnormal*0.5+0.5;
} |