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 |
Hits |
Message |
| ARMORED CORE FORMULA FRONT |
v1.20.4-479-gd82b795f6a |
2026-11-15 |
739 |
ELF relocation HI16/4 pair (instead of LO16) at 08a460c8 / 08a460cc |
| ARMORED CORE FORMULA FRONT |
v1.20.4-479-gd82b795f6a |
2026-11-15 |
753 |
ELF relocation HI16/4 pair (instead of LO16) at 08a44fd4 / 08a45024 |
| ARMORED CORE FORMULA FRONT |
v1.20.4-479-gd82b795f6a |
2026-11-15 |
757 |
ELF relocation HI16/4 pair (instead of LO16) at 08a44d58 / 08a44d68 |
| ARMORED CORE FORMULA FRONT |
v1.20.4-479-gd82b795f6a |
2026-11-15 |
764 |
ELF relocation HI16/4 pair (instead of LO16) at 08a44124 / 08a44140 |
| ARMORED CORE FORMULA FRONT |
v1.20.4-479-gd82b795f6a |
2026-11-15 |
758 |
ELF relocation HI16/4 pair (instead of LO16) at 08a43b88 / 08a43b94 |
| ARMORED CORE FORMULA FRONT |
v1.20.4-479-gd82b795f6a |
2026-11-15 |
771 |
ELF relocation HI16/4 pair (instead of LO16) at 08a3b818 / 08a3b828 |
| ARMORED CORE FORMULA FRONT |
v1.20.4-479-gd82b795f6a |
2026-11-15 |
816 |
ELF relocation HI16/4 pair (instead of LO16) at 08a35fc8 / 08a35fdc |
| Dynasty Warriors®: Strikeforce |
v1.18.1 |
2025-04-02 |
3 |
UNIMPL sceIoChstat(ms0:/PSP/SAVEDATA/ULES01221INSTALLFRA/PARAM.SFO, 09fa8790, 00000002) |
| eFootball PES By HAROUN TECH |
v1.18.1 |
2026-08-15 |
141 |
BREAK instruction hit |
| eFootball PES By HAROUN TECH |
v1.9.4 |
2025-04-21 |
9 |
MIPSCompileOp: Invalid instruction 00000001 |
| Prince of Persia - Revelations |
v1.18.1 |
2024-11-22 |
2 |
80630006=sceAtracSetDataAndGetID(08f8b000, 00000800): invalid RIFF header |
| NARUTO SHIPPUDEN: Ultimate Ninja Impact |
v1.18.1 |
2025-05-14 |
2 |
00000000=sceUtilityScreenshotInitStart(09caa148) |
| PERSONA2 罰 |
v1.20.4 |
2026-09-06 |
275 |
ELF relocation HI16/0 pair (instead of LO16) at 08814ccc / 08804000 |
| WWE 2K22 BY LEGENT GAMER |
v1.18.1 |
2024-12-23 |
4 |
sceNetAdhocMatchingInit(32768) at 08a587d0 |
| プリニー2 ~特攻遊戯!暁のパンツ大作戦ッス!!~ |
v1.18.1 |
2026-11-08 |
42 |
00000400=sceGeEdramSetAddrTranslation(00000000) |
| Call of Duty : Roads to Victory™ |
v1.18.1 |
2025-12-09 |
2 |
MIPSCompileOp: Invalid instruction 9fdbaca0 |
| Call of Duty : Roads to Victory™ |
v1.18.1 |
2025-12-09 |
2 |
Branch in branch delay slot at 0887ec3a with different target |
| NARUTO Shippuden: Ultimate Ninja Heroes 3 |
v1.18.1 |
2025-03-18 |
6 |
00000000=sceUtilityScreenshotInitStart(09a8ce48) |
| NARUTO Shippuden: Ultimate Ninja Heroes 3 |
v1.18.1 |
2024-11-25 |
2 |
00000000=sceUtilityScreenshotInitStart(09a80f58) |
| Ben 10 Ultimate Alien:
Cosmic Destruction |
v1.18.1 |
2024-12-27 |
2 |
scePsmfPlayerSetPsmf*: incorrect PSMF magic (00c09700), bad data |
| Call of Duty : Roads to Victory™ |
v1.19.3 |
2025-09-01 |
4 |
Branch in JumpReg delay slot at 04021a4c in block starting at 04021880 |
| SBK-07 |
v1.18.1 |
2024-11-22 |
6 |
sceKernelRegisterSubIntrHandler(30, 0, 08a24354, 08ea7330): duplicate handler |
| SBK-07 |
v1.18.1 |
2024-11-22 |
11 |
sceKernelRegisterSubIntrHandler(30, 0, 08a24354, 08f829c0): duplicate handler |
| Kenka Bancho: Badass Rumble |
v1.18.1 |
2025-07-14 |
29 |
00000000=sceUtilityScreenshotInitStart(091ab790) |
| ISO FULL PORT FINAL BY MODS LATINOS |
v1.18.1 |
2025-02-02 |
22 |
00000400=sceGeEdramSetAddrTranslation(00000800) |
| Grand Theft Auto: Vice City Stories |
v1.18.1 |
2026-03-10 |
3 |
Imm vertex used fog |
| EFOOTBALL PSP NEW PATCH SEASON 2024 |
v1.18.1 |
2026-05-17 |
297 |
Unknown GetPointerWrite 00000000 PC 08816130 LR 08816144 |
| 真・三國無雙 MULTI RAID |
v1.18.1 |
2024-12-28 |
3 |
sceNetAdhocMatchingInit(32768) at 089677c0 |
| グランナイツヒストリー |
v1.18.1 |
2025-04-25 |
17 |
00000000=sceUtilityScreenshotInitStart(08de0950) |
| GTA: Liberty City Stories |
v1.18.1 |
2026-04-11 |
6 |
Imm vertex used secondary color |
| GTA: Liberty City Stories |
v1.18.1 |
2026-09-20 |
7 |
Imm vertex used fog |
| GTA: Liberty City Stories |
v1.18.1 |
2025-01-07 |
68 |
Unusual bezier/spline vtype: 1201c321, morph: 0, bones: 8 |
| DB Xenoverse Tag Tea v5 by Legend Crack Z |
v1.18.1-1063-g102b515f7c |
2025-09-09 |
8 |
MIPSCompileOp: Invalid instruction 7f821695 |
| WWE'12 |
v1.18.1 |
2025-06-19 |
4 |
MIPSCompileOp: Invalid instruction b00000af |
| WWE'12 |
v1.18.1 |
2025-06-19 |
6 |
MIPSCompileOp: Invalid instruction b10004af |
| WWE'12 |
v1.18.1-1063-g102b515f7c |
2025-12-19 |
7 |
MIPSCompileOp: Invalid instruction b20008af |
| WWE 2K23 by Gamer Modder and Finn |
v1.9.4 |
2025-03-17 |
48 |
80630007=sceAtracSetData(2, 08d4b180, 00004100): atracID uses different codec type than data |
| eFootball Play-C |
v1.9.4 |
2026-11-04 |
20,791 |
80630006=sceAtracSetDataAndGetID(09a4ec00, 00004000): fmt definition too small (16) |
| EFOOTBALL PSP NEW PATCH SEASON 2024 |
v1.7.5 |
2025-01-05 |
19 |
MIPSCompileOp: Invalid instruction 00000001 |
| MONSTER HUNTER PORTABLE 3rd HD Ver. |
v1.18.1 |
2025-09-05 |
127 |
Failed to truncate file. |
| EFOOTBALL PSP NEW PATCH SEASON 2024 |
v1.9.4 |
2024-12-02 |
62 |
807f00fd=sceMp3Init(00000000): invalid bitrate v3 l0 rate 000f |
| SBK-07 |
v1.18.1 |
2025-06-11 |
4 |
sceKernelRegisterSubIntrHandler(30, 0, 08a24354, 09227260): duplicate handler |
| WWE 2K23 by Gamer Modder and Finn |
v1.9.4 |
2025-01-21 |
84 |
80630007=sceAtracSetData(3, 08d4b180, 00015700): atracID uses different codec type than data |
| MLB 11 The Show™ |
v1.18.1 |
2025-02-10 |
2 |
scePsmfPlayerSetPsmf*: incorrect PSMF magic (00700018), bad data |
| EFOOTBALL 2023 BY TEGA GAMING |
v1.18.1 |
2025-07-04 |
288 |
Unknown GetPointerWrite 00000000 PC 08816130 LR 08816144 |
| God of War: Ragnarok |
v1.18.1 |
2025-06-03 |
697 |
00000400=sceGeEdramSetAddrTranslation(00000800) |
| Everybody's Tennis™ |
v1.19.3 |
2026-01-17 |
212 |
BREAK instruction hit |
| Grand Theft Auto: Vice City Stories |
v1.18.1 |
2026-03-31 |
2 |
WriteToHardware: Invalid address 000005bc near PC 08939f84 LR 08939f84 |
| SBK-07 |
v1.18.1 |
2025-06-11 |
2 |
sceKernelRegisterSubIntrHandler(30, 0, 08a24354, 09149080): duplicate handler |
| eFootball PES 2021 By GABRIEL |
v1.18.1 |
2025-04-11 |
2 |
Unknown GetPointerWrite 00000000 PC 088287e8 LR 088287f0 |
| 真・三國無雙 MULTI RAID 2 |
v1.20.3 |
2026-09-21 |
27 |
NpSignin Init Params: 00000000, 00000000, 00000000, 00000000 |
| EFOOTBALL 2023 BY TEGA GAMING |
v1.20.4 |
2026-08-09 |
322 |
sceNetAdhocMatchingInit(32768) at 08a71984 |
| God of War™: Ghost of Sparta |
v1.19.3 |
2025-09-02 |
22 |
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].
01730144:00000b29 HWX C T N LM Light: 0: c:0 t:1 1: c:0 t:1 2: c:1 t:0 MatUp:3 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))
// 01730144:00000b29 HWX C T N LM Light: 0: c:0 t:1 1: c:0 t:1 2: c:1 t:0 MatUp:3 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 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 lowp vec3 u_lightambient2;
uniform lowp vec3 u_lightdiffuse2;
uniform lowp vec3 u_lightspecular2;
uniform lowp vec4 u_ambient;
uniform lowp vec4 u_matspecular;
uniform lowp vec3 u_matemissive;
uniform lowp vec4 u_matambientalpha;
uniform highp vec2 u_fogcoef;
uniform highp vec4 u_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 = color0;
vec3 diffuseColor = color0.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 - 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 * diffuseColor) * max(ldot, 0.0);
lightSum0.rgb += (u_lightambient0 * ambientColor.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 * diffuseColor) * max(ldot, 0.0);
lightSum0.rgb += (u_lightambient1 * ambientColor.rgb + diffuse) * lightScale;
toLight = u_lightpos2;
ldot = dot(toLight, worldnormal);
diffuse = (u_lightdiffuse2 * 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_lightspecular2 * specularColor * ldot ;
}
lightSum0.rgb += (u_lightambient2 * ambientColor.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);
v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y;
vec3 projPos = outPos.xyz / outPos.w;
float projZ = (projPos.z - u_depthRange.z) * u_depthRange.w;
if (u_cullRangeMin.w <= 0.0 || projZ * outPos.w > -outPos.w) {
if ((projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y) || (projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y)) {
outPos.xyzw = u_cullRangeMax.wwww;
}
}
if (u_cullRangeMin.w |
| eFootball 2024 Beta By Tutoriales Bendezu |
v1.9.4 |
2025-05-25 |
271 |
80630006=sceAtracSetDataAndGetID(09a4ec00, 00004000): invalid RIFF header |
| Prince of Persia - Revelations |
v1.18.1 |
2024-11-23 |
2 |
80630006=sceAtracSetDataAndGetID(096dbc40, 00000800): invalid RIFF header |
| eFOOTBALL 2020 |
v1.18.1 |
2025-05-12 |
12 |
Branch in branch delay slot at 08ef0bde with different target |
| eFOOTBALL 2020 |
v1.18.1 |
2025-05-12 |
35 |
Branch in branch delay slot at 08ef0aee with different target |
| eFootball Libertadores 2K23 by lasso y total G |
v1.18.1 |
2025-05-17 |
126 |
Unknown GetPointerWrite 00000000 PC 088287f0 LR 08828800 |
| Gran Turismo® |
v1.18.1 |
2025-06-02 |
3 |
MIPSCompileOp: Invalid instruction 74002074 |
| MLB 11 The Show™ |
v1.18.1 |
2026-02-23 |
4 |
scePsmfPlayerSetPsmf*: incorrect PSMF magic (aff7cc60), bad data |
| MLB 11 The Show™ |
v1.18.1 |
2025-02-10 |
5 |
scePsmfPlayerSetPsmf*: incorrect PSMF magic (7b105e47), bad data |
| MLB 11 The Show™ |
v1.18.1 |
2025-02-08 |
2 |
scePsmfPlayerSetPsmf*: incorrect PSMF magic (461635c0), bad data |
| eFOOTBALL 2020 |
v1.18.1 |
2024-12-12 |
2 |
MIPSCompileOp: Invalid instruction 00516829 |
| eFOOTBALL 2020 |
v1.18.1 |
2024-12-12 |
3 |
MIPSCompileOp: Invalid instruction 005d6829 |
| eFOOTBALL 2020 |
v1.18.1 |
2024-12-12 |
5 |
MIPSCompileOp: Invalid instruction 00006829 |
| eFOOTBALL 2020 |
v1.18.1 |
2024-12-12 |
3 |
MIPSCompileOp: Invalid instruction 006c6829 |
| eFOOTBALL 2020 |
v1.18.1 |
2024-12-12 |
16 |
MIPSCompileOp: Invalid instruction 00046829 |
| eFOOTBALL 2020 |
v1.18.1 |
2024-12-12 |
16 |
MIPSCompileOp: Invalid instruction 00086829 |
| SBK-07 |
v1.18.1 |
2024-11-22 |
5 |
sceKernelRegisterSubIntrHandler(30, 0, 08a24354, 09216470): duplicate handler |
| SBK-07 |
v1.18.1 |
2024-12-14 |
4 |
sceKernelRegisterSubIntrHandler(30, 0, 08a24354, 0906a260): duplicate handler |
| WWE SmackDown vs. RAW 2011 |
v1.9.4 |
2026-09-17 |
11 |
80630007=sceAtracSetData(2, 08d4b180, 000028d8): atracID uses different codec type than data |
| Killzone™: Liberation |
v1.18.1 |
2025-01-17 |
3 |
MIPSCompileOp: Invalid instruction 00020001 |
| WWE SmackDown vs. RAW 2011 |
v1.18.1 |
2026-01-21 |
3 |
80630007=sceAtracSetData(2, 08d4b180, 000027c0): atracID uses different codec type than data |
| WWE SmackDown vs. RAW 2011 |
v1.18.1 |
2025-05-11 |
18 |
80630007=sceAtracSetData(2, 08d4b180, 00003198): atracID uses different codec type than data |
| とある魔術の禁書目録 |
v1.20.4-4099-g7aecf86c4d |
2026-11-03 |
1,502 |
ELF relocation HI16/4 pair (instead of LO16) at 08806ccc / 08807278 |
| とある魔術の禁書目録 |
v1.20.4-4099-g7aecf86c4d |
2026-11-03 |
1,601 |
ELF relocation HI16/0 pair (instead of LO16) at 08806ccc / 08807244 |
| Pro Evolution Soccer 2013 |
v1.18.1 |
2025-05-12 |
8 |
Unknown GetPointerWrite 00000000 PC 0881606c LR 08816080 |
| NARUTO SHIPPUDEN: Ultimate Ninja Impact |
v1.18.1 |
2024-12-29 |
2 |
00000000=sceUtilityScreenshotInitStart(09cac6a8) |
| NARUTO SHIPPUDEN: Ultimate Ninja Impact |
v1.18.1 |
2026-07-13 |
6 |
00000000=sceUtilityScreenshotInitStart(09ca94c8) |
| SBK-07 |
v1.18.1 |
2024-12-27 |
6 |
sceKernelRegisterSubIntrHandler(30, 0, 08a24354, 090b0eb0): duplicate handler |
| Kenka Bancho: Badass Rumble |
v1.18.1 |
2025-02-23 |
2 |
00000000=sceUtilityScreenshotInitStart(092b8a60) |
| EFOOTBALL 2023 BY TEGA GAMING |
v1.9.4 |
2025-04-22 |
74 |
80630006=sceAtracSetDataAndGetID(09a4ec00, 00001000): invalid RIFF header |
| Sega Genesis Collection™ |
v1.18.1 |
2025-06-13 |
3 |
MIPSCompileOp: Invalid instruction b6000c82 |
| Sega Genesis Collection™ |
v1.18.1 |
2025-06-13 |
3 |
Branch in branch delay slot at 08857221 with different target |
| Sega Genesis Collection™ |
v1.18.1 |
2025-06-13 |
3 |
Branch in branch delay slot at 0885721d with different target |
| RONNIE O'SULLIVANS SNOOKER |
v1.18.1-945-gb0182ed0e6 |
2026-10-24 |
70 |
00000003=sceMp3GetMPEGVersion(00000000) |
| MLB 08 The Show ™ |
v1.18.1 |
2025-02-19 |
2 |
Unknown GetPointerWrite 3faa9fbe PC 0990ab64 LR 0990ab6c |
| NBA2K12 |
v1.18.1 |
2025-09-10 |
12 |
BREAK instruction hit |
| Sweet Fuse: At Your Side |
v1.18.1 |
2025-10-13 |
18 |
00000000=sceUtilityScreenshotInitStart(08b7fd10) |
| eFootball Chelito 19 |
v1.9.4 |
2025-04-24 |
4 |
MIPSCompileOp: Invalid instruction 000009fd |
| eFootball Chelito 19 |
v1.18.1 |
2025-12-02 |
3 |
Unknown GetPointerWrite 00000012 PC 08872bf8 LR 08872c1c |
| LEGO® Batman™: The Videogame |
v1.18.1 |
2025-05-07 |
2 |
MIPSCompileOp: Invalid instruction cd834025 |
| LEGO® Batman™: The Videogame |
v1.18.1 |
2025-05-07 |
2 |
MIPSCompileOp: Invalid instruction 0082ffff |
| LEGO® Batman™: The Videogame |
v1.18.1 |
2025-05-07 |
2 |
MIPSCompileOp: Invalid instruction cd830000 |
| LEGO® Batman™: The Videogame |
v1.18.1 |
2025-05-07 |
2 |
MIPSCompileOp: Invalid instruction cd830018 |
| eFootball 2024 Beta By Tutoriales Bendezu |
v1.9.4 |
2026-04-10 |
306 |
MIPSCompileOp: Invalid instruction 00000001 |
| eFootball 2024 Beta By Tutoriales Bendezu |
v1.18.1 |
2024-12-30 |
30 |
Unknown GetPointerWrite 00000001 PC 08a02afc LR 0887138c |
| eFootball Chelito 19 |
v1.18.1 |
2025-02-27 |
9 |
MIPSCompileOp: Invalid instruction 041a8280 |
| Disney•Pixar Cars 2 |
v1.18.1 |
2025-04-22 |
10 |
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].
01f05555:00000b21 HWX T N LM Light: 0: c:1 t:1 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))
// 01f05555:00000b21 HWX T N LM Light: 0: c:1 t:1 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 mediump vec3 u_lightatt0;
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 - 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 * 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 * lightScale;
}
lightSum0.rgb += (u_lightambient0 * ambientColor.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 * 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 |
| Need For Speed™ Underground Rivals |
v1.18.1 |
2024-11-18 |
2 |
WriteToHardware: Invalid address 00002260 near PC 0893af7c LR 0893b058 |