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 |
Resistance: Retribution™ |
v1.19.3 |
2025-09-07 |
VTYPE with morph used: THRU=0 TC=0 COL=5 POS=0 NRM=0 WT=0 NW=1 IDX=0 MC=2 |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-09-06 |
Unknown GetPointerWrite 28f87bf8 PC 08d09d20 LR 08cd6754 |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-09-04 |
MIPSCompileOp: Invalid instruction 03141214 |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-09-04 |
An uneaten prefix at end of block: 045c3f44 |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-09-02 |
MIPSCompileOp: Invalid instruction ecd8acbc |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-09-02 |
WriteToHardware: Invalid address deadfd2b near PC 091f820c LR 088b957c |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-09-02 |
ReadFromHardware: Invalid address 00002928 near PC 091f4250 LR 088b957c |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-09-02 |
Branch in Jump delay slot at 091f8df4 in block starting at 091f41c8 |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-09-02 |
MIPSCompileOp: Invalid instruction 78466e65 |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-09-02 |
MIPSCompileOp: Invalid instruction cc202424 |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-09-02 |
MIPSCompileOp: Invalid instruction cd1f2323 |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-09-02 |
MIPSCompileOp: Invalid instruction ce1f2222 |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-09-02 |
MIPSCompileOp: Invalid instruction cf2a2f2d |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-09-02 |
MIPSCompileOp: Invalid instruction ceb4ddaa |
Resistance: Retribution™ |
v1.18.1 |
2025-08-26 |
Unknown GetPointerWrite 27f56e68 PC 08d09d20 LR 08cd6754 |
Resistance: Retribution™ |
v1.9.3 |
2025-08-24 |
Unknown GE command : 03232323 |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-08-23 |
Drawing region rate add non-zero: 0174, 021d of 01df, 010f |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-08-18 |
80630007=sceAtracSetData(2, 08bd5600, 00005000): atracID uses different codec type than data |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-08-18 |
80630007=sceAtracSetData(2, 08bd5600, 000031e0): atracID uses different codec type than data |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-08-18 |
80630007=sceAtracSetData(2, 08bd5600, 00002b20): atracID uses different codec type than data |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-08-18 |
80630007=sceAtracSetData(2, 08bd5600, 0000fe00): atracID uses different codec type than data |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-08-18 |
80630007=sceAtracSetData(2, 08bd5600, 00004100): atracID uses different codec type than data |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-08-18 |
80630007=sceAtracSetData(2, 08bd5600, 0000d800): atracID uses different codec type than data |
Resistance: Retribution™ |
v1.19.3 |
2025-08-14 |
Unexpected mpeg first timestamp: 100000a4fe / 68719518974 |
Resistance: Retribution™ |
v1.19.3 |
2025-08-13 |
Unexpected mpeg first timestamp: 100000f4ab / 68719539371 |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-08-13 |
Unknown GE command : eda00000 |
Resistance: Retribution™ |
v1.18.1 |
2025-08-08 |
__KernelStopThread: thread 430 does not exist (ApctlThread stopped) |
Resistance: Retribution™ |
v1.18.1 |
2025-08-08 |
Unknown GetPointerWrite 26d4f248 PC 08d09d20 LR 08cd6754 |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-08-08 |
MIPSCompileOp: Invalid instruction 4eb84ed8 |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-08-08 |
MIPSCompileOp: Invalid instruction 4eb74ed8 |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-08-08 |
MIPSCompileOp: Invalid instruction 4ed84275 |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-08-08 |
MIPSCompileOp: Invalid instruction 46974ab8 |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-08-08 |
MIPSCompileOp: Invalid instruction 4ab74676 |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-08-08 |
MIPSCompileOp: Invalid instruction 4ed84ab7 |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-08-08 |
MIPSCompileOp: Invalid instruction 42553e55 |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-08-08 |
MIPSCompileOp: Invalid instruction 4ab84ed8 |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-08-08 |
MIPSCompileOp: Invalid instruction 4ed83e54 |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-08-08 |
MIPSCompileOp: Invalid instruction 46b74eb8 |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-08-08 |
MIPSCompileOp: Invalid instruction 4a962db0 |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-08-08 |
MIPSCompileOp: Invalid instruction 46973e75 |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-08-08 |
MIPSCompileOp: Invalid instruction 42974ab8 |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-08-08 |
MIPSCompileOp: Invalid instruction 4ed84eb7 |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-08-08 |
MIPSCompileOp: Invalid instruction 469746b8 |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-08-08 |
MIPSCompileOp: Invalid instruction 42963e75 |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-08-08 |
MIPSCompileOp: Invalid instruction 46b84ab8 |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-08-08 |
MIPSCompileOp: Invalid instruction 4ed84ed8 |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-08-08 |
MIPSCompileOp: Invalid instruction 4eb731f1 |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-08-08 |
MIPSCompileOp: Invalid instruction 46b74297 |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-08-08 |
MIPSCompileOp: Invalid instruction 46b746b7 |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-08-08 |
MIPSCompileOp: Invalid instruction 427646b7 |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-08-08 |
MIPSCompileOp: Invalid instruction 42764697 |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-08-08 |
MIPSCompileOp: Invalid instruction 46b74ab7 |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-08-08 |
MIPSCompileOp: Invalid instruction 42763e76 |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-08-08 |
MIPSCompileOp: Invalid instruction 42764276 |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-08-08 |
Branch in Jump delay slot at 09ffd24c in block starting at 09ffd238 |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-08-08 |
Branch in Jump delay slot at 09ffd248 in block starting at 09ffd238 |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-08-08 |
ReadFromHardware: Invalid address deae329f near PC 09ffd210 LR 09ffd200 |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-08-08 |
Jump to invalid address: 06dc7bc0 |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-08-08 |
Branch in Jump delay slot at 09ffd24c in block starting at 09ffd200 |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-08-08 |
Jump to invalid address: 06dea240 |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-08-08 |
Branch in Jump delay slot at 09ffd248 in block starting at 09ffd200 |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-08-08 |
Jump to invalid address: 07ff4e50 |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-08-08 |
Jump to invalid address: 07ff4b70 |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-08-08 |
Branch in Jump delay slot at 09ffd230 in block starting at 09ffd200 |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-08-08 |
Jump to invalid address: 02f891d0 |
Resistance: Retribution™ |
v1.17.1-334-g1786a4ddb |
2025-08-08 |
MIPSCompileOp: Invalid instruction 4207e11c |
Resistance: Retribution™ |
v1.11.3 |
2025-08-01 |
BlockTransfer: Bad source transfer address f1000000! |
Resistance: Retribution™ |
v1.18.1 |
2025-07-30 |
Drawing region rate add non-zero: 0480, 0102 of 00bf, 0147 |
Resistance: Retribution™ |
v1.18.1 |
2025-07-30 |
VTYPE with morph used: THRU=1 TC=3 COL=0 POS=2 NRM=3 WT=0 NW=2 IDX=1 MC=6 |
Resistance: Retribution™ |
v1.17.1 |
2025-07-23 |
Unknown GE command : 29081228 |
Resistance: Retribution™ |
v1.9.4 |
2025-07-17 |
Unknown GetPointer 3d3f8000 PC 08ce7528 LR 08ce7528 |
Resistance: Retribution™ |
v1.19.3 |
2025-07-16 |
Imm vertex used clip value, flags=0ac000 |
Resistance: Retribution™ |
v1.18.1 |
2025-07-12 |
Error in shader compilation: info: 0:1: F0002: Mali-400 GP register allocation failed for vertex shader.
Please contact [email protected] with the shader causing
the problem, along with this error message.
Mali online shader compiler r8p0-00dev0 [Revision 96995].
01f05551:00000b21 HWX T N LM Light: 0: c:1 t:0 1: c:1 t:1 2: c:1 t:1 3: c:1 t:1 Cull
#version 100
// Driver: Mali-400 MP - GLSL 100
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 01f05551:00000b21 HWX T N LM Light: 0: c:1 t:0 1: c:1 t:1 2: c:1 t:1 3: c:1 t:1 Cull
attribute vec3 position;
attribute mediump vec3 normal;
attribute vec2 texcoord;
uniform mat4 u_proj;
uniform mat4 u_world;
uniform mat4 u_view;
uniform vec4 u_uvscaleoffset;
uniform vec3 u_lightpos0;
uniform lowp vec3 u_lightambient0;
uniform lowp vec3 u_lightdiffuse0;
uniform lowp vec3 u_lightspecular0;
uniform vec3 u_lightpos1;
uniform mediump vec3 u_lightatt1;
uniform lowp vec3 u_lightambient1;
uniform lowp vec3 u_lightdiffuse1;
uniform lowp vec3 u_lightspecular1;
uniform vec3 u_lightpos2;
uniform mediump vec3 u_lightatt2;
uniform lowp vec3 u_lightambient2;
uniform lowp vec3 u_lightdiffuse2;
uniform lowp vec3 u_lightspecular2;
uniform vec3 u_lightpos3;
uniform mediump vec3 u_lightatt3;
uniform lowp vec3 u_lightambient3;
uniform lowp vec3 u_lightdiffuse3;
uniform lowp vec3 u_lightspecular3;
uniform lowp vec4 u_ambient;
uniform lowp vec3 u_matdiffuse;
uniform lowp vec4 u_matspecular;
uniform lowp vec3 u_matemissive;
uniform lowp vec4 u_matambientalpha;
uniform highp vec2 u_fogcoef;
uniform highp vec4 u_depthRange;
uniform highp vec4 u_cullRangeMin;
uniform highp vec4 u_cullRangeMax;
varying lowp vec4 v_color0;
varying lowp vec3 v_color1;
varying mediump vec3 v_texcoord;
varying mediump float v_fogdepth;
vec3 normalizeOr001(vec3 v) {
return length(v) == 0.0 ? vec3(0.0, 0.0, 1.0) : normalize(v);
}
void main() {
vec3 worldpos = mul(vec4(position, 1.0), u_world).xyz;
mediump vec3 worldnormal = normalizeOr001(mul(vec4(normal, 0.0), u_world).xyz);
vec4 viewPos = vec4(mul(vec4(worldpos, 1.0), u_view).xyz, 1.0);
vec4 outPos = mul(u_proj, viewPos);
vec4 ambientColor = u_matambientalpha;
vec3 diffuseColor = u_matdiffuse.rgb;
vec3 specularColor = u_matspecular.rgb;
lowp vec4 lightSum0 = u_ambient * ambientColor + vec4(u_matemissive, 0.0);
lowp vec3 lightSum1 = splat3(0.0);
vec3 toLight;
lowp vec3 diffuse;
float distance;
lowp float lightScale;
mediump float ldot;
toLight = u_lightpos0;
ldot = dot(toLight, worldnormal);
diffuse = (u_lightdiffuse0 * diffuseColor) * max(ldot, 0.0);
if (ldot >= 0.0) {
if (u_matspecular.a > 0.0) {
ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal);
ldot = pow(max(ldot, 0.0), u_matspecular.a);
} else {
ldot = 1.0;
}
if (ldot > 0.0)
lightSum1 += u_lightspecular0 * specularColor * ldot ;
}
lightSum0.rgb += (u_lightambient0 * ambientColor.rgb + diffuse);
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 * diffuseColor) * max(ldot, 0.0);
if (ldot >= 0.0) {
if (u_matspecular.a > 0.0) {
ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal);
ldot = pow(max(ldot, 0.0), u_matspecular.a);
} else {
ldot = 1.0;
}
if (ldot > 0.0)
lightSum1 += u_lightspecular1 * specularColor * ldot * lightScale;
}
lightSum0.rgb += (u_lightambient1 * ambientColor.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 * diffuseColor) * max(ldot, 0.0);
if (ldot >= 0.0) {
if (u_matspecular.a > 0.0) {
ldot = dot(normalize(toLi |
Resistance: Retribution™ |
v1.18.1 |
2025-07-12 |
Error in shader compilation: info: 0:1: F0002: Mali-400 GP register allocation failed for vertex shader.
Please contact [email protected] with the shader causing
the problem, along with this error message.
Mali online shader compiler r8p0-00dev0 [Revision 96995].
01f15551:00000b21 HWX T N LM Light: 0: c:1 t:0 1: c:1 t:1 2: c:1 t:1 3: c:1 t:1 MatUp:1 Cull
#version 100
// Driver: Mali-400 MP - GLSL 100
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 01f15551:00000b21 HWX T N LM Light: 0: c:1 t:0 1: c:1 t:1 2: c:1 t:1 3: c:1 t:1 MatUp:1 Cull
attribute vec3 position;
attribute mediump vec3 normal;
attribute vec2 texcoord;
uniform mat4 u_proj;
uniform mat4 u_world;
uniform mat4 u_view;
uniform vec4 u_uvscaleoffset;
uniform vec3 u_lightpos0;
uniform lowp vec3 u_lightambient0;
uniform lowp vec3 u_lightdiffuse0;
uniform lowp vec3 u_lightspecular0;
uniform vec3 u_lightpos1;
uniform mediump vec3 u_lightatt1;
uniform lowp vec3 u_lightambient1;
uniform lowp vec3 u_lightdiffuse1;
uniform lowp vec3 u_lightspecular1;
uniform vec3 u_lightpos2;
uniform mediump vec3 u_lightatt2;
uniform lowp vec3 u_lightambient2;
uniform lowp vec3 u_lightdiffuse2;
uniform lowp vec3 u_lightspecular2;
uniform vec3 u_lightpos3;
uniform mediump vec3 u_lightatt3;
uniform lowp vec3 u_lightambient3;
uniform lowp vec3 u_lightdiffuse3;
uniform lowp vec3 u_lightspecular3;
uniform lowp vec4 u_ambient;
uniform lowp vec3 u_matdiffuse;
uniform lowp vec4 u_matspecular;
uniform lowp vec3 u_matemissive;
uniform lowp vec4 u_matambientalpha;
uniform highp vec2 u_fogcoef;
uniform highp vec4 u_depthRange;
uniform highp vec4 u_cullRangeMin;
uniform highp vec4 u_cullRangeMax;
varying lowp vec4 v_color0;
varying lowp vec3 v_color1;
varying mediump vec3 v_texcoord;
varying mediump float v_fogdepth;
vec3 normalizeOr001(vec3 v) {
return length(v) == 0.0 ? vec3(0.0, 0.0, 1.0) : normalize(v);
}
void main() {
vec3 worldpos = mul(vec4(position, 1.0), u_world).xyz;
mediump vec3 worldnormal = normalizeOr001(mul(vec4(normal, 0.0), u_world).xyz);
vec4 viewPos = vec4(mul(vec4(worldpos, 1.0), u_view).xyz, 1.0);
vec4 outPos = mul(u_proj, viewPos);
vec4 ambientColor = u_matambientalpha;
vec3 diffuseColor = u_matdiffuse.rgb;
vec3 specularColor = u_matspecular.rgb;
lowp vec4 lightSum0 = u_ambient * ambientColor + vec4(u_matemissive, 0.0);
lowp vec3 lightSum1 = splat3(0.0);
vec3 toLight;
lowp vec3 diffuse;
float distance;
lowp float lightScale;
mediump float ldot;
toLight = u_lightpos0;
ldot = dot(toLight, worldnormal);
diffuse = (u_lightdiffuse0 * diffuseColor) * max(ldot, 0.0);
if (ldot >= 0.0) {
if (u_matspecular.a > 0.0) {
ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal);
ldot = pow(max(ldot, 0.0), u_matspecular.a);
} else {
ldot = 1.0;
}
if (ldot > 0.0)
lightSum1 += u_lightspecular0 * specularColor * ldot ;
}
lightSum0.rgb += (u_lightambient0 * ambientColor.rgb + diffuse);
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 * diffuseColor) * max(ldot, 0.0);
if (ldot >= 0.0) {
if (u_matspecular.a > 0.0) {
ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal);
ldot = pow(max(ldot, 0.0), u_matspecular.a);
} else {
ldot = 1.0;
}
if (ldot > 0.0)
lightSum1 += u_lightspecular1 * specularColor * ldot * lightScale;
}
lightSum0.rgb += (u_lightambient1 * ambientColor.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 * diffuseColor) * max(ldot, 0.0);
if (ldot >= 0.0) {
if (u_matspecular.a > 0.0) {
ldot = do |
Resistance: Retribution™ |
v1.18.1 |
2025-07-12 |
Error in shader compilation: info: 0:1: F0002: Mali-400 GP register allocation failed for vertex shader.
Please contact [email protected] with the shader causing
the problem, along with this error message.
Mali online shader compiler r8p0-00dev0 [Revision 96995].
01f05551:00000b29 HWX C T N LM Light: 0: c:1 t:0 1: c:1 t:1 2: c:1 t:1 3: c:1 t:1 Cull
#version 100
// Driver: Mali-400 MP - GLSL 100
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 01f05551:00000b29 HWX C T N LM Light: 0: c:1 t:0 1: c:1 t:1 2: c:1 t:1 3: c:1 t:1 Cull
attribute vec3 position;
attribute mediump vec3 normal;
attribute vec2 texcoord;
attribute lowp vec4 color0;
uniform mat4 u_proj;
uniform mat4 u_world;
uniform mat4 u_view;
uniform vec4 u_uvscaleoffset;
uniform vec3 u_lightpos0;
uniform lowp vec3 u_lightambient0;
uniform lowp vec3 u_lightdiffuse0;
uniform lowp vec3 u_lightspecular0;
uniform vec3 u_lightpos1;
uniform mediump vec3 u_lightatt1;
uniform lowp vec3 u_lightambient1;
uniform lowp vec3 u_lightdiffuse1;
uniform lowp vec3 u_lightspecular1;
uniform vec3 u_lightpos2;
uniform mediump vec3 u_lightatt2;
uniform lowp vec3 u_lightambient2;
uniform lowp vec3 u_lightdiffuse2;
uniform lowp vec3 u_lightspecular2;
uniform vec3 u_lightpos3;
uniform mediump vec3 u_lightatt3;
uniform lowp vec3 u_lightambient3;
uniform lowp vec3 u_lightdiffuse3;
uniform lowp vec3 u_lightspecular3;
uniform lowp vec4 u_ambient;
uniform lowp vec3 u_matdiffuse;
uniform lowp vec4 u_matspecular;
uniform lowp vec3 u_matemissive;
uniform lowp vec4 u_matambientalpha;
uniform highp vec2 u_fogcoef;
uniform highp vec4 u_depthRange;
uniform highp vec4 u_cullRangeMin;
uniform highp vec4 u_cullRangeMax;
varying lowp vec4 v_color0;
varying lowp vec3 v_color1;
varying mediump vec3 v_texcoord;
varying mediump float v_fogdepth;
vec3 normalizeOr001(vec3 v) {
return length(v) == 0.0 ? vec3(0.0, 0.0, 1.0) : normalize(v);
}
void main() {
vec3 worldpos = mul(vec4(position, 1.0), u_world).xyz;
mediump vec3 worldnormal = normalizeOr001(mul(vec4(normal, 0.0), u_world).xyz);
vec4 viewPos = vec4(mul(vec4(worldpos, 1.0), u_view).xyz, 1.0);
vec4 outPos = mul(u_proj, viewPos);
vec4 ambientColor = u_matambientalpha;
vec3 diffuseColor = u_matdiffuse.rgb;
vec3 specularColor = u_matspecular.rgb;
lowp vec4 lightSum0 = u_ambient * ambientColor + vec4(u_matemissive, 0.0);
lowp vec3 lightSum1 = splat3(0.0);
vec3 toLight;
lowp vec3 diffuse;
float distance;
lowp float lightScale;
mediump float ldot;
toLight = u_lightpos0;
ldot = dot(toLight, worldnormal);
diffuse = (u_lightdiffuse0 * diffuseColor) * max(ldot, 0.0);
if (ldot >= 0.0) {
if (u_matspecular.a > 0.0) {
ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal);
ldot = pow(max(ldot, 0.0), u_matspecular.a);
} else {
ldot = 1.0;
}
if (ldot > 0.0)
lightSum1 += u_lightspecular0 * specularColor * ldot ;
}
lightSum0.rgb += (u_lightambient0 * ambientColor.rgb + diffuse);
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 * diffuseColor) * max(ldot, 0.0);
if (ldot >= 0.0) {
if (u_matspecular.a > 0.0) {
ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal);
ldot = pow(max(ldot, 0.0), u_matspecular.a);
} else {
ldot = 1.0;
}
if (ldot > 0.0)
lightSum1 += u_lightspecular1 * specularColor * ldot * lightScale;
}
lightSum0.rgb += (u_lightambient1 * ambientColor.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 * diffuseColor) * max(ldot, 0.0);
if (ldot >= 0.0) {
if (u_matspecular.a > 0.0) { |
Resistance: Retribution™ |
v1.19.3 |
2025-09-11 |
Branch in JumpReg delay slot at 08e1190c in block starting at 08e10000 |
Resistance: Retribution™ |
v1.19.3 |
2025-09-11 |
Branch in Jump delay slot at 08e1139c in block starting at 08e10000 |
Resistance: Retribution™ |
v1.19.3 |
2025-09-11 |
Branch in Jump delay slot at 08e11384 in block starting at 08e10000 |
Resistance: Retribution™ |
v1.19.3 |
2025-09-11 |
Branch in Jump delay slot at 08e11910 in block starting at 08e10000 |
Resistance: Retribution™ |
v1.19.3 |
2025-09-11 |
Branch in Jump delay slot at 08e11374 in block starting at 08e10000 |
Resistance: Retribution™ |
v1.19.3 |
2025-09-11 |
Branch in Jump delay slot at 08e1138c in block starting at 08e10000 |
Resistance: Retribution™ |
v1.19.3 |
2025-09-11 |
Branch in Jump delay slot at 08e11380 in block starting at 08e10000 |
Resistance: Retribution™ |
v1.19.3 |
2025-09-11 |
Branch in Jump delay slot at 08e11370 in block starting at 08e10000 |
Resistance: Retribution™ |
v1.19.3 |
2025-09-11 |
Branch in Jump delay slot at 08e1136c in block starting at 08e10000 |
Resistance: Retribution™ |
v1.19.3 |
2025-09-11 |
Branch in Jump delay slot at 08e11330 in block starting at 08e10000 |
Resistance: Retribution™ |
v1.19.3 |
2025-09-11 |
Branch in Jump delay slot at 08e11334 in block starting at 08e10000 |
Resistance: Retribution™ |
v1.19.3 |
2025-09-11 |
Branch in Jump delay slot at 08e112fc in block starting at 08e10000 |
Resistance: Retribution™ |
v1.19.3 |
2025-09-11 |
Branch in Jump delay slot at 08e11324 in block starting at 08e10000 |
Resistance: Retribution™ |
v1.19.3 |
2025-09-11 |
Branch in Jump delay slot at 08e112d0 in block starting at 08e10000 |
Resistance: Retribution™ |
v1.19.3 |
2025-09-11 |
Branch in Jump delay slot at 08e112ec in block starting at 08e10000 |
Resistance: Retribution™ |
v1.19.3 |
2025-09-11 |
Branch in Jump delay slot at 08e10e84 in block starting at 08e10000 |
Resistance: Retribution™ |
v1.19.3 |
2025-09-11 |
Branch in Jump delay slot at 08e10e80 in block starting at 08e10000 |
Resistance: Retribution™ |
v1.19.3 |
2025-09-11 |
Branch in Jump delay slot at 08e10e88 in block starting at 08e10000 |
Resistance: Retribution™ |
v1.19.3 |
2025-09-11 |
Branch in Jump delay slot at 08e10e8c in block starting at 08e10000 |
Resistance: Retribution™ |
v1.19.3 |
2025-09-11 |
Branch in Jump delay slot at 08e11308 in block starting at 08e10000 |
Resistance: Retribution™ |
v1.19.3 |
2025-09-11 |
Branch in Jump delay slot at 08e11300 in block starting at 08e10000 |
Resistance: Retribution™ |
v1.19.3 |
2025-09-11 |
Branch in Jump delay slot at 08e10b08 in block starting at 08e10000 |
Resistance: Retribution™ |
v1.19.3 |
2025-09-11 |
Branch in Jump delay slot at 08e11304 in block starting at 08e10000 |
Resistance: Retribution™ |
v1.19.3 |
2025-09-11 |
Branch in Jump delay slot at 08e112f8 in block starting at 08e10000 |
Resistance: Retribution™ |
v1.19.3 |
2025-09-11 |
Branch in Jump delay slot at 08e112d8 in block starting at 08e10000 |