Recent logs - Ghost Rider

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
Ghost Rider v1.10.3 2020-09-08 WriteToHardware: Invalid address 00000dd0 near PC 08a6db90 LR 08a6d764
Ghost Rider v1.10.3 2020-09-04 WriteToHardware: Invalid address 00000dd0 near PC 088ab7d8 LR 088ab7d8
Ghost Rider v1.10.3-470-ge8779fdc8 2020-08-22 __KernelStopThread: thread 434 does not exist
Ghost Rider v1.6.3-312-g31646d6c8 2020-08-19 Error in shader program link: info: (unknown reason) fs: 00000000:00000002 Tex TFuncMod #version 300 es precision lowp float; uniform sampler2D tex; in vec4 v_color0; in mediump vec3 v_texcoord; out vec4 fragColor0; void main() { vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = vec4(t.rgb * p.rgb, p.a); fragColor0 = v; } vs: 01010000:00000b18 HWX C T N Tex Light: MatUp:1 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform lowp vec4 u_ambient; uniform lowp vec3 u_matdiffuse; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; out lowp vec4 v_color0; out mediump vec3 v_texcoord; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * 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); }
Ghost Rider v1.6.3-312-g31646d6c8 2020-08-19 Error in shader program link: info: (unknown reason) fs: 00000000:00000022 Tex TexAlpha TFuncMod #version 300 es precision lowp float; uniform sampler2D tex; in vec4 v_color0; in mediump vec3 v_texcoord; out vec4 fragColor0; void main() { vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = p * t; fragColor0 = v; } vs: 01010000:00050b58 HWX C T N Tex TexProjUV UVMtx Light: MatUp:1 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform mediump mat4 u_texmtx; uniform vec4 u_uvscaleoffset; uniform lowp vec4 u_ambient; uniform lowp vec3 u_matdiffuse; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; out lowp vec4 v_color0; out mediump vec3 v_texcoord; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); mediump float ldot; v_color0 = clamp(lightSum0, 0.0, 1.0); v_texcoord = (u_texmtx * vec4(texcoord.xy, 0.0, 1.0)).xyz * vec3(u_uvscaleoffset.xy, 1.0); }
Ghost Rider v1.6.3-312-g31646d6c8 2020-08-19 Error in shader program link: info: (unknown reason) fs: 00000000:00000022 Tex TexAlpha TFuncMod #version 300 es precision lowp float; uniform sampler2D tex; in vec4 v_color0; in mediump vec3 v_texcoord; out vec4 fragColor0; void main() { vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = p * t; fragColor0 = v; } vs: 01010000:00000b18 HWX C T N Tex Light: MatUp:1 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform lowp vec4 u_ambient; uniform lowp vec3 u_matdiffuse; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; out lowp vec4 v_color0; out mediump vec3 v_texcoord; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * 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); }
Ghost Rider v1.6.3-312-g31646d6c8 2020-08-19 Error in shader program link: info: (unknown reason) fs: 00000000:00000002 Tex TFuncMod #version 300 es precision lowp float; uniform sampler2D tex; in vec4 v_color0; in mediump vec3 v_texcoord; out vec4 fragColor0; void main() { vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = vec4(t.rgb * p.rgb, p.a); fragColor0 = v; } vs: 01010000:00050b58 HWX C T N Tex TexProjUV UVMtx Light: MatUp:1 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform mediump mat4 u_texmtx; uniform vec4 u_uvscaleoffset; uniform lowp vec4 u_ambient; uniform lowp vec3 u_matdiffuse; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; out lowp vec4 v_color0; out mediump vec3 v_texcoord; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); mediump float ldot; v_color0 = clamp(lightSum0, 0.0, 1.0); v_texcoord = (u_texmtx * vec4(texcoord.xy, 0.0, 1.0)).xyz * vec3(u_uvscaleoffset.xy, 1.0); }
Ghost Rider v1.6.3-312-g31646d6c8 2020-08-19 Error in shader program link: info: (unknown reason) fs: 00000000:00000002 Tex TFuncMod #version 300 es precision lowp float; uniform sampler2D tex; in vec4 v_color0; in mediump vec3 v_texcoord; out vec4 fragColor0; void main() { vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = vec4(t.rgb * p.rgb, p.a); fragColor0 = v; } vs: 01310040:00050b58 HWX C T N Tex TexProjUV UVMtx Light: 0: c:0 t:0 1: c:0 t:1 MatUp:1 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform mediump mat4 u_texmtx; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; 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 lowp vec4 u_ambient; uniform lowp vec3 u_matdiffuse; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; out lowp vec4 v_color0; out mediump vec3 v_texcoord; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse0 * u_matdiffuse) * ldot; lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse); toLight = u_lightpos1 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse1 * u_matdiffuse) * ldot; lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_texcoord = (u_texmtx * vec4(texcoord.xy, 0.0, 1.0)).xyz * vec3(u_uvscaleoffset.xy, 1.0); }
Ghost Rider v1.6.3-312-g31646d6c8 2020-08-19 Error in shader program link: info: (unknown reason) fs: 00000000:0021d022 Tex TexAlpha Fog TFuncMod AlphaTest0 > #version 300 es precision lowp float; uniform sampler2D tex; uniform sampler2D testtex; in vec4 v_color0; uniform vec3 u_fogcolor; in mediump float v_fogdepth; in mediump vec3 v_texcoord; out vec4 fragColor0; void main() { vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = p * t; if (v.a < 0.002) discard; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = v; } vs: 01010000:00000b1c HWX C T N Fog Tex Light: MatUp:1 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform lowp vec4 u_ambient; uniform lowp vec3 u_matdiffuse; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out mediump vec3 v_texcoord; out mediump float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * 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; }
Ghost Rider v1.10.3 2020-08-15 sceKernelLoadModuleByID: unsupported options size=00000014, flags=089d5494, pos=0, access=1, data=2, text=2
Ghost Rider v1.10.3 2020-08-15 sceKernelLoadModuleByID: unsupported options size=00000014, flags=08aa3278, pos=0, access=1, data=1, text=1
Ghost Rider v1.10.3 2020-08-15 sceKernelLoadModuleByID: unsupported options size=00000014, flags=00000137, pos=0, access=1, data=2, text=2
Ghost Rider v1.10.3 2020-08-15 sceKernelLoadModuleByID: unsupported options size=00000014, flags=00000000, pos=0, access=1, data=1, text=1
Ghost Rider v1.10.3 2020-08-15 sceKernelCreateSema(SNDMUTEX) unsupported options parameter, size = 145634952
Ghost Rider v1.10.3 2020-08-15 sceKernelCreateSema(SNDMUTEX) unsupported options parameter, size = 145543488
Ghost Rider v1.10.3 2020-08-15 sceKernelCreateSema(RealMutex) unsupported options parameter, size = 16
Ghost Rider v1.10.3 2020-08-15 sceKernelCreateSema(RealMutex) unsupported options parameter, size = 34520
Ghost Rider v1.10.3 2020-08-15 sceKernelCreateSema(RealMutex) unsupported options parameter, size = 143963980
Ghost Rider v1.9.4 2020-08-12 WriteToHardware: Invalid address 00000dd0 near PC 089c51c4 LR 089b8688
Ghost Rider v1.10.3 2020-08-11 WriteToHardware: Invalid address 00000dd0 near PC 08a65598 LR 08a65598
Ghost Rider v1.7.4 2020-08-09 Unknown GetPointer 00000000 PC 08816130 LR 08816144
Ghost Rider v1.7.4 2020-08-09 Savedata version requested on save: 3
Ghost Rider v1.7.4 2020-08-09 Savedata version requested: 3
Ghost Rider v1.10.3 2020-08-06 Unknown syscall in known module 'ThreadManForKernel': 0x3f53e640
Ghost Rider v1.10.3 2020-08-06 Unknown syscall in known module 'ThreadManForKernel': 0x28b6489c
Ghost Rider v1.10.3 2020-08-06 Unknown syscall in known module 'ThreadManForKernel': 0xd6da4ba1
Ghost Rider v1.10.3 2020-08-06 Unknown syscall in known module 'SysclibForKernel': 0xb49a7697
Ghost Rider v1.10.3 2020-08-06 sceKernelLoadModule: unsupported options size=00000014, flags=00000000, pos=0, access=1, data=1, text=1
Ghost Rider v1.7.5 2020-08-03 WriteToHardware: Invalid address 00000dd0 near PC 0897ef60 LR 08a06ef0
Ghost Rider v1.10.3 2020-08-02 WriteToHardware: Invalid address 00000dd0 near PC 08a6e140 LR 08a64ba0
Ghost Rider v1.9.4 2020-08-02 WriteToHardware: Invalid address 00000dd0 near PC 0898251c LR 088f7e84
Ghost Rider v1.10.2 2020-07-28 BREAK instruction hit
Ghost Rider v1.10.2 2020-07-26 __KernelStopThread: thread 1149 does not exist
Ghost Rider v1.10.2 2020-07-26 sceKernelCreateSema(RealMutex) unsupported options parameter, size = -65536
Ghost Rider v1.10.2 2020-07-26 sceKernelCreateSema(RealMutex) unsupported options parameter, size = 167771616
Ghost Rider v1.10.2 2020-07-16 WriteToHardware: Invalid address 00000dd0 near PC 08a245cc LR 08a1ff5c
Ghost Rider v1.6.3-312-g31646d6c8 2020-07-05 WriteToHardware: Invalid address 000003c0 near PC 0898cd64 LR 00000000
Ghost Rider v1.6.3-312-g31646d6c8 2020-07-05 Unknown GetPointer 000002d0 PC 0898cd64 LR 00000000
Ghost Rider v1.6.3-312-g31646d6c8 2020-07-05 Unable to allocate stack for root thread.
Ghost Rider v1.6.3-312-g31646d6c8 2020-07-05 WriteToHardware: Invalid address 00000000 near PC 0898cd64 LR 00000000
Ghost Rider v1.6.3 2020-06-28 WriteToHardware: Invalid address 00000dd0 near PC 08980d4c LR 08a06ef0
Ghost Rider v1.9.4 2020-06-28 ReadFromHardware: Invalid address 29c526f1 near PC 08a843fc LR 08a843fc
Ghost Rider v1.9.4 2020-06-28 Unknown GetPointer 00000000 PC 00000000 LR 08a84424
Ghost Rider v1.9.4 2020-06-28 ReadFromHardware: Invalid address 00000008 near PC 089a3a38 LR 089a3a38
Ghost Rider v1.9.4 2020-06-24 WriteToHardware: Invalid address 00000dd0 near PC 089c6778 LR 089c9448
Ghost Rider v1.9.4 2020-06-21 Unknown GetPointer 00000000 PC 08815ef4 LR 08000020
Ghost Rider v1.9.4 2020-06-16 Branch in RSZeroComp delay slot at 00010000 in block starting at 00010000
Ghost Rider v1.9.4 2020-06-16 Branch in RSZeroComp delay slot at 00010008 in block starting at 00010008
Ghost Rider v1.9.4 2020-06-16 Branch in RSZeroComp delay slot at 00010010 in block starting at 00010010
Ghost Rider v1.9.4 2020-06-13 WriteToHardware: Invalid address 00000dd0 near PC 08a6e3c4 LR 08a64ba0
Ghost Rider v1.9.4 2020-06-11 WriteToHardware: Invalid address 00000dd0 near PC 089c5218 LR 089b8688
Ghost Rider v1.9.4 2020-06-10 WriteToHardware: Invalid address 00000dd0 near PC 08a6dc0c LR 08a6d764
Ghost Rider v1.9.4 2020-06-08 WriteToHardware: Invalid address 00000dd0 near PC 08a0c204 LR 08a0c20c
Ghost Rider v1.9.4 2020-06-05 MIPSCompileOp: Invalid instruction 4028312a
Ghost Rider v1.9.4 2020-06-16 ReadFromHardware: Invalid address 00000000 near PC 00000000 LR 088b0950
Ghost Rider v1.9.4 2020-06-08 Render to texture using CLUT with different strides 512 != 64
Ghost Rider v1.9.4 2020-06-03 ReadFromHardware: Invalid address 00000c24 near PC 08a02934 LR 089fe690
Ghost Rider v1.9.4 2020-06-03 WriteToHardware: Invalid address 000002cc near PC 08a02934 LR 089fe690
Ghost Rider v1.9.4 2020-06-03 WriteToHardware: Invalid address 00000598 near PC 08a02934 LR 089fe690
Ghost Rider v1.9.4 2020-06-03 Render to area containing texture at 0408c000 +112x8
Ghost Rider v1.9.4 2020-06-02 WriteToHardware: Invalid address 00000dd0 near PC 089a7004 LR 089a7004
Ghost Rider v1.9.4 2020-05-27 WriteToHardware: Invalid address 00000dd0 near PC 08a24820 LR 08a24820
Ghost Rider v1.9.4 2020-05-27 WriteToHardware: Invalid address 00000dd0 near PC 08a1c2c8 LR 08a1c2b0
Ghost Rider v1.9.4 2020-05-24 WriteToHardware: Invalid address 00000dd0 near PC 089bf488 LR 089bf488
Ghost Rider v1.9.4 2020-05-21 WriteToHardware: Invalid address 00000dd0 near PC 08978290 LR 089ce29c
Ghost Rider v1.9.4 2020-05-17 WriteToHardware: Invalid address 00000dd0 near PC 089c4508 LR 089b8eec
Ghost Rider v1.9.4 2020-05-17 WriteToHardware: Invalid address 00000dd0 near PC 089a80d0 LR 089a80d0
Ghost Rider v1.9.4 2020-05-15 WriteToHardware: Invalid address 00000dd0 near PC 089a4368 LR 08a58a80
Ghost Rider v1.9.4 2020-05-14 WriteToHardware: Invalid address 00000dd0 near PC 08a04cac LR 08a0c1d0
Ghost Rider v1.9.4 2020-05-08 WriteToHardware: Invalid address 00000dd0 near PC 089fe890 LR 089fe824
Ghost Rider v1.7.4 2020-05-05 WriteToHardware: Invalid address 00000dd0 near PC 089b9410 LR 089b85b4
Ghost Rider v1.9.4 2020-04-27 WriteToHardware: Invalid address 00000dd0 near PC 089a7abc LR 089a7098
Ghost Rider v1.9.4 2020-04-27 Unknown GetPointer 07926c0c PC 089ca0b8 LR 089ca2dc
Ghost Rider v1.9.4 2020-04-27 Unknown GetPointer 07922c0c PC 089ca0b8 LR 089ca2dc
Ghost Rider v1.9.4 2020-04-27 Unknown GetPointer 07924c0c PC 089ca0b8 LR 089ca2dc
Ghost Rider v1.6.3-492-g9fddfff66 2020-07-27 WriteToHardware: Invalid address 00000dd0 near PC 089a67a8 LR 08a8453c
Ghost Rider v1.9.4 2020-09-14 WriteToHardware: Invalid address 00000dd0 near PC 089a8ddc LR 089a8d98
Ghost Rider v1.9.4 2020-04-19 WriteToHardware: Invalid address 00000dd0 near PC 089df2bc LR 089df2bc
Ghost Rider v1.9.4 2020-04-13 Render to area containing texture at 040d4000 +0x128
Ghost Rider v1.9.4 2020-04-13 Render to texture with incompatible formats 5 != 1 at 040d4000
Ghost Rider v1.9.4 2020-04-13 4 and 8-bit CLUT format not supported for framebuffers
Ghost Rider v1.9.4 2020-04-13 Render to texture using CLUT with different strides 256 != 128
Ghost Rider v1.9.4 2020-05-14 WriteToHardware: Invalid address 00000dd0 near PC 089c562c LR 089b8688
Ghost Rider v1.9.4 2020-04-10 WriteToHardware: Invalid address 00000dd0 near PC 08a649c8 LR 08a645a8
Ghost Rider v1.9.4 2020-04-09 WriteToHardware: Invalid address 00000dd0 near PC 089b9408 LR 089b85b4
Ghost Rider v1.9.4 2020-04-04 WriteToHardware: Invalid address 00000dd0 near PC 089be5ac LR 089be630
Ghost Rider v1.9.3 2020-04-01 WriteToHardware: Invalid address 00000dd0 near PC 089f8988 LR 089f8988
Ghost Rider v1.9.4 2020-03-28 WriteToHardware: Invalid address 00000dd0 near PC 089a67a8 LR 088f95c0
Ghost Rider v1.7.4 2020-03-22 WriteToHardware: Invalid address 00000dd0 near PC 08995388 LR 088f2b5c
Ghost Rider v1.9.4 2020-03-21 Unknown GetPointer 00000000 PC 0880997c LR 0880997c
Ghost Rider v1.9.4 2020-03-17 WriteToHardware: Invalid address 00000dd0 near PC 08a74c88 LR 08a74c88
Ghost Rider v1.9.4 2020-03-13 Unknown GetPointer 00000000 PC 089c6490 LR 089c6438
Ghost Rider v1.8.0 2020-03-11 WriteToHardware: Invalid address 00000dd0 near PC 08a05eac LR 08a05eac
Ghost Rider v1.8.0 2020-03-08 80630006=sceAtracSetDataAndGetID(08edd3c0, 000187cc): invalid RIFF header
Ghost Rider v1.9.4 2020-03-06 WriteToHardware: Invalid address 00000dd0 near PC 08a6d364 LR 08a65774
Ghost Rider v1.9.4 2020-03-06 WriteToHardware: Invalid address 00000dd0 near PC 08a6d568 LR 08a65774
Ghost Rider v1.9.4 2020-09-06 WriteToHardware: Invalid address 00000dd0 near PC 089c0784 LR 089b230c
Ghost Rider v1.9.4 2020-03-03 FBO using existing buffer as depthbuffer, 04154000/04110000 and 04110000/04110000
Ghost Rider v1.9.4 2020-03-03 Render to texture with different strides 512 != 256
Ghost Rider v1.9.4 2020-03-03 Ignoring func export scePsmfPlayer/a0b8ca55, already implemented in HLE.