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 |
| Dragon Ball Z: Tenkaichi Tag Team |
v1.14.4 |
2023-04-30 |
1 |
MIPSCompileOp: Invalid instruction 6c992668 |
| Naruto Shippuden: Kizuna Drive |
v1.14.4 |
2023-04-29 |
1 |
WriteToHardware: Invalid address 3f800a4e near PC 08a029d4 LR 08a0248c |
| DISSIDIA® 012[duodecim]™ FINAL FANTASY® |
v1.14.4 |
2023-04-29 |
1 |
WriteToHardware: Invalid address ffffffd4 near PC 089a0fe8 LR 08972f5c |
| DISSIDIA duodecim FINAL FANTASY |
v1.14.4 |
2023-04-29 |
1 |
sceKernelCreateThread(name=layout): unsupported attributes 00000006 |
| eFootball PES 2023 Danilo Gamer |
v1.14.4 |
2023-12-15 |
4 |
Replacement rowPitch=512, but w=2000 (level=0) |
| Obscure: The Aftermath |
v1.14.4 |
2023-04-29 |
1 |
WriteToHardware: Invalid address 00000154 near PC 08a12b08 LR 08a12bd4 |
| PUMPITUPZERO |
v1.14.4 |
2023-04-29 |
1 |
scePsmfPlayerSetPsmf*: incorrect PSMF magic (abfce7fa), bad data |
| Efootball 2022 Komo Valeri... |
v1.14.4 |
2023-09-17 |
2 |
Replacement rowPitch=256, but w=3200 (level=0) |
| PUMP IT UP: EXCEED |
v1.14.4 |
2023-04-29 |
1 |
scePsmfPlayerSetPsmf*: incorrect PSMF magic (0000000d), bad data |
| PUMP IT UP: EXCEED |
v1.14.4 |
2023-04-29 |
1 |
scePsmfPlayerSetPsmf*: incorrect PSMF magic (0000000e), bad data |
| PUMP IT UP: EXCEED |
v1.14.4 |
2023-04-29 |
30 |
scePsmfPlayerSetPsmf*: incorrect PSMF magic (00000000), bad data |
| 初音ミク -Project DIVA- |
v1.14.4 |
2023-04-29 |
1 |
00000000=sceUtilityScreenshotInitStart(09146960) |
| NARUTO SHIPPUDEN: Ultimate Ninja Impact |
v1.17.1 |
2024-10-24 |
2 |
00000400=sceGeEdramSetAddrTranslation(00000800) |
| Dragon Ball Z: Tenkaichi Tag Team |
v1.14.4 |
2023-04-29 |
11 |
UNIMPL sceIoChstat(ms0:/PSP/SAVEDATA/ULUS10518DATA/DATA.DNS, 09f919b0, 00000002) |
| EFOOTBALL 2023 PSP OFFICIAL |
v1.14.4 |
2024-03-31 |
2 |
BREAK instruction hit |
| Family Guy |
v1.14.4 |
2023-04-29 |
1 |
00000400=sceGeEdramSetAddrTranslation(00000200) |
| eFootball PES By HAROUN Z |
v1.14.4 |
2023-06-03 |
3 |
Replacement rowPitch=256, but w=2048 (level=0) |
| Burnout™ Dominator |
v1.14.4 |
2023-04-29 |
1 |
Ignoring possible texturing from framebuffer at 04176000 +640x232 / 512x272 |
| TEKKEN 6 |
v1.14.4 |
2023-04-29 |
1 |
WriteToHardware: Invalid address fa6fef02 near PC 08ad1e10 LR 08ad1e1c |
| WWE 2K16 |
v1.17.1-980-gabaea0197b |
2025-07-24 |
5 |
Unknown GetPointerWrite 00000000 PC 089fa228 LR 089fa23c |
| TEKKEN 6 |
v1.14.4 |
2023-05-08 |
2 |
Replacement rowPitch=1024, but w=2592 (level=0) |
| NUSANTARA |
v1.14.4 |
2023-04-29 |
1 |
Replacement rowPitch=1024, but w=4000 (level=0) |
| 初音ミク -Project DIVA- extend |
v1.14.4 |
2023-04-29 |
1 |
00000000=sceUtilityScreenshotInitStart(09318a00) |
| Secret Agent Clank™ |
v1.14.4 |
2023-04-29 |
1 |
Truncating vertex count from 22440 to 21845 |
| Prince of Persia - Rival Swords |
v1.14.4 |
2023-04-29 |
1 |
Block transfer invalid: 0021b7e0/0 -> 075ea6e0/0, 2x1x2 (634,730)->(1,0) |
| Prince of Persia - Rival Swords |
v1.14.4 |
2023-04-29 |
1 |
Unknown GE command : fda34795 |
| eFootball PES PPSSPP A3 2023 MOD FIFA |
v1.14.4 |
2023-04-29 |
2 |
MIPSCompileOp: Invalid instruction 74559093 |
| The Simpsons™ Game |
v1.14.4 |
2023-04-29 |
1 |
80630011=sceAtracSetDataAndGetID(08d30410, 00000000): buffer too small |
| SBK-07 |
v1.14.4 |
2023-04-29 |
2 |
sceKernelRegisterSubIntrHandler(30, 0, 08a24354, 095f14f0): duplicate handler |
| SBK-07 |
v1.14.4 |
2023-04-29 |
1 |
Replacement rowPitch=512, but w=2048 (level=0) |
| The Simpsons™ Game |
v1.14.4 |
2023-04-29 |
3 |
80630011=sceAtracSetDataAndGetID(08d0c260, 00000000): buffer too small |
| SBK-07 |
v1.14.4 |
2023-04-29 |
1 |
sceKernelRegisterSubIntrHandler(30, 0, 08a24354, 094c6470): duplicate handler |
| eFootball PPSSPP Winter Season R-HAPIZ 12 |
v1.14.4 |
2023-04-29 |
1 |
Replacement rowPitch=128, but w=1024 (level=0) |
| Silent Hill: Shattered Memories |
v1.14.4 |
2023-04-29 |
1 |
Ignoring possible texturing from framebuffer at 08bb4780 +384x-15495 / 64x256 |
| SBK-07 |
v1.14.4 |
2023-04-29 |
1 |
sceKernelRegisterSubIntrHandler(30, 0, 08a24354, 093cdcf0): duplicate handler |
| 初音ミク -Project DIVA- 2nd お買い得版 |
v1.14.4 |
2023-04-29 |
1 |
00000000=sceUtilityScreenshotInitStart(090d2c48) |
| 初音ミク -Project DIVA- 2nd お買い得版 |
v1.14.4 |
2023-04-29 |
1 |
00000000=sceUtilityScreenshotInitStart(090d2c20) |
| 初音ミク -Project DIVA- 2nd お買い得版 |
v1.14.4 |
2023-04-29 |
1 |
00000000=sceUtilityScreenshotInitStart(092e2808) |
| SBK-07 |
v1.14.4 |
2023-04-29 |
1 |
sceKernelRegisterSubIntrHandler(30, 0, 08a24354, 095aea60): duplicate handler |
| Patapon 3 - DxD Edition v1.0 |
v1.14.4 |
2023-04-29 |
1 |
Replacement rowPitch=2560, but w=4096 (level=0) |
| LANFEUST OF TROY |
v1.14.4 |
2023-04-29 |
1 |
80630006=sceAtracSetDataAndGetID(08a87000, 80020323): invalid RIFF header |
| DBAF TTT Ultimate Combat DEMO |
v1.14.4 |
2023-04-29 |
1 |
Replacement rowPitch=1024, but w=2200 (level=0) |
| eFootball 2023 Special Ligue 2 RH12 |
v1.14.4 |
2023-05-04 |
2 |
avcodec_decode_audio4: Error decoding audio -1094995529 / bebbb1b7 |
| Resistance: Retribution™ |
v1.14.4 |
2023-04-29 |
1 |
Unknown GetPointerWrite 0d05a938 PC 08be51dc LR 08cd6754 |
| Ben 10 Ultimate Alien Cosmic Destruction |
v1.14.4 |
2023-04-29 |
1 |
scePsmfPlayerSetPsmf*: incorrect PSMF magic (40b79860), bad data |
| 初音ミク -Project DIVA- |
v1.14.4 |
2023-04-29 |
1 |
00000000=sceUtilityScreenshotInitStart(0912f0b0) |
| Def Jam® Fight For NY™: The Takeover |
v1.14.4 |
2023-04-29 |
1 |
UNTESTED sceNetAdhocctlJoinEnterGameMode(3e1cfdf, 70:07:45:b0:03:a9, 20000000, 0) at 0897eeec |
| RIDGE RACER |
v1.14.4 |
2023-04-29 |
1 |
Ignoring possible texturing from framebuffer at 04195140 +768x230 / 480x272 |
| Def Jam® Fight For NY™: The Takeover |
v1.14.4 |
2023-04-29 |
1 |
UNTESTED sceNetAdhocctlCreateEnterGameMode(3d86706, 1, 2, 09fbf960, 20000000, 0) at 0897ec84 |
| Def Jam® Fight For NY™: The Takeover |
v1.14.4 |
2023-04-29 |
1 |
UNTESTED sceNetAdhocctlJoinEnterGameMode(7291ef2, 70:07:45:b0:03:a9, 20000000, 0) at 0897eeec |
| Def Jam® Fight For NY™: The Takeover |
v1.14.4 |
2023-04-29 |
1 |
UNTESTED sceNetAdhocctlCreateEnterGameMode(8bcdfd4, 1, 2, 09fbf960, 20000000, 0) at 0897ec84 |
| JOGRESS V3 |
v1.14.4 |
2023-04-29 |
2 |
Branch in branch delay slot at 08808d8c with different target |
| SBK-07 |
v1.14.4 |
2023-04-29 |
8 |
sceKernelRegisterSubIntrHandler(30, 0, 08a24354, 09160800): duplicate handler |
| eFootball PES 2021 By TM ARTS |
v1.14.4 |
2023-04-29 |
1 |
Replacement rowPitch=512, but w=2936 (level=0) |
| Ford Bold Moves Street Racing |
v1.20.4-479-gd82b795f6a |
2026-10-20 |
16 |
565 depal unsupported: shift=3 mask=fc offset=0 |
| eFootball PES 2021 By GGames |
v1.14.4 |
2023-04-29 |
1 |
Unknown GetPointerWrite 00000000 PC 088287e0 LR 088287f0 |
| Grand Theft Auto: Vice City Stories |
v1.14.4 |
2023-04-29 |
1 |
WriteToHardware: Invalid address 000010ec near PC 0893e31c LR 0893e31c |
| PES 22 BY HAROUN Z |
v1.14.4 |
2023-04-29 |
1 |
Replacement rowPitch=2048, but w=8000 (level=0) |
| Ben 10 Ultimate Alien Cosmic Destruction |
v1.14.4 |
2023-04-29 |
1 |
MIPSCompileOp: Invalid instruction 4706158b |
| Ben 10 Ultimate Alien Cosmic Destruction |
v1.14.4 |
2023-04-29 |
1 |
Unknown GE command : fe486047 |
| Ben 10 Ultimate Alien Cosmic Destruction |
v1.15.3 |
2024-01-06 |
3 |
Unknown GetPointerWrite 00000000 PC 0894a08c LR 0894a094 |
| eFootball Chelito 19 |
v1.14.4 |
2023-04-29 |
1 |
Replacement rowPitch=256, but w=16384 (level=0) |
| eFootball PES 2023 By ESTEEM GAMING |
v1.14.4 |
2025-04-07 |
2 |
Replacement rowPitch=256, but w=2352 (level=0) |
| Dragon Ball Z: Tenkaichi Tag Team |
v1.14.4 |
2023-04-29 |
1 |
MIPSCompileOp: Invalid instruction 70b33a50 |
| DBZ TTT BT4 ISO V8 BY IACG MODS |
v1.14.4 |
2023-04-29 |
1 |
WriteToHardware: Invalid address 13557ee4 near PC 0883ad10 LR 0883ad10 |
| eFootball Chelito 19 |
v1.17.1 |
2024-10-20 |
38 |
80630007=sceAtracSetData(2, 08d4b180, 00015700): atracID uses different codec type than data |
| eFootball Chelito 19 |
v1.17.1 |
2024-08-11 |
32 |
80630007=sceAtracSetData(2, 08d4b180, 0000fe00): atracID uses different codec type than data |
| eFootball Chelito 19 |
v1.17.1 |
2024-08-11 |
6 |
Rendering to framebuffer offset at 040cc000 +64x0 (stride 512) |
| SBK®09 Superbike World Championship |
v1.14.4 |
2023-04-29 |
1 |
UNTESTED sceNetAdhocctlCreateEnterGameMode(D1h1k1xu, 3, 2, 09fff4e0, 10000000, 0) at 089b3c34 |
| SBK®09 Superbike World Championship |
v1.14.4 |
2023-04-29 |
1 |
UNTESTED sceNetAdhocctlCreateEnterGameMode(D1h1k1xk, 3, 2, 09fff4e0, 10000000, 0) at 089b3c34 |
| eFootball 2023 By Tutoriales Bendezu |
v1.14.4 |
2023-05-08 |
3 |
Replacement rowPitch=1024, but w=7420 (level=0) |
| SBK®09 Superbike World Championship |
v1.14.4 |
2023-04-29 |
1 |
UNTESTED sceNetAdhocctlCreateEnterGameMode(D1h1k1xU, 3, 2, 09fff4e0, 10000000, 0) at 089b3c34 |
| SBK®09 Superbike World Championship |
v1.14.4 |
2023-04-29 |
1 |
UNTESTED sceNetAdhocctlCreateEnterGameMode(D1h1k1xm, 3, 2, 09fff4e0, 10000000, 0) at 089b3c34 |
| God of War: Chains of Olympus |
v1.14.4 |
2023-04-29 |
1 |
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 r10p0-00rel0 [Revision 96995].
01f34444:00010b39 HWX C T N LM Tex TexProjPos UVMtx Light: 0: c:0 t:1 1: c:0 t:1 2: c:0 t:1 3: c:0 t:1 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))
// 01f34444:00010b39 HWX C T N LM Tex TexProjPos UVMtx Light: 0: c:0 t:1 1: c:0 t:1 2: c:0 t:1 3: c:0 t:1 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 mediump mat4 u_texmtx;
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 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);
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 - 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);
lightSum0.rgb += (u_lightambient2 * ambientColor.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 * diffuseColor) * max(ldot, 0.0);
lightSum0.rgb += (u_lightambient3 * ambientColor.rgb + diffuse) * lightScale;
v_color0 = clamp(lightSum0, 0.0, 1.0);
v_color1 = splat3(0.0);
v_texcoord = mul(vec4(position, 1.0), u_texmtx).xyz * vec3(u_uvscaleoffset.xy, 1.0);
|
| Resistance: Retribution™ |
v1.14.4 |
2023-04-29 |
37 |
sceUtilityOskInitStart: invalid status |
| Call of Duty : Roads to Victory™ |
v1.14.4 |
2023-04-29 |
1 |
Unknown GetPointerWrite 00000010 PC 089846dc LR 08984710 |
| eFootball PES 2023 "SNE" |
v1.9.4 |
2026-06-12 |
133 |
MIPSCompileOp: Invalid instruction 00000001 |
| Need for Speed™ Shift |
v1.14.4 |
2023-04-29 |
1 |
Ignoring possible texturing from framebuffer at 04176000 +896x154 / 512x272 |
| RA-PATCH EDISI FIFA WORLD CUP 2022 |
v1.14.4 |
2023-04-29 |
1 |
Replacement rowPitch=256, but w=480 (level=0) |
| SBK-07 |
v1.14.4 |
2023-04-29 |
2 |
sceKernelRegisterSubIntrHandler(30, 0, 08a24354, 094b0d90): duplicate handler |
| RIDGE RACER 2 |
v1.14.4 |
2023-04-29 |
1 |
Ignoring possible texturing from framebuffer at 04195a40 +768x125 / 256x272 |
| Dragon Ball Z: Tenkaichi Tag Team |
v1.14.4 |
2023-04-29 |
1 |
Branch in JumpReg delay slot at 08e211c8 in block starting at 08e20580 |
| eFootball C22 Sultan Design PATCH |
v1.14.4 |
2023-06-09 |
3 |
Replacement rowPitch=128, but w=1600 (level=0) |
| KINGDOM HEARTS Birth by Sleep |
v1.14.4 |
2023-04-29 |
1 |
Ignoring possible texturing from framebuffer at 04174000 +768x128 / 480x272 |
| RIDGE RACERS |
v1.14.4 |
2023-04-29 |
1 |
Ignoring possible texturing from framebuffer at 04195140 +256x76 / 256x272 |
| eFootball PES 2021 DraycEM |
v1.14.4 |
2023-04-29 |
1 |
Unknown GetPointerWrite 00000000 PC 088287f8 LR 08828808 |
| eFootball 2023 By Tutoriales Bendezu |
v1.14.4 |
2023-05-04 |
3 |
WriteToHardware: Invalid address 00000000 near PC 088d2250 LR 088d223c |
| PES 2019 VANDAMMEEDITION |
v1.14.4 |
2023-04-29 |
1 |
Unknown GetPointerWrite 00000000 PC 08824cfc LR 088113e4 |
| eFootball C22 Sultan Design PATCH |
v1.14.4 |
2023-04-29 |
7 |
sceNetAdhocMatchingInit(32768) at 08a71984 |
| Rock Band Unplugged™ |
v1.14.4 |
2023-04-29 |
1 |
Ignoring possible texturing from framebuffer at 041ba000 +0x80 / 128x272 |
| eFootball C22 Sultan Design PATCH |
v1.14.4 |
2023-04-29 |
1 |
Replacement rowPitch=1024, but w=2848 (level=0) |
| Ben 10 Ultimate Alien:
Cosmic Destruction |
v1.16.1 |
2023-09-15 |
2 |
scePsmfPlayerSetPsmf*: incorrect PSMF magic (c0043aa2), bad data |
| FIFA 14 - Es |
v1.18.1 |
2025-02-05 |
5 |
Unknown GetPointerWrite 00000014 PC 08ae6d38 LR 08ae6d60 |
| eFootball 2023 By Tutoriales Bendezu |
v1.14.4 |
2023-04-29 |
1 |
Replacement rowPitch=512, but w=1984 (level=0) |
| Dragon Ball Z: Tenkaichi Tag Team |
v1.14.4 |
2023-04-29 |
1 |
WriteToHardware: Invalid address 53320dfc near PC 0880dcc8 LR 0880dcc8 |
| eFootball Asia 2023 |
v1.14.4 |
2023-06-20 |
2 |
Replacement rowPitch=512, but w=800 (level=0) |
| RIDGE RACER 2 |
v1.14.4 |
2023-04-29 |
1 |
Ignoring possible texturing from framebuffer at 04155080 +512x250 / 256x272 |
| Def Jam® Fight For NY™: The Takeover |
v1.14.4 |
2023-04-29 |
1 |
Replacement rowPitch=1024, but w=4096 (level=0) |
| Def Jam® Fight For NY™: The Takeover |
v1.14.4 |
2023-04-29 |
1 |
Replacement rowPitch=64, but w=2048 (level=0) |
| ASPHALT : URBAN GT 2 |
v1.14.4 |
2023-04-29 |
1 |
Error in shader compilation: info: Vertex shader compilation failed.
ERROR: 0:125: 'comp' : redefinition
ERROR: 0:126: 'type' : redefinition
ERROR: 0:174: 'comp' : redefinition
ERROR: 0:175: 'type' : redefinition
ERROR: 0:223: 'comp' : redefinition
ERROR: 0:224: 'type' : redefinition
ERROR: 6 compilation errors. No code generated.
01000000:80000931 HWX T LM Tex Light: LightUberShader Cull
#version 300 es
// Driver: Adreno (TM) 305 - GLSL 300
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 01000000:80000931 HWX T LM Tex Light: LightUberShader Cull
in vec3 position;
in vec2 texcoord;
uniform mat4 u_proj;
uniform mat4 u_world;
uniform mat4 u_view;
uniform vec4 u_uvscaleoffset;
uniform uint u_lightControl;
uniform vec3 u_lightpos0;
uniform mediump vec3 u_lightatt0;
uniform mediump vec3 u_lightdir0;
uniform mediump vec2 u_lightangle_spotCoef0;
uniform lowp vec3 u_lightambient0;
uniform lowp vec3 u_lightdiffuse0;
uniform lowp vec3 u_lightspecular0;
uniform vec3 u_lightpos1;
uniform mediump vec3 u_lightatt1;
uniform mediump vec3 u_lightdir1;
uniform mediump vec2 u_lightangle_spotCoef1;
uniform lowp vec3 u_lightambient1;
uniform lowp vec3 u_lightdiffuse1;
uniform lowp vec3 u_lightspecular1;
uniform vec3 u_lightpos2;
uniform mediump vec3 u_lightatt2;
uniform mediump vec3 u_lightdir2;
uniform mediump vec2 u_lightangle_spotCoef2;
uniform lowp vec3 u_lightambient2;
uniform lowp vec3 u_lightdiffuse2;
uniform lowp vec3 u_lightspecular2;
uniform vec3 u_lightpos3;
uniform mediump vec3 u_lightatt3;
uniform mediump vec3 u_lightdir3;
uniform mediump vec2 u_lightangle_spotCoef3;
uniform lowp vec3 u_lightambient3;
uniform lowp vec3 u_lightdiffuse3;
uniform lowp vec3 u_lightspecular3;
uniform lowp vec4 u_ambient;
uniform lowp vec3 u_matdiffuse;
uniform lowp vec4 u_matspecular;
uniform lowp vec3 u_matemissive;
uniform lowp vec4 u_matambientalpha;
uniform highp vec2 u_fogcoef;
uniform highp vec4 u_depthRange;
uniform highp vec4 u_cullRangeMin;
uniform highp vec4 u_cullRangeMax;
out lowp vec4 v_color0;
out lowp vec3 v_color1;
out mediump vec3 v_texcoord;
out mediump float v_fogdepth;
vec3 normalizeOr001(vec3 v) {
return length(v) == 0.0 ? vec3(0.0, 0.0, 1.0) : normalize(v);
}
void main() {
vec3 worldpos = mul(vec4(position, 1.0), u_world).xyz;
mediump vec3 worldnormal = normalizeOr001(mul(vec4(0.0, 0.0, 1.0, 0.0), u_world).xyz);
vec4 viewPos = vec4(mul(vec4(worldpos, 1.0), u_view).xyz, 1.0);
vec4 outPos = mul(u_proj, viewPos);
vec4 ambientColor = u_matambientalpha;
vec3 diffuseColor = u_matdiffuse.rgb;
vec3 specularColor = u_matspecular.rgb;
lowp vec4 lightSum0 = u_ambient * ambientColor + vec4(u_matemissive, 0.0);
lowp vec3 lightSum1 = splat3(0.0);
vec3 toLight;
lowp vec3 diffuse;
float distance;
lowp float lightScale;
mediump float ldot;
lowp float angle;
if ((u_lightControl & 1u) != 0x0u) {
uint comp = (u_lightControl >> 0x04u) & 0x3u;
uint type = (u_lightControl >> 0x06u) & 0x3u;
if (type == 0x0u) {
toLight = u_lightpos0;
} else {
toLight = u_lightpos0 - worldpos;
distance = length(toLight);
toLight /= distance;
}
ldot = dot(toLight, worldnormal);
if (comp == 0x2u) {
if (u_matspecular.a <= 0.0) {
ldot = 1.0;
} else {
ldot = pow(max(ldot, 0.0), u_matspecular.a);
}
}
switch (int(type)) {
case 1:
lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0);
break;
case 2:
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;
}
break;
default:
lightScale = 1.0;
break;
}
diffuse = (u_lightdiffuse0 * diffuseColor) * max(ldot, 0.0);
if (comp == 0x1u) {
|