Bayonetta 2- Ultrawide, DOF, scale gl_point

Cutscene DOF is LOD based, should not have been scaled.
This commit is contained in:
getdls 2020-04-23 21:45:28 +02:00
parent 1c6828fa8c
commit 49719345a7
14 changed files with 2261 additions and 1537 deletions

View File

@ -1,635 +0,0 @@
#version 420
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
#define gl_VertexID gl_VertexIndex
#define gl_InstanceID gl_InstanceIndex
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define SET_POSITION(_v) gl_Position = _v
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
#endif
// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL.
// shader 00fed4f92a49e851
//cut scen blur pass 2 a
const float resScale = float($height)/float($gameHeight);
#ifdef VULKAN
layout(set = 1, binding = 1) uniform ufBlock
{
uniform ivec4 uf_remappedPS[2];
uniform vec4 uf_fragCoordScale;
};
#else
uniform ivec4 uf_remappedPS[2];
uniform vec2 uf_fragCoordScale;
#endif
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0;
layout(location = 0) in vec4 passParameterSem133;
layout(location = 0) out vec4 passPixelColor0;
// uf_fragCoordScale was moved to the ufBlock
int clampFI32(int v)
{
if( v == 0x7FFFFFFF )
return floatBitsToInt(1.0);
else if( v == 0xFFFFFFFF )
return floatBitsToInt(0.0);
return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0));
}
float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; }
void main()
{
vec4 R0f = vec4(0.0);
vec4 R1f = vec4(0.0);
vec4 R2f = vec4(0.0);
vec4 R3f = vec4(0.0);
vec4 R4f = vec4(0.0);
vec4 R5f = vec4(0.0);
vec4 R6f = vec4(0.0);
vec4 R7f = vec4(0.0);
vec4 R8f = vec4(0.0);
vec4 R9f = vec4(0.0);
vec4 R10f = vec4(0.0);
vec4 R11f = vec4(0.0);
vec4 R122f = vec4(0.0);
vec4 R123f = vec4(0.0);
vec4 R126f = vec4(0.0);
vec4 R127f = vec4(0.0);
float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f;
vec4 PV0f = vec4(0.0), PV1f = vec4(0.0);
float PS0f = 0.0, PS1f = 0.0;
vec4 tempf = vec4(0.0);
float tempResultf;
int tempResulti;
ivec4 ARi = ivec4(0);
bool predResult = true;
vec3 cubeMapSTM;
int cubeMapFaceId;
R0f = passParameterSem133;
R5f.xyzw = (texture(textureUnitPS0, R0f.xy).xyzw);
// 0
backupReg0f = R0f.x;
backupReg1f = R0f.y;
PV0f.x = backupReg0f + -(0.0);
PV0f.x = clamp(PV0f.x, 0.0, 1.0);
PV0f.y = intBitsToFloat(uf_remappedPS[0].y) * intBitsToFloat(0xbeaf1d44)/ resScale;
PV0f.z = intBitsToFloat(uf_remappedPS[0].x) * intBitsToFloat(0x3f708fb2)/ resScale;
R10f.w = mul_nonIEEE(R5f.w, intBitsToFloat(uf_remappedPS[1].x));
PV0f.w = R10f.w;
PS0f = backupReg1f + 0.0;
PS0f = clamp(PS0f, 0.0, 1.0);
// 1
PV1f.x = max(PV0f.x, 0.0);
R10f.y = mul_nonIEEE(PV0f.w, PV0f.z);
PV1f.y = R10f.y;
R10f.z = mul_nonIEEE(PV0f.w, PV0f.y);
PV1f.z = R10f.z;
PV1f.w = max(PS0f, 0.0);
PS1f = max(R5f.w, intBitsToFloat(0x3a83126f));
// 2
R1f.x = min(PV1f.x, 1.0);
R1f.y = min(PV1f.w, 1.0);
PV0f.z = R0f.y + PV1f.z;
PV0f.z = clamp(PV0f.z, 0.0, 1.0);
PV0f.w = R0f.x + -(PV1f.y);
PV0f.w = clamp(PV0f.w, 0.0, 1.0);
R11f.y = 1.0 / PS1f;
PS0f = R11f.y;
// 3
R123f.x = (-(R10f.y) * 2.0 + R0f.x);
R123f.x = clamp(R123f.x, 0.0, 1.0);
PV1f.x = R123f.x;
R123f.y = (R10f.z * 2.0 + R0f.y);
R123f.y = clamp(R123f.y, 0.0, 1.0);
PV1f.y = R123f.y;
PV1f.z = max(PV0f.z, 0.0);
PV1f.w = max(PV0f.w, 0.0);
R127f.w = (-(R10f.y) * intBitsToFloat(0x40400000) + R0f.x);
R127f.w = clamp(R127f.w, 0.0, 1.0);
PS1f = R127f.w;
// 4
R2f.x = min(PV1f.w, 1.0);
R2f.y = min(PV1f.z, 1.0);
PV0f.z = max(PV1f.x, 0.0);
PV0f.w = max(PV1f.y, 0.0);
R122f.x = (R10f.z * intBitsToFloat(0x40400000) + R0f.y);
R122f.x = clamp(R122f.x, 0.0, 1.0);
PS0f = R122f.x;
// 5
R3f.x = min(PV0f.z, 1.0);
R3f.y = min(PV0f.w, 1.0);
PV1f.z = max(PS0f, 0.0);
PV1f.w = max(R127f.w, 0.0);
R122f.x = (-(R10f.y) * 4.0 + R0f.x);
R122f.x = clamp(R122f.x, 0.0, 1.0);
PS1f = R122f.x;
// 6
R4f.x = min(PV1f.w, 1.0);
R4f.y = min(PV1f.z, 1.0);
R0f.z = max(PS1f, 0.0);
R0f.w = (R10f.z * 4.0 + R0f.y);
R0f.w = clamp(R0f.w, 0.0, 1.0);
R6f.w = (-(R10f.y) * intBitsToFloat(0x40a00000) + R0f.x);
R6f.w = clamp(R6f.w, 0.0, 1.0);
PS0f = R6f.w;
R1f.xyzw = (texture(textureUnitPS0, R1f.xy).xyzw);
R2f.xyzw = (texture(textureUnitPS0, R2f.xy).xyzw);
R3f.xyzw = (texture(textureUnitPS0, R3f.xy).xyzw);
R4f.xyzw = (texture(textureUnitPS0, R4f.xy).xyzw);
// 0
PV0f.x = R1f.w * R11f.y;
PV0f.x = clamp(PV0f.x, 0.0, 1.0);
R127f.y = R11f.y * R2f.w;
R127f.y = clamp(R127f.y, 0.0, 1.0);
R127f.z = R11f.y * R3f.w;
R127f.z = clamp(R127f.z, 0.0, 1.0);
R7f.w = min(R0f.z, 1.0);
R126f.z = (R10f.z * intBitsToFloat(0x40a00000) + R0f.y);
R126f.z = clamp(R126f.z, 0.0, 1.0);
PS0f = R126f.z;
// 1
PV1f.x = PV0f.x + 1.0;
R123f.y = (mul_nonIEEE(R1f.z,PV0f.x) + R5f.z);
PV1f.y = R123f.y;
R123f.z = (mul_nonIEEE(R1f.y,PV0f.x) + R5f.y);
PV1f.z = R123f.z;
R123f.w = (mul_nonIEEE(R1f.x,PV0f.x) + R5f.x);
PV1f.w = R123f.w;
R126f.y = R11f.y * R4f.w;
R126f.y = clamp(R126f.y, 0.0, 1.0);
PS1f = R126f.y;
// 2
R123f.x = (mul_nonIEEE(R2f.x,R127f.y) + PV1f.w);
PV0f.x = R123f.x;
PV0f.y = PV1f.x + R127f.y;
R123f.z = (mul_nonIEEE(R2f.z,R127f.y) + PV1f.y);
PV0f.z = R123f.z;
R123f.w = (mul_nonIEEE(R2f.y,R127f.y) + PV1f.z);
PV0f.w = R123f.w;
PS0f = max(R0f.w, 0.0);
// 3
PV1f.x = PV0f.y + R127f.z;
R123f.y = (mul_nonIEEE(R3f.z,R127f.z) + PV0f.z);
PV1f.y = R123f.y;
R123f.z = (mul_nonIEEE(R3f.y,R127f.z) + PV0f.w);
PV1f.z = R123f.z;
R123f.w = (mul_nonIEEE(R3f.x,R127f.z) + PV0f.x);
PV1f.w = R123f.w;
R7f.y = min(PS0f, 1.0);
PS1f = R7f.y;
// 4
R1f.x = (mul_nonIEEE(R4f.x,R126f.y) + PV1f.w);
R2f.y = PV1f.x + R126f.y;
R3f.z = (mul_nonIEEE(R4f.z,R126f.y) + PV1f.y);
R4f.w = (mul_nonIEEE(R4f.y,R126f.y) + PV1f.z);
PS0f = max(R6f.w, 0.0);
// 5
R4f.x = min(PS0f, 1.0);
R123f.y = (-(R10f.y) * intBitsToFloat(0x40c00000) + R0f.x);
R123f.y = clamp(R123f.y, 0.0, 1.0);
PV1f.y = R123f.y;
PV1f.z = max(R126f.z, 0.0);
R123f.w = (R10f.z * intBitsToFloat(0x40c00000) + R0f.y);
R123f.w = clamp(R123f.w, 0.0, 1.0);
PV1f.w = R123f.w;
R122f.x = (-(R10f.y) * intBitsToFloat(0x40e00000) + R0f.x);
R122f.x = clamp(R122f.x, 0.0, 1.0);
PS1f = R122f.x;
// 6
PV0f.x = max(PV1f.w, 0.0);
R4f.y = min(PV1f.z, 1.0);
PV0f.z = max(PV1f.y, 0.0);
R123f.w = (R10f.z * intBitsToFloat(0x40e00000) + R0f.y);
R123f.w = clamp(R123f.w, 0.0, 1.0);
PV0f.w = R123f.w;
PS0f = max(PS1f, 0.0);
// 7
R3f.x = min(PV0f.z, 1.0);
R3f.y = min(PV0f.x, 1.0);
PV1f.z = max(PV0f.w, 0.0);
R6f.w = min(PS0f, 1.0);
R122f.x = (-(R10f.y) * intBitsToFloat(0x41000000) + R0f.x);
R122f.x = clamp(R122f.x, 0.0, 1.0);
PS1f = R122f.x;
// 8
R2f.x = (-(R10f.y) * intBitsToFloat(0x41100000) + R0f.x);
R2f.x = clamp(R2f.x, 0.0, 1.0);
R6f.y = min(PV1f.z, 1.0);
R4f.z = max(PS1f, 0.0);
R3f.w = (R10f.z * intBitsToFloat(0x41000000) + R0f.y);
R3f.w = clamp(R3f.w, 0.0, 1.0);
R2f.z = (R10f.z * intBitsToFloat(0x41100000) + R0f.y);
R2f.z = clamp(R2f.z, 0.0, 1.0);
PS0f = R2f.z;
R7f.xyzw = (texture(textureUnitPS0, R7f.wy).xyzw);
R5f.xyzw = (texture(textureUnitPS0, R4f.xy).xyzw);
R8f.xyzw = (texture(textureUnitPS0, R3f.xy).xyzw);
R6f.xyzw = (texture(textureUnitPS0, R6f.wy).xyzw);
// 0
PV0f.x = R11f.y * R7f.w;
PV0f.x = clamp(PV0f.x, 0.0, 1.0);
R126f.y = R11f.y * R5f.w;
R126f.y = clamp(R126f.y, 0.0, 1.0);
R126f.z = R11f.y * R8f.w;
R126f.z = clamp(R126f.z, 0.0, 1.0);
R1f.w = min(R4f.z, 1.0);
R127f.w = max(R2f.x, 0.0);
PS0f = R127f.w;
// 1
PV1f.x = R2f.y + PV0f.x;
R123f.y = (mul_nonIEEE(R7f.z,PV0f.x) + R3f.z);
PV1f.y = R123f.y;
R123f.z = (mul_nonIEEE(R7f.y,PV0f.x) + R4f.w);
PV1f.z = R123f.z;
R123f.w = (mul_nonIEEE(R7f.x,PV0f.x) + R1f.x);
PV1f.w = R123f.w;
R127f.y = R11f.y * R6f.w;
R127f.y = clamp(R127f.y, 0.0, 1.0);
PS1f = R127f.y;
// 2
R123f.x = (mul_nonIEEE(R5f.x,R126f.y) + PV1f.w);
PV0f.x = R123f.x;
PV0f.y = PV1f.x + R126f.y;
R123f.z = (mul_nonIEEE(R5f.z,R126f.y) + PV1f.y);
PV0f.z = R123f.z;
R123f.w = (mul_nonIEEE(R5f.y,R126f.y) + PV1f.z);
PV0f.w = R123f.w;
PS0f = max(R3f.w, 0.0);
// 3
PV1f.x = PV0f.y + R126f.z;
R123f.y = (mul_nonIEEE(R8f.z,R126f.z) + PV0f.z);
PV1f.y = R123f.y;
R123f.z = (mul_nonIEEE(R8f.y,R126f.z) + PV0f.w);
PV1f.z = R123f.z;
R123f.w = (mul_nonIEEE(R8f.x,R126f.z) + PV0f.x);
PV1f.w = R123f.w;
R1f.y = min(PS0f, 1.0);
PS1f = R1f.y;
// 4
backupReg0f = R6f.z;
R1f.x = (mul_nonIEEE(R6f.x,R127f.y) + PV1f.w);
R5f.y = PV1f.x + R127f.y;
R6f.z = (mul_nonIEEE(backupReg0f,R127f.y) + PV1f.y);
R6f.w = (mul_nonIEEE(R6f.y,R127f.y) + PV1f.z);
PS0f = max(R2f.z, 0.0);
// 5
R6f.x = min(R127f.w, 1.0);
R6f.y = min(PS0f, 1.0);
R123f.z = (-(R10f.y) * intBitsToFloat(0x41200000) + R0f.x);
R123f.z = clamp(R123f.z, 0.0, 1.0);
PV1f.z = R123f.z;
R123f.w = (R10f.z * intBitsToFloat(0x41200000) + R0f.y);
R123f.w = clamp(R123f.w, 0.0, 1.0);
PV1f.w = R123f.w;
R122f.x = (-(R10f.y) * intBitsToFloat(0x41300000) + R0f.x);
R122f.x = clamp(R122f.x, 0.0, 1.0);
PS1f = R122f.x;
// 6
R123f.x = (R10f.z * intBitsToFloat(0x41300000) + R0f.y);
R123f.x = clamp(R123f.x, 0.0, 1.0);
PV0f.x = R123f.x;
PV0f.y = max(PV1f.w, 0.0);
PV0f.z = max(PV1f.z, 0.0);
PV0f.w = max(PS1f, 0.0);
R127f.x = (-(R10f.y) * intBitsToFloat(0x41400000) + R0f.x);
R127f.x = clamp(R127f.x, 0.0, 1.0);
PS0f = R127f.x;
// 7
R8f.x = min(PV0f.z, 1.0);
R8f.y = min(PV0f.y, 1.0);
PV1f.z = max(PV0f.x, 0.0);
R3f.w = min(PV0f.w, 1.0);
R122f.x = (R10f.z * intBitsToFloat(0x41400000) + R0f.y);
R122f.x = clamp(R122f.x, 0.0, 1.0);
PS1f = R122f.x;
// 8
R5f.x = max(PS1f, 0.0);
R3f.y = min(PV1f.z, 1.0);
R2f.z = max(R127f.x, 0.0);
R8f.w = (-(R10f.y) * intBitsToFloat(0x41500000) + R0f.x);
R8f.w = clamp(R8f.w, 0.0, 1.0);
R8f.z = (R10f.z * intBitsToFloat(0x41500000) + R0f.y);
R8f.z = clamp(R8f.z, 0.0, 1.0);
PS0f = R8f.z;
R4f.xyzw = (texture(textureUnitPS0, R1f.wy).xyzw);
R7f.xyzw = (texture(textureUnitPS0, R6f.xy).xyzw);
R9f.xyzw = (texture(textureUnitPS0, R8f.xy).xyzw);
R3f.xyzw = (texture(textureUnitPS0, R3f.wy).xyzw);
// 0
PV0f.x = R11f.y * R4f.w;
PV0f.x = clamp(PV0f.x, 0.0, 1.0);
R127f.y = R11f.y * R7f.w;
R127f.y = clamp(R127f.y, 0.0, 1.0);
R126f.z = R11f.y * R9f.w;
R126f.z = clamp(R126f.z, 0.0, 1.0);
R1f.w = min(R2f.z, 1.0);
R1f.y = min(R5f.x, 1.0);
PS0f = R1f.y;
// 1
PV1f.x = R5f.y + PV0f.x;
R123f.y = (mul_nonIEEE(R4f.z,PV0f.x) + R6f.z);
PV1f.y = R123f.y;
R123f.z = (mul_nonIEEE(R4f.y,PV0f.x) + R6f.w);
PV1f.z = R123f.z;
R123f.w = (mul_nonIEEE(R4f.x,PV0f.x) + R1f.x);
PV1f.w = R123f.w;
R126f.y = R11f.y * R3f.w;
R126f.y = clamp(R126f.y, 0.0, 1.0);
PS1f = R126f.y;
// 2
R123f.x = (mul_nonIEEE(R7f.x,R127f.y) + PV1f.w);
PV0f.x = R123f.x;
PV0f.y = PV1f.x + R127f.y;
R123f.z = (mul_nonIEEE(R7f.z,R127f.y) + PV1f.y);
PV0f.z = R123f.z;
R123f.w = (mul_nonIEEE(R7f.y,R127f.y) + PV1f.z);
PV0f.w = R123f.w;
R127f.w = max(R8f.w, 0.0);
PS0f = R127f.w;
// 3
PV1f.x = PV0f.y + R126f.z;
R123f.y = (mul_nonIEEE(R9f.z,R126f.z) + PV0f.z);
PV1f.y = R123f.y;
R123f.z = (mul_nonIEEE(R9f.y,R126f.z) + PV0f.w);
PV1f.z = R123f.z;
R123f.w = (mul_nonIEEE(R9f.x,R126f.z) + PV0f.x);
PV1f.w = R123f.w;
R126f.z = max(R8f.z, 0.0);
PS1f = R126f.z;
// 4
R1f.x = (mul_nonIEEE(R3f.x,R126f.y) + PV1f.w);
R7f.y = PV1f.x + R126f.y;
R9f.z = (mul_nonIEEE(R3f.z,R126f.y) + PV1f.y);
R9f.w = (mul_nonIEEE(R3f.y,R126f.y) + PV1f.z);
R3f.x = min(R127f.w, 1.0);
PS0f = R3f.x;
// 5
R123f.x = (-(R10f.y) * intBitsToFloat(0x41600000) + R0f.x);
R123f.x = clamp(R123f.x, 0.0, 1.0);
PV1f.x = R123f.x;
R3f.y = min(R126f.z, 1.0);
R123f.z = (-(R10f.y) * intBitsToFloat(0x41700000) + R0f.x);
R123f.z = clamp(R123f.z, 0.0, 1.0);
PV1f.z = R123f.z;
R123f.w = (R10f.z * intBitsToFloat(0x41600000) + R0f.y);
R123f.w = clamp(R123f.w, 0.0, 1.0);
PV1f.w = R123f.w;
R122f.x = (R10f.z * intBitsToFloat(0x41700000) + R0f.y);
R122f.x = clamp(R122f.x, 0.0, 1.0);
PS1f = R122f.x;
// 6
backupReg0f = R0f.x;
PV0f.x = max(PS1f, 0.0);
PV0f.y = max(PV1f.w, 0.0);
PV0f.z = max(PV1f.x, 0.0);
PV0f.w = max(PV1f.z, 0.0);
R7f.x = (-(R10f.y) * intBitsToFloat(0x41800000) + backupReg0f);
R7f.x = clamp(R7f.x, 0.0, 1.0);
PS0f = R7f.x;
// 7
R9f.x = min(PV0f.z, 1.0);
R9f.y = min(PV0f.y, 1.0);
R3f.z = min(PV0f.w, 1.0);
R3f.w = min(PV0f.x, 1.0);
R7f.w = (R10f.z * intBitsToFloat(0x41800000) + R0f.y);
R7f.w = clamp(R7f.w, 0.0, 1.0);
PS1f = R7f.w;
R8f.xyzw = (texture(textureUnitPS0, R1f.wy).xyzw);
R4f.xyzw = (texture(textureUnitPS0, R3f.xy).xyzw);
R5f.xyzw = (texture(textureUnitPS0, R9f.xy).xyzw);
R3f.xyzw = (texture(textureUnitPS0, R3f.zw).xyzw);
// 0
backupReg0f = R0f.x;
PV0f.x = R11f.y * R8f.w;
PV0f.x = clamp(PV0f.x, 0.0, 1.0);
R126f.y = R11f.y * R4f.w;
R126f.y = clamp(R126f.y, 0.0, 1.0);
R126f.z = R11f.y * R5f.w;
R126f.z = clamp(R126f.z, 0.0, 1.0);
R127f.w = max(R7f.x, 0.0);
R126f.w = (-(R10f.y) * intBitsToFloat(0x41880000) + backupReg0f);
R126f.w = clamp(R126f.w, 0.0, 1.0);
PS0f = R126f.w;
// 1
PV1f.x = R7f.y + PV0f.x;
R123f.y = (mul_nonIEEE(R8f.z,PV0f.x) + R9f.z);
PV1f.y = R123f.y;
R123f.z = (mul_nonIEEE(R8f.y,PV0f.x) + R9f.w);
PV1f.z = R123f.z;
R123f.w = (mul_nonIEEE(R8f.x,PV0f.x) + R1f.x);
PV1f.w = R123f.w;
R127f.y = R11f.y * R3f.w;
R127f.y = clamp(R127f.y, 0.0, 1.0);
PS1f = R127f.y;
// 2
R123f.x = (mul_nonIEEE(R4f.x,R126f.y) + PV1f.w);
PV0f.x = R123f.x;
PV0f.y = PV1f.x + R126f.y;
R123f.z = (mul_nonIEEE(R4f.z,R126f.y) + PV1f.y);
PV0f.z = R123f.z;
R123f.w = (mul_nonIEEE(R4f.y,R126f.y) + PV1f.z);
PV0f.w = R123f.w;
R126f.y = max(R7f.w, 0.0);
PS0f = R126f.y;
// 3
PV1f.x = PV0f.y + R126f.z;
R123f.y = (mul_nonIEEE(R5f.z,R126f.z) + PV0f.z);
PV1f.y = R123f.y;
R123f.z = (mul_nonIEEE(R5f.y,R126f.z) + PV0f.w);
PV1f.z = R123f.z;
R123f.w = (mul_nonIEEE(R5f.x,R126f.z) + PV0f.x);
PV1f.w = R123f.w;
R5f.x = min(R127f.w, 1.0);
PS1f = R5f.x;
// 4
R8f.x = (mul_nonIEEE(R3f.x,R127f.y) + PV1f.w);
R4f.y = PV1f.x + R127f.y;
R8f.z = (mul_nonIEEE(R3f.z,R127f.y) + PV1f.y);
R3f.w = (mul_nonIEEE(R3f.y,R127f.y) + PV1f.z);
R5f.y = min(R126f.y, 1.0);
PS0f = R5f.y;
// 5
R123f.x = (-(R10f.y) * intBitsToFloat(0x41900000) + R0f.x);
R123f.x = clamp(R123f.x, 0.0, 1.0);
PV1f.x = R123f.x;
R123f.y = (R10f.z * intBitsToFloat(0x41900000) + R0f.y);
R123f.y = clamp(R123f.y, 0.0, 1.0);
PV1f.y = R123f.y;
R123f.z = (R10f.z * intBitsToFloat(0x41880000) + R0f.y);
R123f.z = clamp(R123f.z, 0.0, 1.0);
PV1f.z = R123f.z;
PV1f.w = max(R126f.w, 0.0);
R126f.w = (-(R10f.y) * intBitsToFloat(0x41980000) + R0f.x);
R126f.w = clamp(R126f.w, 0.0, 1.0);
PS1f = R126f.w;
// 6
backupReg0f = R0f.y;
R3f.x = min(PV1f.w, 1.0);
PV0f.y = max(PV1f.x, 0.0);
PV0f.z = max(PV1f.z, 0.0);
PV0f.w = max(PV1f.y, 0.0);
R122f.x = (R10f.z * intBitsToFloat(0x41980000) + backupReg0f);
R122f.x = clamp(R122f.x, 0.0, 1.0);
PS0f = R122f.x;
// 7
R4f.x = min(PV0f.y, 1.0);
R3f.y = min(PV0f.z, 1.0);
R4f.z = min(PV0f.w, 1.0);
PV1f.w = max(R126f.w, 0.0);
PS1f = max(PS0f, 0.0);
// 8
R1f.x = min(PV1f.w, 1.0);
R1f.y = min(PS1f, 1.0);
R3f.z = (-(R10f.y) * intBitsToFloat(0x41a00000) + R0f.x);
R3f.z = clamp(R3f.z, 0.0, 1.0);
R4f.w = (R10f.z * intBitsToFloat(0x41a00000) + R0f.y);
R4f.w = clamp(R4f.w, 0.0, 1.0);
R8f.w = (-(R10f.y) * intBitsToFloat(0x41a80000) + R0f.x);
R8f.w = clamp(R8f.w, 0.0, 1.0);
PS0f = R8f.w;
R5f.xyzw = (texture(textureUnitPS0, R5f.xy).xyzw);
R7f.xyzw = (texture(textureUnitPS0, R3f.xy).xyzw);
R9f.xyzw = (texture(textureUnitPS0, R4f.xz).xyzw);
R1f.xyzw = (texture(textureUnitPS0, R1f.xy).xyzw);
// 0
PV0f.x = R11f.y * R5f.w;
PV0f.x = clamp(PV0f.x, 0.0, 1.0);
R127f.y = R11f.y * R7f.w;
R127f.y = clamp(R127f.y, 0.0, 1.0);
R126f.z = R11f.y * R9f.w;
R126f.z = clamp(R126f.z, 0.0, 1.0);
R126f.w = max(R3f.z, 0.0);
R127f.z = (R10f.z * intBitsToFloat(0x41a80000) + R0f.y);
R127f.z = clamp(R127f.z, 0.0, 1.0);
PS0f = R127f.z;
// 1
PV1f.x = R4f.y + PV0f.x;
R123f.y = (mul_nonIEEE(R5f.z,PV0f.x) + R8f.z);
PV1f.y = R123f.y;
R123f.z = (mul_nonIEEE(R5f.y,PV0f.x) + R3f.w);
PV1f.z = R123f.z;
R123f.w = (mul_nonIEEE(R5f.x,PV0f.x) + R8f.x);
PV1f.w = R123f.w;
R126f.y = R11f.y * R1f.w;
R126f.y = clamp(R126f.y, 0.0, 1.0);
PS1f = R126f.y;
// 2
R123f.x = (mul_nonIEEE(R7f.x,R127f.y) + PV1f.w);
PV0f.x = R123f.x;
PV0f.y = PV1f.x + R127f.y;
R123f.z = (mul_nonIEEE(R7f.z,R127f.y) + PV1f.y);
PV0f.z = R123f.z;
R123f.w = (mul_nonIEEE(R7f.y,R127f.y) + PV1f.z);
PV0f.w = R123f.w;
R127f.y = max(R4f.w, 0.0);
PS0f = R127f.y;
// 3
PV1f.x = PV0f.y + R126f.z;
R123f.y = (mul_nonIEEE(R9f.z,R126f.z) + PV0f.z);
PV1f.y = R123f.y;
R123f.z = (mul_nonIEEE(R9f.y,R126f.z) + PV0f.w);
PV1f.z = R123f.z;
R123f.w = (mul_nonIEEE(R9f.x,R126f.z) + PV0f.x);
PV1f.w = R123f.w;
R9f.x = min(R126f.w, 1.0);
PS1f = R9f.x;
// 4
backupReg0f = R1f.z;
R7f.x = (mul_nonIEEE(R1f.x,R126f.y) + PV1f.w);
R7f.y = PV1f.x + R126f.y;
R1f.z = (mul_nonIEEE(backupReg0f,R126f.y) + PV1f.y);
R1f.w = (mul_nonIEEE(R1f.y,R126f.y) + PV1f.z);
R9f.y = min(R127f.y, 1.0);
PS0f = R9f.y;
// 5
R123f.x = (-(R10f.y) * intBitsToFloat(0x41b00000) + R0f.x);
R123f.x = clamp(R123f.x, 0.0, 1.0);
PV1f.x = R123f.x;
R123f.y = (R10f.z * intBitsToFloat(0x41b00000) + R0f.y);
R123f.y = clamp(R123f.y, 0.0, 1.0);
PV1f.y = R123f.y;
PV1f.z = max(R127f.z, 0.0);
PV1f.w = max(R8f.w, 0.0);
R126f.w = (-(R10f.y) * intBitsToFloat(0x41b80000) + R0f.x);
R126f.w = clamp(R126f.w, 0.0, 1.0);
PS1f = R126f.w;
// 6
backupReg0f = R0f.y;
R0f.x = min(PV1f.w, 1.0);
R0f.y = min(PV1f.z, 1.0);
PV0f.z = max(PV1f.x, 0.0);
PV0f.w = max(PV1f.y, 0.0);
R122f.x = (R10f.z * intBitsToFloat(0x41b80000) + backupReg0f);
R122f.x = clamp(R122f.x, 0.0, 1.0);
PS0f = R122f.x;
// 7
R10f.x = min(PV0f.z, 1.0);
R10f.y = min(PV0f.w, 1.0);
PV1f.z = max(PS0f, 0.0);
PV1f.w = max(R126f.w, 0.0);
R4f.w = R10f.w;
R4f.w *= 2.0;
PS1f = R4f.w;
// 8
R1f.x = min(PV1f.w, 1.0);
R1f.y = min(PV1f.z, 1.0);
R9f.xyzw = (texture(textureUnitPS0, R9f.xy).xyzw);
R0f.xyzw = (texture(textureUnitPS0, R0f.xy).xyzw);
R10f.xyzw = (texture(textureUnitPS0, R10f.xy).xyzw);
R8f.xyzw = (texture(textureUnitPS0, R1f.xy).xyzw);
// 0
PV0f.x = R11f.y * R9f.w;
PV0f.x = clamp(PV0f.x, 0.0, 1.0);
R127f.y = R11f.y * R0f.w;
R127f.y = clamp(R127f.y, 0.0, 1.0);
R127f.z = R11f.y * R10f.w;
R127f.z = clamp(R127f.z, 0.0, 1.0);
// 1
PV1f.x = R7f.y + PV0f.x;
R123f.y = (mul_nonIEEE(R9f.z,PV0f.x) + R1f.z);
PV1f.y = R123f.y;
R123f.z = (mul_nonIEEE(R9f.y,PV0f.x) + R1f.w);
PV1f.z = R123f.z;
R123f.w = (mul_nonIEEE(R9f.x,PV0f.x) + R7f.x);
PV1f.w = R123f.w;
R126f.y = R11f.y * R8f.w;
R126f.y = clamp(R126f.y, 0.0, 1.0);
PS1f = R126f.y;
// 2
backupReg0f = R0f.y;
R123f.x = (mul_nonIEEE(R0f.x,R127f.y) + PV1f.w);
PV0f.x = R123f.x;
PV0f.y = PV1f.x + R127f.y;
R123f.z = (mul_nonIEEE(R0f.z,R127f.y) + PV1f.y);
PV0f.z = R123f.z;
R123f.w = (mul_nonIEEE(backupReg0f,R127f.y) + PV1f.z);
PV0f.w = R123f.w;
// 3
PV1f.x = PV0f.y + R127f.z;
R123f.y = (mul_nonIEEE(R10f.z,R127f.z) + PV0f.z);
PV1f.y = R123f.y;
R123f.z = (mul_nonIEEE(R10f.y,R127f.z) + PV0f.w);
PV1f.z = R123f.z;
R123f.w = (mul_nonIEEE(R10f.x,R127f.z) + PV0f.x);
PV1f.w = R123f.w;
// 4
R127f.x = (mul_nonIEEE(R8f.x,R126f.y) + PV1f.w);
PV0f.y = PV1f.x + R126f.y;
R127f.z = (mul_nonIEEE(R8f.z,R126f.y) + PV1f.y);
R126f.w = (mul_nonIEEE(R8f.y,R126f.y) + PV1f.z);
// 5
PS1f = 1.0 / PV0f.y;
// 6
R4f.x = R127f.x * PS1f;
R4f.y = R126f.w * PS1f;
R4f.z = R127f.z * PS1f;
// export
passPixelColor0 = vec4(R4f.x, R4f.y, R4f.z, R4f.w);
}

View File

@ -1,27 +1,19 @@
#version 420 #version 430
#extension GL_ARB_texture_gather : enable #extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable #extension GL_ARB_separate_shader_objects : enable
// shader 284b1bf9010d4e57
// start of shader inputs/outputs, predetermined by Cemu. Do not touch
#ifdef VULKAN #ifdef VULKAN
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) #define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) #define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) #define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) #define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
#define gl_VertexID gl_VertexIndex
#define gl_InstanceID gl_InstanceIndex
#else #else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) #define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) #define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) #define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define SET_POSITION(_v) gl_Position = _v
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) #define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
#endif #endif
// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL.
// shader 284b1bf9010d4e57
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0;
layout(location = 0) in vec4 passParameterSem133;
layout(location = 0) out vec4 passPixelColor0;
#ifdef VULKAN #ifdef VULKAN
layout(set = 1, binding = 1) uniform ufBlock layout(set = 1, binding = 1) uniform ufBlock
{ {
@ -30,7 +22,10 @@ uniform vec4 uf_fragCoordScale;
#else #else
uniform vec2 uf_fragCoordScale; uniform vec2 uf_fragCoordScale;
#endif #endif
float scaleFactor = uf_fragCoordScale.x; TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0;
layout(location = 0) in vec4 passParameterSem133;
layout(location = 0) out vec4 passPixelColor0;
// end of shader inputs/outputs
int clampFI32(int v) int clampFI32(int v)
{ {
if( v == 0x7FFFFFFF ) if( v == 0x7FFFFFFF )
@ -39,7 +34,7 @@ else if( v == 0xFFFFFFFF )
return floatBitsToInt(0.0); return floatBitsToInt(0.0);
return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0));
} }
float mul_nonIEEE(float a, float b){return mix(0.0, a*b, (a != 0.0) && (b != 0.0));} float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; }
void main() void main()
{ {
ivec4 R0i = ivec4(0); ivec4 R0i = ivec4(0);
@ -66,21 +61,19 @@ activeMaskStackC[0] = true;
activeMaskStackC[1] = true; activeMaskStackC[1] = true;
vec3 cubeMapSTM; vec3 cubeMapSTM;
int cubeMapFaceId; int cubeMapFaceId;
R0i = floatBitsToInt(passParameterSem133); R0i = floatBitsToInt(passParameterSem133);
if( activeMaskStackC[1] == true ) { if( activeMaskStackC[1] == true ) {
// 0 // 0
R1i.x = floatBitsToInt(intBitsToFloat(R0i.x) + intBitsToFloat(0xba4ccccd)*scaleFactor); R1i.x = floatBitsToInt(intBitsToFloat(R0i.x) + intBitsToFloat(0xba4ccccd));
R1i.y = floatBitsToInt(intBitsToFloat(R0i.y) + 0.0); R1i.y = floatBitsToInt(intBitsToFloat(R0i.y) + 0.0);
R0i.z = floatBitsToInt(intBitsToFloat(R0i.x) + intBitsToFloat(0x3a4ccccd)*scaleFactor); R0i.z = floatBitsToInt(intBitsToFloat(R0i.x) + intBitsToFloat(0x3a4ccccd));
R0i.w = floatBitsToInt(intBitsToFloat(R0i.y) + 0.0); R0i.w = floatBitsToInt(intBitsToFloat(R0i.y) + 0.0);
R2i.x = floatBitsToInt(intBitsToFloat(R0i.x) + 0.0); R2i.x = floatBitsToInt(intBitsToFloat(R0i.x) + 0.0);
PS0i = R2i.x; PS0i = R2i.x;
// 1 // 1
R3i.x = floatBitsToInt(intBitsToFloat(R0i.x) + 0.0); R3i.x = floatBitsToInt(intBitsToFloat(R0i.x) + 0.0);
R2i.y = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(0xbab60b61)*scaleFactor); R2i.y = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(0xbab60b61));
R3i.zwy = floatBitsToInt(vec3(intBitsToFloat(R0i.y),intBitsToFloat(R0i.x),intBitsToFloat(R0i.y)) + vec3(intBitsToFloat(0x3ab60b61)*scaleFactor,0.0,0.0)); R3i.zwy = floatBitsToInt(vec3(intBitsToFloat(R0i.y),intBitsToFloat(R0i.x),intBitsToFloat(R0i.y)) + vec3(intBitsToFloat(0x3ab60b61),0.0,0.0));
PS1i = R3i.y; PS1i = R3i.y;
} }
if( activeMaskStackC[1] == true ) { if( activeMaskStackC[1] == true ) {
@ -122,7 +115,7 @@ PV0i.y = floatBitsToInt(intBitsToFloat(PV0i.y) * 4.0);
PV0i.z = floatBitsToInt(max(intBitsToFloat(PV1i.w), -(intBitsToFloat(PV1i.w)))); PV0i.z = floatBitsToInt(max(intBitsToFloat(PV1i.w), -(intBitsToFloat(PV1i.w))));
PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) * 4.0); PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) * 4.0);
// 5 // 5
R0i.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),-0.0),vec4(intBitsToFloat(0x3eaa7efa)*scaleFactor,intBitsToFloat(0x3eab020c)*scaleFactor,intBitsToFloat(0x3eaa7efa)*scaleFactor,0.0))); R0i.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),-0.0),vec4(intBitsToFloat(0x3eaa7efa),intBitsToFloat(0x3eab020c),intBitsToFloat(0x3eaa7efa),0.0)));
PV1i.x = R0i.x; PV1i.x = R0i.x;
PV1i.y = R0i.x; PV1i.y = R0i.x;
PV1i.z = R0i.x; PV1i.z = R0i.x;

View File

@ -0,0 +1,334 @@
#version 430
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
// shader 392cf5ae4c5cf942 //point "sprites" verified
// start of shader inputs/outputs, predetermined by Cemu. Do not touch
#ifdef VULKAN
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
#define gl_VertexID gl_VertexIndex
#define gl_InstanceID gl_InstanceIndex
#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define SET_POSITION(_v) gl_Position = _v
#endif
#ifdef VULKAN
layout(set = 0, binding = 0) uniform ufBlock
{
uniform ivec4 uf_remappedVS[17];
};
#else
uniform ivec4 uf_remappedVS[17];
#endif
ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0;
ATTR_LAYOUT(0, 1) in uvec4 attrDataSem5;
out gl_PerVertex
{
vec4 gl_Position;
float gl_PointSize;
};
layout(location = 0) out vec4 passParameterSem144;
// end of shader inputs/outputs
int clampFI32(int v)
{
if( v == 0x7FFFFFFF )
return floatBitsToInt(1.0);
else if( v == 0xFFFFFFFF )
return floatBitsToInt(0.0);
return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0));
}
float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; }
const float resScale = float($gameWidth / $width);
void main()
{
vec4 R0f = vec4(0.0);
vec4 R1f = vec4(0.0);
vec4 R2f = vec4(0.0);
vec4 R3f = vec4(0.0);
vec4 R4f = vec4(0.0);
vec4 R5f = vec4(0.0);
vec4 R123f = vec4(0.0);
vec4 R124f = vec4(0.0);
vec4 R125f = vec4(0.0);
vec4 R126f = vec4(0.0);
vec4 R127f = vec4(0.0);
uvec4 attrDecoder;
float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f;
vec4 PV0f = vec4(0.0), PV1f = vec4(0.0);
float PS0f = 0.0, PS1f = 0.0;
vec4 tempf = vec4(0.0);
float tempResultf;
int tempResulti;
ivec4 ARi = ivec4(0);
bool predResult = true;
vec3 cubeMapSTM;
int cubeMapFaceId;
R0f = floatBitsToInt(ivec4(gl_VertexID, 0, 0, gl_InstanceID));
attrDecoder.xyzw = attrDataSem0.xyzw;
attrDecoder = ((attrDecoder>>8)&0xFF)|((attrDecoder<<8)&0xFF00);
attrDecoder.xyzw = floatBitsToInt(vec4(unpackHalf2x16(attrDecoder.x|(attrDecoder.y<<16)),unpackHalf2x16(attrDecoder.z|(attrDecoder.w<<16))));
R1f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(int(attrDecoder.z)), intBitsToFloat(int(attrDecoder.w)));
attrDecoder.xyzw = attrDataSem5.xyzw;
attrDecoder = ((attrDecoder>>8)&0xFF)|((attrDecoder<<8)&0xFF00);
attrDecoder.xyzw = floatBitsToInt(vec4(unpackHalf2x16(attrDecoder.x|(attrDecoder.y<<16)),unpackHalf2x16(attrDecoder.z|(attrDecoder.w<<16))));
R2f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(int(attrDecoder.z)), intBitsToFloat(int(attrDecoder.w)));
// 0
PV0f.x = max(intBitsToFloat(uf_remappedVS[0].w), -(intBitsToFloat(uf_remappedVS[0].w)));
R127f.y = mul_nonIEEE(R2f.x, intBitsToFloat(uf_remappedVS[1].x));
R127f.z = mul_nonIEEE(R2f.y, intBitsToFloat(uf_remappedVS[1].y));
PV0f.w = max(R1f.w, -(R1f.w));
R3f.w = 1.0;
PS0f = R3f.w;
// 1
R0f.x = -(intBitsToFloat(uf_remappedVS[2].x)) * intBitsToFloat(0x7f7ffffd);
R0f.x = clamp(R0f.x, 0.0, 1.0);
R125f.y = -(intBitsToFloat(uf_remappedVS[2].y)) * intBitsToFloat(0x7f7ffffd);
R125f.y = clamp(R125f.y, 0.0, 1.0);
PV1f.z = mul_nonIEEE(PV0f.w, intBitsToFloat(uf_remappedVS[3].y));
R125f.w = max(intBitsToFloat(uf_remappedVS[2].x), -(intBitsToFloat(uf_remappedVS[2].x)));
tempResultf = max(0.0, PV0f.x);
tempResultf = log2(tempResultf);
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
R126f.z = tempResultf;
PS1f = R126f.z;
// 2
PV0f.y = -(PV1f.z) + intBitsToFloat(uf_remappedVS[3].x);
R5f.z = 0.0;
R127f.w = mul_nonIEEE(R2f.z, intBitsToFloat(uf_remappedVS[1].z));
// 3
backupReg0f = R127f.y;
R124f.x = max(PV0f.y, 0.0);
PV1f.x = R124f.x;
R127f.y = R127f.z + intBitsToFloat(uf_remappedVS[0].y);
R127f.z = backupReg0f + intBitsToFloat(uf_remappedVS[0].x);
R124f.w = max(intBitsToFloat(uf_remappedVS[2].y), -(intBitsToFloat(uf_remappedVS[2].y)));
// 4
PV0f.x = mul_nonIEEE(PV1f.x, intBitsToFloat(uf_remappedVS[4].x));
PV0f.y = mul_nonIEEE(PV1f.x, R126f.z);
PV0f.z = mul_nonIEEE(PV1f.x, intBitsToFloat(uf_remappedVS[4].z));
PV0f.w = mul_nonIEEE(PV1f.x, intBitsToFloat(uf_remappedVS[4].y));
R126f.w = PV1f.x + -(intBitsToFloat(0x3a83126f));
PS0f = R126f.w;
// 5
PV1f.x = R2f.w + PV0f.w;
PV1f.y = R2f.w + PV0f.x;
R124f.z = -(intBitsToFloat(uf_remappedVS[2].z)) * intBitsToFloat(0x7f7ffffd);
R124f.z = clamp(R124f.z, 0.0, 1.0);
PV1f.w = R2f.w + PV0f.z;
PS1f = exp2(PV0f.y);
// 6
PV0f.x = PV1f.w * intBitsToFloat(0x40c90fdb);
PV0f.y = PV1f.x * intBitsToFloat(0x40c90fdb);
PV0f.z = PV1f.y * intBitsToFloat(0x40c90fdb);
PV0f.w = -(PS1f) + 1.0;
R127f.x = R127f.w + intBitsToFloat(uf_remappedVS[0].z);
PS0f = R127f.x;
// 7
R123f.x = (PV0f.y * intBitsToFloat(0x3e22f983) + 0.5);
PV1f.x = R123f.x;
R123f.y = (PV0f.x * intBitsToFloat(0x3e22f983) + 0.5);
PV1f.y = R123f.y;
R126f.z = mul_nonIEEE(PV0f.w, intBitsToFloat(uf_remappedVS[1].w));
PV1f.z = R126f.z;
R123f.w = (PV0f.z * intBitsToFloat(0x3e22f983) + 0.5);
PV1f.w = R123f.w;
R2f.w = max(intBitsToFloat(uf_remappedVS[2].z), -(intBitsToFloat(uf_remappedVS[2].z)));
PS1f = R2f.w;
// 8
PV0f.x = fract(PV1f.y);
R124f.y = mul_nonIEEE(PV1f.z, R127f.z);
PV0f.z = fract(PV1f.w);
PV0f.w = fract(PV1f.x);
R2f.z = mul_nonIEEE(PV1f.z, R127f.y);
PS0f = R2f.z;
// 9
R126f.x = mul_nonIEEE(R124f.x, intBitsToFloat(uf_remappedVS[5].x));
R123f.y = (PV0f.z * intBitsToFloat(0x40c90fdb) + -(intBitsToFloat(0x40490fdb)));
PV1f.y = R123f.y;
R123f.z = (PV0f.w * intBitsToFloat(0x40c90fdb) + -(intBitsToFloat(0x40490fdb)));
PV1f.z = R123f.z;
R123f.w = (PV0f.x * intBitsToFloat(0x40c90fdb) + -(intBitsToFloat(0x40490fdb)));
PV1f.w = R123f.w;
R127f.z = mul_nonIEEE(R124f.x, intBitsToFloat(uf_remappedVS[5].y));
PS1f = R127f.z;
// 10
R2f.x = PV1f.z * intBitsToFloat(0x3e22f983);
R126f.y = PV1f.w * intBitsToFloat(0x3e22f983);
R125f.z = PV1f.y * intBitsToFloat(0x3e22f983);
PV0f.z = R125f.z;
R127f.w = mul_nonIEEE(R1f.x, intBitsToFloat(uf_remappedVS[6].x));
R125f.x = mul_nonIEEE(R1f.y, intBitsToFloat(uf_remappedVS[6].y));
PS0f = R125f.x;
// 11
backupReg0f = R127f.z;
PV1f.x = mul_nonIEEE(R124f.x, intBitsToFloat(uf_remappedVS[5].z));
R2f.y = mul_nonIEEE(R126f.z, R127f.x);
R127f.z = mul_nonIEEE(R124f.x, R126f.x);
R0f.w = mul_nonIEEE(R124f.x, backupReg0f);
R127f.y = sin((PV0f.z)/0.1591549367);
PS1f = R127f.y;
// 12
backupReg0f = R125f.x;
R125f.x = mul_nonIEEE(R124f.x, PV1f.x);
R1f.y = backupReg0f + intBitsToFloat(uf_remappedVS[7].y);
R126f.z = R127f.w + intBitsToFloat(uf_remappedVS[7].x);
PV0f.w = mul_nonIEEE(R1f.z, intBitsToFloat(uf_remappedVS[6].z));
R127f.w = sin((R2f.x)/0.1591549367);
PS0f = R127f.w;
// 13
backupReg0f = R124f.x;
R124f.x = PV0f.w + intBitsToFloat(uf_remappedVS[7].z);
R123f.y = (mul_nonIEEE(backupReg0f,intBitsToFloat(uf_remappedVS[8].x)) + intBitsToFloat(uf_remappedVS[8].y));
PV1f.y = R123f.y;
R1f.z = R126f.w * intBitsToFloat(0x7f7ffffd);
R1f.z = clamp(R1f.z, 0.0, 1.0);
PS1f = cos((R125f.z)/0.1591549367);
// 14
PV0f.y = floor(PV1f.y);
PV0f.w = -(R127f.y) + PS1f;
PS0f = cos((R2f.x)/0.1591549367);
// 15
R123f.x = (mul_nonIEEE(PV0f.w,R0f.x) + R127f.y);
PV1f.x = R123f.x;
PV1f.y = mul_nonIEEE(PV0f.y, intBitsToFloat(uf_remappedVS[9].x));
PV1f.z = -(R127f.w) + PS0f;
R127f.y = sin((R126f.y)/0.1591549367);
PS1f = R127f.y;
// 16
PV0f.x = fract(PV1f.y);
PV0f.y = mul_nonIEEE(R125f.w, PV1f.x);
PV0f.z = floor(PV1f.y);
R123f.w = (mul_nonIEEE(PV1f.z,R125f.y) + R127f.w);
PV0f.w = R123f.w;
PS0f = cos((R126f.y)/0.1591549367);
// 17
PV1f.x = mul_nonIEEE(R124f.w, PV0f.w);
PV1f.y = -(R127f.y) + PS0f;
PV1f.z = R124f.y + PV0f.y;
PV1f.w = mul_nonIEEE(PV0f.x, intBitsToFloat(uf_remappedVS[10].x));
R5f.y = mul_nonIEEE(PV0f.z, intBitsToFloat(uf_remappedVS[9].y));
PS1f = R5f.y;
// 18
PV0f.x = PV1f.z + R127f.z;
PV0f.y = R2f.z + PV1f.x;
R123f.z = (mul_nonIEEE(PV1f.y,R124f.z) + R127f.y);
PV0f.z = R123f.z;
PV0f.w = floor(PV1f.w);
// 19
PV1f.x = PV0f.y + R0f.w;
PV1f.z = R126f.z + PV0f.x;
PV1f.w = mul_nonIEEE(R2f.w, PV0f.z);
R5f.x = mul_nonIEEE(PV0f.w, intBitsToFloat(uf_remappedVS[9].x));
PS1f = R5f.x;
// 20
PV0f.x = R2f.y + PV1f.w;
PV0f.y = R1f.y + PV1f.x;
R2f.z = fract(PV1f.z);
PV0f.z = R2f.z;
// 21
PV1f.x = PV0f.z + -(1.0);
R2f.y = fract(PV0f.y);
PV1f.y = R2f.y;
R126f.z = mul_nonIEEE(PV0f.z, intBitsToFloat(uf_remappedVS[11].w));
R126f.z = clamp(R126f.z, 0.0, 1.0);
PV1f.w = PV0f.x + R125f.x;
// 22
PV0f.x = R124f.x + PV1f.w;
PV0f.y = max(PV1f.x, -(PV1f.x));
PV0f.z = mul_nonIEEE(PV1f.y, intBitsToFloat(uf_remappedVS[11].w));
PV0f.z = clamp(PV0f.z, 0.0, 1.0);
PV0f.w = PV1f.y + -(1.0);
// 23
PV1f.x = max(PV0f.w, -(PV0f.w));
R127f.y = mul_nonIEEE(PV0f.y, intBitsToFloat(uf_remappedVS[11].w));
R127f.y = clamp(R127f.y, 0.0, 1.0);
R0f.z = fract(PV0f.x);
PV1f.z = R0f.z;
R124f.w = min(R126f.z, PV0f.z);
// 24
PV0f.x = mul_nonIEEE(PV1f.z, intBitsToFloat(uf_remappedVS[11].w));
PV0f.x = clamp(PV0f.x, 0.0, 1.0);
PV0f.y = mul_nonIEEE(PV1f.x, intBitsToFloat(uf_remappedVS[11].w));
PV0f.y = clamp(PV0f.y, 0.0, 1.0);
PV0f.z = PV1f.z + -(1.0);
// 25
R0f.x = min(R127f.y, PV0f.y);
R1f.y = min(PV0f.x, R124f.w);
R0f.w = max(PV0f.z, -(PV0f.z));
// 0
PV0f.x = mul_nonIEEE(R0f.w, intBitsToFloat(uf_remappedVS[11].w));
PV0f.x = clamp(PV0f.x, 0.0, 1.0);
// 1
PV1f.z = min(PV0f.x, R0f.x);
// 2
backupReg0f = R0f.z;
tempf.x = dot(vec4(R2f.z,R2f.y,backupReg0f,R3f.w),vec4(intBitsToFloat(uf_remappedVS[12].x),intBitsToFloat(uf_remappedVS[12].y),intBitsToFloat(uf_remappedVS[12].z),intBitsToFloat(uf_remappedVS[12].w)));
PV0f.x = tempf.x;
PV0f.y = tempf.x;
PV0f.z = tempf.x;
PV0f.w = tempf.x;
R4f.w = tempf.x;
PS0f = mul_nonIEEE(PV1f.z, R1f.y);
// 3
PV1f.y = PV0f.x + -(intBitsToFloat(uf_remappedVS[2].w));
R126f.z = mul_nonIEEE(R1f.z, PS0f);
// 4
PV0f.x = mul_nonIEEE(PV1f.y, intBitsToFloat(uf_remappedVS[13].w));
PV0f.x = clamp(PV0f.x, 0.0, 1.0);
// 5
R5f.w = mul_nonIEEE(R126f.z, PV0f.x);
PV1f.w = R5f.w;
// 6
PV0f.z = PV1f.w + -(intBitsToFloat(0x3a83126f));
// 7
tempf.x = dot(vec4(R2f.z,R2f.y,R0f.z,R3f.w),vec4(intBitsToFloat(uf_remappedVS[14].x),intBitsToFloat(uf_remappedVS[14].y),intBitsToFloat(uf_remappedVS[14].z),intBitsToFloat(uf_remappedVS[14].w)));
PV1f.x = tempf.x;
PV1f.y = tempf.x;
PV1f.z = tempf.x;
PV1f.w = tempf.x;
R4f.z = tempf.x;
R124f.w = PV0f.z * intBitsToFloat(0x7f7ffffd);
R124f.w = clamp(R124f.w, 0.0, 1.0);
PS1f = R124f.w;
// 8
PV0f.y = -(PS1f) + 1.0;
R124f.x = 1.0 / PV1f.x;
PS0f = R124f.x;
// 9
backupReg0f = R0f.z;
tempf.x = dot(vec4(R2f.z,R2f.y,backupReg0f,R3f.w),vec4(intBitsToFloat(uf_remappedVS[15].x),intBitsToFloat(uf_remappedVS[15].y),intBitsToFloat(uf_remappedVS[15].z),intBitsToFloat(uf_remappedVS[15].w)));
PV1f.x = tempf.x;
PV1f.y = tempf.x;
PV1f.z = tempf.x;
PV1f.w = tempf.x;
R126f.z = PV0f.y * intBitsToFloat(0x7f7ffffd);
PS1f = R126f.z;
// 10
backupReg0f = R0f.z;
tempf.x = dot(vec4(R2f.z,R2f.y,backupReg0f,R3f.w),vec4(intBitsToFloat(uf_remappedVS[16].x),intBitsToFloat(uf_remappedVS[16].y),intBitsToFloat(uf_remappedVS[16].z),intBitsToFloat(uf_remappedVS[16].w)));
PV0f.x = tempf.x;
PV0f.y = tempf.x;
PV0f.z = tempf.x;
PV0f.w = tempf.x;
R4f.x = PV1f.x + PS1f;
PS0f = R4f.x;
// 11
R4f.y = PV0f.x + R126f.z;
PV1f.w = R124f.x * intBitsToFloat(uf_remappedVS[11].z);
// 12
R0f.x = mul_nonIEEE(R124f.w, PV1f.w);
// export
SET_POSITION(vec4(R4f.x, R4f.y, R4f.z, R4f.w));
// export
gl_PointSize = (vec4(R0f.x, R0f.y, R0f.y, R0f.y)).x/resScale;
// export
passParameterSem144 = vec4(R5f.x, R5f.y, R5f.z, R5f.w);
// 0
}

View File

@ -1,26 +1,19 @@
#version 420 #version 430
#extension GL_ARB_texture_gather : enable #extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable #extension GL_ARB_separate_shader_objects : enable
// shader 43a2239f07af804e
// start of shader inputs/outputs, predetermined by Cemu. Do not touch
#ifdef VULKAN #ifdef VULKAN
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) #define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) #define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) #define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) #define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
#define gl_VertexID gl_VertexIndex
#define gl_InstanceID gl_InstanceIndex
#else #else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) #define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) #define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) #define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define SET_POSITION(_v) gl_Position = _v
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) #define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
#endif #endif
// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL.
// shader 43a2239f07af804e
//horizontal blur
const float resScale = float($height)/float($gameHeight);
#ifdef VULKAN #ifdef VULKAN
layout(set = 1, binding = 1) uniform ufBlock layout(set = 1, binding = 1) uniform ufBlock
{ {
@ -34,7 +27,8 @@ uniform vec2 uf_fragCoordScale;
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0;
layout(location = 0) in vec4 passParameterSem133; layout(location = 0) in vec4 passParameterSem133;
layout(location = 0) out vec4 passPixelColor0; layout(location = 0) out vec4 passPixelColor0;
// uf_fragCoordScale was moved to the ufBlock const float resScale = ($gameWidth / $width);
// end of shader inputs/outputs
int clampFI32(int v) int clampFI32(int v)
{ {
if( v == 0x7FFFFFFF ) if( v == 0x7FFFFFFF )
@ -70,17 +64,17 @@ R4f.xyzw = (texture(textureUnitPS0, R0f.xy).xyzw);
R5f.x = intBitsToFloat(uf_remappedPS[0].x) + -(intBitsToFloat(uf_remappedPS[1].x)); R5f.x = intBitsToFloat(uf_remappedPS[0].x) + -(intBitsToFloat(uf_remappedPS[1].x));
R5f.w = intBitsToFloat(uf_remappedPS[0].y) + -(intBitsToFloat(uf_remappedPS[1].y)); R5f.w = intBitsToFloat(uf_remappedPS[0].y) + -(intBitsToFloat(uf_remappedPS[1].y));
// 1 // 1
R1f.x = R0f.x + intBitsToFloat(0x3c333333)/ resScale; R1f.x = R0f.x + intBitsToFloat(0x3c333333)*resScale;
R1f.y = R0f.y; R1f.y = R0f.y;
R5f.z = intBitsToFloat(uf_remappedPS[0].z) + -(intBitsToFloat(uf_remappedPS[1].z)); R5f.z = intBitsToFloat(uf_remappedPS[0].z) + -(intBitsToFloat(uf_remappedPS[1].z));
R2f.w = R0f.y; R2f.w = R0f.y;
R2f.x = R0f.x + intBitsToFloat(0x3b99999a)/ resScale; R2f.x = R0f.x + intBitsToFloat(0x3b99999a)*resScale;
PS1f = R2f.x; PS1f = R2f.x;
// 2 // 2
backupReg0f = R0f.x; backupReg0f = R0f.x;
R3f.x = R0f.x + -(intBitsToFloat(0x3c333333)/ resScale); R3f.x = R0f.x + -(intBitsToFloat(0x3c333333)*resScale);
R3f.y = R0f.y; R3f.y = R0f.y;
R0f.x = backupReg0f + -(intBitsToFloat(0x3b99999a)/ resScale); R0f.x = backupReg0f + -(intBitsToFloat(0x3b99999a)*resScale);
PS0f = R0f.x; PS0f = R0f.x;
R1f.xyzw = (texture(textureUnitPS0, R1f.xy).xyzw); R1f.xyzw = (texture(textureUnitPS0, R1f.xy).xyzw);
R2f.xyzw = (texture(textureUnitPS0, R2f.xw).xyzw); R2f.xyzw = (texture(textureUnitPS0, R2f.xw).xyzw);

View File

@ -1,580 +0,0 @@
#version 420
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
#define gl_VertexID gl_VertexIndex
#define gl_InstanceID gl_InstanceIndex
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define SET_POSITION(_v) gl_Position = _v
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
#endif
// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL.
// shader 73ac09c3fff4b657
//cut scene vert blur //redundant?
const float resScale = float($height)/float($gameHeight);
#ifdef VULKAN
layout(set = 1, binding = 1) uniform ufBlock
{
uniform ivec4 uf_remappedPS[2];
uniform vec4 uf_fragCoordScale;
};
#else
uniform ivec4 uf_remappedPS[2];
uniform vec2 uf_fragCoordScale;
#endif
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0;
layout(location = 0) in vec4 passParameterSem133;
layout(location = 0) out vec4 passPixelColor0;
// uf_fragCoordScale was moved to the ufBlock
int clampFI32(int v)
{
if( v == 0x7FFFFFFF )
return floatBitsToInt(1.0);
else if( v == 0xFFFFFFFF )
return floatBitsToInt(0.0);
return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0));
}
float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; }
void main()
{
vec4 R0f = vec4(0.0);
vec4 R1f = vec4(0.0);
vec4 R2f = vec4(0.0);
vec4 R3f = vec4(0.0);
vec4 R4f = vec4(0.0);
vec4 R5f = vec4(0.0);
vec4 R6f = vec4(0.0);
vec4 R7f = vec4(0.0);
vec4 R8f = vec4(0.0);
vec4 R123f = vec4(0.0);
vec4 R126f = vec4(0.0);
vec4 R127f = vec4(0.0);
float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f;
vec4 PV0f = vec4(0.0), PV1f = vec4(0.0);
float PS0f = 0.0, PS1f = 0.0;
vec4 tempf = vec4(0.0);
float tempResultf;
int tempResulti;
ivec4 ARi = ivec4(0);
bool predResult = true;
vec3 cubeMapSTM;
int cubeMapFaceId;
R0f = passParameterSem133;
R4f.xyzw = (texture(textureUnitPS0, R0f.xy).xyzw);
// 0
backupReg0f = R0f.y;
R8f.x = mul_nonIEEE(R4f.w, intBitsToFloat(uf_remappedPS[0].x)/ resScale);
PV0f.x = R8f.x;
PV0f.y = max(R0f.x, 0.0);
PV0f.z = backupReg0f + 0.0;
PV0f.z = clamp(PV0f.z, 0.0, 1.0);
PV0f.w = max(R4f.w, intBitsToFloat(0x3a83126f));
R127f.w = max(R0f.x, 0.0);
PS0f = R127f.w;
// 1
backupReg0f = R0f.x;
PV1f.x = max(PV0f.z, 0.0);
PV1f.y = max(backupReg0f, 0.0);
R1f.z = min(PV0f.y, 1.0);
R8f.w = mul_nonIEEE(PV0f.x, intBitsToFloat(uf_remappedPS[1].y)/ resScale);
PV1f.w = R8f.w;
R8f.z = 1.0 / PV0f.w;
PS1f = R8f.z;
// 2
PV0f.x = R0f.y + PV1f.w;
PV0f.x = clamp(PV0f.x, 0.0, 1.0);
R1f.y = min(PV1f.x, 1.0);
R2f.z = min(R127f.w, 1.0);
R123f.w = (PV1f.w * 2.0 + R0f.y);
R123f.w = clamp(R123f.w, 0.0, 1.0);
PV0f.w = R123f.w;
R3f.x = min(PV1f.y, 1.0);
PS0f = R3f.x;
// 3
backupReg0f = R0f.x;
PV1f.x = max(PV0f.w, 0.0);
R123f.y = (R8f.w * intBitsToFloat(0x40400000)/ + R0f.y);
R123f.y = clamp(R123f.y, 0.0, 1.0);
PV1f.y = R123f.y;
PV1f.z = max(PV0f.x, 0.0);
PV1f.w = max(backupReg0f, 0.0);
R127f.x = (R8f.w * 4.0 + R0f.y);
R127f.x = clamp(R127f.x, 0.0, 1.0);
PS1f = R127f.x;
// 4
backupReg0f = R0f.x;
PV0f.x = max(PV1f.y, 0.0);
R2f.y = min(PV1f.z, 1.0);
R3f.z = min(PV1f.x, 1.0);
R3f.w = min(PV1f.w, 1.0);
PS0f = max(backupReg0f, 0.0);
// 5
R6f.x = min(PS0f, 1.0);
R3f.y = min(PV0f.x, 1.0);
R0f.z = max(R127f.x, 0.0);
R0f.w = (R8f.w * intBitsToFloat(0x40a00000) + R0f.y);
R0f.w = clamp(R0f.w, 0.0, 1.0);
R6f.w = max(R0f.x, 0.0);
PS1f = R6f.w;
R1f.xyzw = (texture(textureUnitPS0, R1f.zy).xyzw);
R2f.xyzw = (texture(textureUnitPS0, R2f.zy).xyzw);
R5f.xyzw = (texture(textureUnitPS0, R3f.xz).xyzw);
R3f.xyzw = (texture(textureUnitPS0, R3f.wy).xyzw);
// 0
R127f.x = R8f.z * R5f.w;
R127f.x = clamp(R127f.x, 0.0, 1.0);
PV0f.y = R1f.w * R8f.z;
PV0f.y = clamp(PV0f.y, 0.0, 1.0);
R127f.w = R8f.z * R2f.w;
R127f.w = clamp(R127f.w, 0.0, 1.0);
R6f.y = min(R0f.z, 1.0);
PS0f = R6f.y;
// 1
R123f.x = (mul_nonIEEE(R1f.x,PV0f.y) + R4f.x);
PV1f.x = R123f.x;
PV1f.y = PV0f.y + 1.0;
R123f.z = (mul_nonIEEE(R1f.z,PV0f.y) + R4f.z);
PV1f.z = R123f.z;
R123f.w = (mul_nonIEEE(R1f.y,PV0f.y) + R4f.y);
PV1f.w = R123f.w;
R127f.y = R8f.z * R3f.w;
R127f.y = clamp(R127f.y, 0.0, 1.0);
PS1f = R127f.y;
// 2
backupReg0f = R0f.w;
R123f.x = (mul_nonIEEE(R2f.z,R127f.w) + PV1f.z);
PV0f.x = R123f.x;
R123f.y = (mul_nonIEEE(R2f.y,R127f.w) + PV1f.w);
PV0f.y = R123f.y;
R123f.z = (mul_nonIEEE(R2f.x,R127f.w) + PV1f.x);
PV0f.z = R123f.z;
PV0f.w = PV1f.y + R127f.w;
R127f.z = max(backupReg0f, 0.0);
PS0f = R127f.z;
// 3
R123f.x = (mul_nonIEEE(R5f.z,R127f.x) + PV0f.x);
PV1f.x = R123f.x;
R123f.y = (mul_nonIEEE(R5f.y,R127f.x) + PV0f.y);
PV1f.y = R123f.y;
R123f.z = (mul_nonIEEE(R5f.x,R127f.x) + PV0f.z);
PV1f.z = R123f.z;
PV1f.w = PV0f.w + R127f.x;
R5f.x = min(R6f.w, 1.0);
PS1f = R5f.x;
// 4
R2f.x = (mul_nonIEEE(R3f.x,R127f.y) + PV1f.z);
R2f.y = PV1f.w + R127f.y;
R2f.z = (mul_nonIEEE(R3f.z,R127f.y) + PV1f.x);
R3f.w = (mul_nonIEEE(R3f.y,R127f.y) + PV1f.y);
R5f.y = min(R127f.z, 1.0);
PS0f = R5f.y;
// 5
backupReg0f = R0f.y;
backupReg0f = R0f.y;
R123f.x = (R8f.w * intBitsToFloat(0x40e00000) + R0f.y);
R123f.x = clamp(R123f.x, 0.0, 1.0);
PV1f.x = R123f.x;
PV1f.y = max(R0f.x, 0.0);
R123f.z = (R8f.w * intBitsToFloat(0x40c00000) + backupReg0f);
R123f.z = clamp(R123f.z, 0.0, 1.0);
PV1f.z = R123f.z;
PV1f.w = max(R0f.x, 0.0);
R127f.x = (R8f.w * intBitsToFloat(0x41000000) + backupReg0f);
R127f.x = clamp(R127f.x, 0.0, 1.0);
PS1f = R127f.x;
// 6
backupReg0f = R0f.x;
PV0f.x = max(PV1f.z, 0.0);
PV0f.y = max(PV1f.x, 0.0);
R3f.z = min(PV1f.y, 1.0);
R5f.w = min(PV1f.w, 1.0);
PS0f = max(backupReg0f, 0.0);
// 7
R3f.x = max(R127f.x, 0.0);
R3f.y = min(PV0f.x, 1.0);
R5f.z = min(PV0f.y, 1.0);
R0f.w = min(PS0f, 1.0);
R4f.x = (R8f.w * intBitsToFloat(0x41100000) + R0f.y);
R4f.x = clamp(R4f.x, 0.0, 1.0);
PS1f = R4f.x;
R6f.xyzw = (texture(textureUnitPS0, R6f.xy).xyzw);
R1f.xyzw = (texture(textureUnitPS0, R5f.xy).xyzw);
R7f.xyzw = (texture(textureUnitPS0, R3f.zy).xyzw);
R5f.xyzw = (texture(textureUnitPS0, R5f.wz).xyzw);
// 0
R127f.x = R8f.z * R7f.w;
R127f.x = clamp(R127f.x, 0.0, 1.0);
PV0f.y = R8f.z * R6f.w;
PV0f.y = clamp(PV0f.y, 0.0, 1.0);
R0f.z = min(R3f.x, 1.0);
R127f.w = R8f.z * R1f.w;
R127f.w = clamp(R127f.w, 0.0, 1.0);
R126f.w = max(R0f.x, 0.0);
PS0f = R126f.w;
// 1
R123f.x = (mul_nonIEEE(R6f.x,PV0f.y) + R2f.x);
PV1f.x = R123f.x;
PV1f.y = R2f.y + PV0f.y;
R123f.z = (mul_nonIEEE(R6f.z,PV0f.y) + R2f.z);
PV1f.z = R123f.z;
R123f.w = (mul_nonIEEE(R6f.y,PV0f.y) + R3f.w);
PV1f.w = R123f.w;
R127f.y = R8f.z * R5f.w;
R127f.y = clamp(R127f.y, 0.0, 1.0);
PS1f = R127f.y;
// 2
R123f.x = (mul_nonIEEE(R1f.z,R127f.w) + PV1f.z);
PV0f.x = R123f.x;
R123f.y = (mul_nonIEEE(R1f.y,R127f.w) + PV1f.w);
PV0f.y = R123f.y;
R123f.z = (mul_nonIEEE(R1f.x,R127f.w) + PV1f.x);
PV0f.z = R123f.z;
PV0f.w = PV1f.y + R127f.w;
R127f.z = max(R4f.x, 0.0);
PS0f = R127f.z;
// 3
R123f.x = (mul_nonIEEE(R7f.z,R127f.x) + PV0f.x);
PV1f.x = R123f.x;
R123f.y = (mul_nonIEEE(R7f.y,R127f.x) + PV0f.y);
PV1f.y = R123f.y;
R123f.z = (mul_nonIEEE(R7f.x,R127f.x) + PV0f.z);
PV1f.z = R123f.z;
PV1f.w = PV0f.w + R127f.x;
R7f.x = min(R126f.w, 1.0);
PS1f = R7f.x;
// 4
R1f.x = (mul_nonIEEE(R5f.x,R127f.y) + PV1f.z);
R1f.y = PV1f.w + R127f.y;
R1f.z = (mul_nonIEEE(R5f.z,R127f.y) + PV1f.x);
R5f.w = (mul_nonIEEE(R5f.y,R127f.y) + PV1f.y);
R7f.y = min(R127f.z, 1.0);
PS0f = R7f.y;
// 5
backupReg0f = R0f.y;
backupReg0f = R0f.y;
R123f.x = (R8f.w * intBitsToFloat(0x41300000) + R0f.y);
R123f.x = clamp(R123f.x, 0.0, 1.0);
PV1f.x = R123f.x;
PV1f.y = max(R0f.x, 0.0);
R123f.z = (R8f.w * intBitsToFloat(0x41200000) + backupReg0f);
R123f.z = clamp(R123f.z, 0.0, 1.0);
PV1f.z = R123f.z;
PV1f.w = max(R0f.x, 0.0);
R127f.x = (R8f.w * intBitsToFloat(0x41400000) + backupReg0f);
R127f.x = clamp(R127f.x, 0.0, 1.0);
PS1f = R127f.x;
// 6
backupReg0f = R0f.x;
PV0f.x = max(PV1f.z, 0.0);
PV0f.y = max(PV1f.x, 0.0);
R5f.z = min(PV1f.y, 1.0);
R7f.w = min(PV1f.w, 1.0);
PS0f = max(backupReg0f, 0.0);
// 7
R5f.x = max(R127f.x, 0.0);
R5f.y = min(PV0f.x, 1.0);
R7f.z = min(PV0f.y, 1.0);
R6f.w = min(PS0f, 1.0);
R6f.x = (R8f.w * intBitsToFloat(0x41500000) + R0f.y);
R6f.x = clamp(R6f.x, 0.0, 1.0);
PS1f = R6f.x;
R4f.xyzw = (texture(textureUnitPS0, R0f.wz).xyzw);
R2f.xyzw = (texture(textureUnitPS0, R7f.xy).xyzw);
R3f.xyzw = (texture(textureUnitPS0, R5f.zy).xyzw);
R7f.xyzw = (texture(textureUnitPS0, R7f.wz).xyzw);
// 0
R127f.x = R8f.z * R3f.w;
R127f.x = clamp(R127f.x, 0.0, 1.0);
PV0f.y = R8f.z * R4f.w;
PV0f.y = clamp(PV0f.y, 0.0, 1.0);
R6f.z = min(R5f.x, 1.0);
R126f.w = R8f.z * R2f.w;
R126f.w = clamp(R126f.w, 0.0, 1.0);
R127f.w = max(R0f.x, 0.0);
PS0f = R127f.w;
// 1
R123f.x = (mul_nonIEEE(R4f.x,PV0f.y) + R1f.x);
PV1f.x = R123f.x;
PV1f.y = R1f.y + PV0f.y;
R123f.z = (mul_nonIEEE(R4f.z,PV0f.y) + R1f.z);
PV1f.z = R123f.z;
R123f.w = (mul_nonIEEE(R4f.y,PV0f.y) + R5f.w);
PV1f.w = R123f.w;
R127f.y = R8f.z * R7f.w;
R127f.y = clamp(R127f.y, 0.0, 1.0);
PS1f = R127f.y;
// 2
R123f.x = (mul_nonIEEE(R2f.z,R126f.w) + PV1f.z);
PV0f.x = R123f.x;
R123f.y = (mul_nonIEEE(R2f.y,R126f.w) + PV1f.w);
PV0f.y = R123f.y;
R123f.z = (mul_nonIEEE(R2f.x,R126f.w) + PV1f.x);
PV0f.z = R123f.z;
PV0f.w = PV1f.y + R126f.w;
R127f.z = max(R6f.x, 0.0);
PS0f = R127f.z;
// 3
R123f.x = (mul_nonIEEE(R3f.z,R127f.x) + PV0f.x);
PV1f.x = R123f.x;
R123f.y = (mul_nonIEEE(R3f.y,R127f.x) + PV0f.y);
PV1f.y = R123f.y;
R123f.z = (mul_nonIEEE(R3f.x,R127f.x) + PV0f.z);
PV1f.z = R123f.z;
PV1f.w = PV0f.w + R127f.x;
R3f.x = min(R127f.w, 1.0);
PS1f = R3f.x;
// 4
R2f.x = (mul_nonIEEE(R7f.x,R127f.y) + PV1f.z);
R2f.y = PV1f.w + R127f.y;
R2f.z = (mul_nonIEEE(R7f.z,R127f.y) + PV1f.x);
R7f.w = (mul_nonIEEE(R7f.y,R127f.y) + PV1f.y);
R3f.y = min(R127f.z, 1.0);
PS0f = R3f.y;
// 5
backupReg0f = R0f.y;
backupReg0f = R0f.y;
R123f.x = (R8f.w * intBitsToFloat(0x41700000) + R0f.y);
R123f.x = clamp(R123f.x, 0.0, 1.0);
PV1f.x = R123f.x;
PV1f.y = max(R0f.x, 0.0);
R123f.z = (R8f.w * intBitsToFloat(0x41600000) + backupReg0f);
R123f.z = clamp(R123f.z, 0.0, 1.0);
PV1f.z = R123f.z;
PV1f.w = max(R0f.x, 0.0);
R127f.x = (R8f.w * intBitsToFloat(0x41800000) + backupReg0f);
R127f.x = clamp(R127f.x, 0.0, 1.0);
PS1f = R127f.x;
// 6
backupReg0f = R0f.x;
PV0f.x = max(PV1f.z, 0.0);
PV0f.y = max(PV1f.x, 0.0);
R7f.z = min(PV1f.y, 1.0);
R3f.w = min(PV1f.w, 1.0);
PS0f = max(backupReg0f, 0.0);
// 7
R7f.x = max(R127f.x, 0.0);
R7f.y = min(PV0f.x, 1.0);
R3f.z = min(PV0f.y, 1.0);
R4f.w = min(PS0f, 1.0);
R4f.x = (R8f.w * intBitsToFloat(0x41880000) + R0f.y);
R4f.x = clamp(R4f.x, 0.0, 1.0);
PS1f = R4f.x;
R6f.xyzw = (texture(textureUnitPS0, R6f.wz).xyzw);
R1f.xyzw = (texture(textureUnitPS0, R3f.xy).xyzw);
R5f.xyzw = (texture(textureUnitPS0, R7f.zy).xyzw);
R3f.xyzw = (texture(textureUnitPS0, R3f.wz).xyzw);
// 0
R127f.x = R8f.z * R5f.w;
R127f.x = clamp(R127f.x, 0.0, 1.0);
PV0f.y = R8f.z * R6f.w;
PV0f.y = clamp(PV0f.y, 0.0, 1.0);
R4f.z = min(R7f.x, 1.0);
R127f.w = R8f.z * R1f.w;
R127f.w = clamp(R127f.w, 0.0, 1.0);
R126f.w = max(R0f.x, 0.0);
PS0f = R126f.w;
// 1
R123f.x = (mul_nonIEEE(R6f.x,PV0f.y) + R2f.x);
PV1f.x = R123f.x;
PV1f.y = R2f.y + PV0f.y;
R123f.z = (mul_nonIEEE(R6f.z,PV0f.y) + R2f.z);
PV1f.z = R123f.z;
R123f.w = (mul_nonIEEE(R6f.y,PV0f.y) + R7f.w);
PV1f.w = R123f.w;
R127f.y = R8f.z * R3f.w;
R127f.y = clamp(R127f.y, 0.0, 1.0);
PS1f = R127f.y;
// 2
R123f.x = (mul_nonIEEE(R1f.z,R127f.w) + PV1f.z);
PV0f.x = R123f.x;
R123f.y = (mul_nonIEEE(R1f.y,R127f.w) + PV1f.w);
PV0f.y = R123f.y;
R123f.z = (mul_nonIEEE(R1f.x,R127f.w) + PV1f.x);
PV0f.z = R123f.z;
PV0f.w = PV1f.y + R127f.w;
R127f.z = max(R4f.x, 0.0);
PS0f = R127f.z;
// 3
R123f.x = (mul_nonIEEE(R5f.z,R127f.x) + PV0f.x);
PV1f.x = R123f.x;
R123f.y = (mul_nonIEEE(R5f.y,R127f.x) + PV0f.y);
PV1f.y = R123f.y;
R123f.z = (mul_nonIEEE(R5f.x,R127f.x) + PV0f.z);
PV1f.z = R123f.z;
PV1f.w = PV0f.w + R127f.x;
R5f.x = min(R126f.w, 1.0);
PS1f = R5f.x;
// 4
R1f.x = (mul_nonIEEE(R3f.x,R127f.y) + PV1f.z);
R1f.y = PV1f.w + R127f.y;
R1f.z = (mul_nonIEEE(R3f.z,R127f.y) + PV1f.x);
R3f.w = (mul_nonIEEE(R3f.y,R127f.y) + PV1f.y);
R5f.y = min(R127f.z, 1.0);
PS0f = R5f.y;
// 5
backupReg0f = R0f.y;
backupReg0f = R0f.y;
R123f.x = (R8f.w * intBitsToFloat(0x41980000) + R0f.y);
R123f.x = clamp(R123f.x, 0.0, 1.0);
PV1f.x = R123f.x;
PV1f.y = max(R0f.x, 0.0);
R123f.z = (R8f.w * intBitsToFloat(0x41900000) + backupReg0f);
R123f.z = clamp(R123f.z, 0.0, 1.0);
PV1f.z = R123f.z;
PV1f.w = max(R0f.x, 0.0);
R127f.x = (R8f.w * intBitsToFloat(0x41a00000) + backupReg0f);
R127f.x = clamp(R127f.x, 0.0, 1.0);
PS1f = R127f.x;
// 6
backupReg0f = R0f.x;
PV0f.x = max(PV1f.z, 0.0);
PV0f.y = max(PV1f.x, 0.0);
R3f.z = min(PV1f.y, 1.0);
R5f.w = min(PV1f.w, 1.0);
PS0f = max(backupReg0f, 0.0);
// 7
R3f.x = max(R127f.x, 0.0);
R3f.y = min(PV0f.x, 1.0);
R5f.z = min(PV0f.y, 1.0);
R6f.w = min(PS0f, 1.0);
R6f.x = (R8f.w * intBitsToFloat(0x41a80000) + R0f.y);
R6f.x = clamp(R6f.x, 0.0, 1.0);
PS1f = R6f.x;
R4f.xyzw = (texture(textureUnitPS0, R4f.wz).xyzw);
R2f.xyzw = (texture(textureUnitPS0, R5f.xy).xyzw);
R7f.xyzw = (texture(textureUnitPS0, R3f.zy).xyzw);
R5f.xyzw = (texture(textureUnitPS0, R5f.wz).xyzw);
// 0
R127f.x = R8f.z * R7f.w;
R127f.x = clamp(R127f.x, 0.0, 1.0);
PV0f.y = R8f.z * R4f.w;
PV0f.y = clamp(PV0f.y, 0.0, 1.0);
R6f.z = min(R3f.x, 1.0);
R126f.w = R8f.z * R2f.w;
R126f.w = clamp(R126f.w, 0.0, 1.0);
R127f.w = max(R0f.x, 0.0);
PS0f = R127f.w;
// 1
R123f.x = (mul_nonIEEE(R4f.x,PV0f.y) + R1f.x);
PV1f.x = R123f.x;
PV1f.y = R1f.y + PV0f.y;
R123f.z = (mul_nonIEEE(R4f.z,PV0f.y) + R1f.z);
PV1f.z = R123f.z;
R123f.w = (mul_nonIEEE(R4f.y,PV0f.y) + R3f.w);
PV1f.w = R123f.w;
R127f.y = R8f.z * R5f.w;
R127f.y = clamp(R127f.y, 0.0, 1.0);
PS1f = R127f.y;
// 2
R123f.x = (mul_nonIEEE(R2f.z,R126f.w) + PV1f.z);
PV0f.x = R123f.x;
R123f.y = (mul_nonIEEE(R2f.y,R126f.w) + PV1f.w);
PV0f.y = R123f.y;
R123f.z = (mul_nonIEEE(R2f.x,R126f.w) + PV1f.x);
PV0f.z = R123f.z;
PV0f.w = PV1f.y + R126f.w;
R127f.z = max(R6f.x, 0.0);
PS0f = R127f.z;
// 3
R123f.x = (mul_nonIEEE(R7f.z,R127f.x) + PV0f.x);
PV1f.x = R123f.x;
R123f.y = (mul_nonIEEE(R7f.y,R127f.x) + PV0f.y);
PV1f.y = R123f.y;
R123f.z = (mul_nonIEEE(R7f.x,R127f.x) + PV0f.z);
PV1f.z = R123f.z;
PV1f.w = PV0f.w + R127f.x;
R7f.x = min(R127f.w, 1.0);
PS1f = R7f.x;
// 4
backupReg0f = R5f.x;
backupReg1f = R5f.z;
backupReg2f = R5f.y;
R5f.x = (mul_nonIEEE(backupReg0f,R127f.y) + PV1f.z);
R5f.y = PV1f.w + R127f.y;
R5f.z = (mul_nonIEEE(backupReg1f,R127f.y) + PV1f.x);
R5f.w = (mul_nonIEEE(backupReg2f,R127f.y) + PV1f.y);
R7f.y = min(R127f.z, 1.0);
PS0f = R7f.y;
// 5
backupReg0f = R0f.y;
R123f.x = (R8f.w * intBitsToFloat(0x41b80000) + R0f.y);
R123f.x = clamp(R123f.x, 0.0, 1.0);
PV1f.x = R123f.x;
PV1f.y = max(R0f.x, 0.0);
R123f.z = (R8f.w * intBitsToFloat(0x41b00000) + backupReg0f);
R123f.z = clamp(R123f.z, 0.0, 1.0);
PV1f.z = R123f.z;
PV1f.w = max(R0f.x, 0.0);
R1f.w = R8f.x;
R1f.w *= 2.0;
PS1f = R1f.w;
// 6
PV0f.x = max(PV1f.z, 0.0);
PV0f.y = max(PV1f.x, 0.0);
R0f.z = min(PV1f.y, 1.0);
R0f.w = min(PV1f.w, 1.0);
// 7
R0f.x = min(PV0f.y, 1.0);
R0f.y = min(PV0f.x, 1.0);
R6f.xyzw = (texture(textureUnitPS0, R6f.wz).xyzw);
R7f.xyzw = (texture(textureUnitPS0, R7f.xy).xyzw);
R2f.xyzw = (texture(textureUnitPS0, R0f.zy).xyzw);
R0f.xyzw = (texture(textureUnitPS0, R0f.wx).xyzw);
// 0
R127f.x = R8f.z * R2f.w;
R127f.x = clamp(R127f.x, 0.0, 1.0);
PV0f.y = R8f.z * R6f.w;
PV0f.y = clamp(PV0f.y, 0.0, 1.0);
R127f.w = R8f.z * R7f.w;
R127f.w = clamp(R127f.w, 0.0, 1.0);
// 1
R123f.x = (mul_nonIEEE(R6f.x,PV0f.y) + R5f.x);
PV1f.x = R123f.x;
PV1f.y = R5f.y + PV0f.y;
R123f.z = (mul_nonIEEE(R6f.z,PV0f.y) + R5f.z);
PV1f.z = R123f.z;
R123f.w = (mul_nonIEEE(R6f.y,PV0f.y) + R5f.w);
PV1f.w = R123f.w;
R127f.y = R8f.z * R0f.w;
R127f.y = clamp(R127f.y, 0.0, 1.0);
PS1f = R127f.y;
// 2
R123f.x = (mul_nonIEEE(R7f.z,R127f.w) + PV1f.z);
PV0f.x = R123f.x;
R123f.y = (mul_nonIEEE(R7f.y,R127f.w) + PV1f.w);
PV0f.y = R123f.y;
R123f.z = (mul_nonIEEE(R7f.x,R127f.w) + PV1f.x);
PV0f.z = R123f.z;
PV0f.w = PV1f.y + R127f.w;
// 3
R123f.x = (mul_nonIEEE(R2f.z,R127f.x) + PV0f.x);
PV1f.x = R123f.x;
R123f.y = (mul_nonIEEE(R2f.y,R127f.x) + PV0f.y);
PV1f.y = R123f.y;
R123f.z = (mul_nonIEEE(R2f.x,R127f.x) + PV0f.z);
PV1f.z = R123f.z;
PV1f.w = PV0f.w + R127f.x;
// 4
backupReg0f = R0f.y;
R127f.x = (mul_nonIEEE(R0f.x,R127f.y) + PV1f.z);
PV0f.y = PV1f.w + R127f.y;
R127f.z = (mul_nonIEEE(R0f.z,R127f.y) + PV1f.x);
R127f.w = (mul_nonIEEE(backupReg0f,R127f.y) + PV1f.y);
// 5
PS1f = 1.0 / PV0f.y;
// 6
R1f.x = R127f.x * PS1f;
R1f.y = R127f.w * PS1f;
R1f.z = R127f.z * PS1f;
// export
passPixelColor0 = vec4(R1f.x, R1f.y, R1f.z, R1f.w);
}

View File

@ -1,26 +1,19 @@
#version 420 #version 430
#extension GL_ARB_texture_gather : enable #extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable #extension GL_ARB_separate_shader_objects : enable
// shader 75387173950c1793//bloom vert
// start of shader inputs/outputs, predetermined by Cemu. Do not touch
#ifdef VULKAN #ifdef VULKAN
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) #define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) #define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) #define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) #define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
#define gl_VertexID gl_VertexIndex
#define gl_InstanceID gl_InstanceIndex
#else #else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) #define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) #define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) #define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define SET_POSITION(_v) gl_Position = _v
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) #define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
#endif #endif
// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL.
// shader 75387173950c1793
//vert blur
const float resScale = float($height)/float($gameHeight);
#ifdef VULKAN #ifdef VULKAN
layout(set = 1, binding = 1) uniform ufBlock layout(set = 1, binding = 1) uniform ufBlock
{ {
@ -34,7 +27,8 @@ uniform vec2 uf_fragCoordScale;
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0;
layout(location = 0) in vec4 passParameterSem133; layout(location = 0) in vec4 passParameterSem133;
layout(location = 0) out vec4 passPixelColor0; layout(location = 0) out vec4 passPixelColor0;
// uf_fragCoordScale was moved to the ufBlock // end of shader inputs/outputs
const float resScale = float($gameWidth / $width);
int clampFI32(int v) int clampFI32(int v)
{ {
if( v == 0x7FFFFFFF ) if( v == 0x7FFFFFFF )
@ -66,14 +60,14 @@ R0f = passParameterSem133;
R4f.xyzw = (texture(textureUnitPS0, R0f.xy).xyzw); R4f.xyzw = (texture(textureUnitPS0, R0f.xy).xyzw);
// 0 // 0
R1f.x = R0f.x; R1f.x = R0f.x;
R1f.y = R0f.y + intBitsToFloat(0x3ca2e8ba)/ resScale; R1f.y = R0f.y + intBitsToFloat(0x3ca2e8ba)*resScale;
R2f.z = R0f.x; R2f.z = R0f.x;
R2f.y = R0f.y + intBitsToFloat(0x3c0ba2e9)/ resScale; R2f.y = R0f.y + intBitsToFloat(0x3c0ba2e9)*resScale;
PS0f = R2f.y; PS0f = R2f.y;
// 1 // 1
R3f.x = R0f.x; R3f.x = R0f.x;
R3f.y = R0f.y + -(intBitsToFloat(0x3ca2e8ba)/ resScale); R3f.y = R0f.y + -(intBitsToFloat(0x3ca2e8ba))*resScale;
R0f.z = R0f.y + -(intBitsToFloat(0x3c0ba2e9)/ resScale); R0f.z = R0f.y + -(intBitsToFloat(0x3c0ba2e9))*resScale;
R1f.xyzw = (texture(textureUnitPS0, R1f.xy).xyzw); R1f.xyzw = (texture(textureUnitPS0, R1f.xy).xyzw);
R2f.xyzw = (texture(textureUnitPS0, R2f.zy).xyzw); R2f.xyzw = (texture(textureUnitPS0, R2f.zy).xyzw);
R3f.xyzw = (texture(textureUnitPS0, R3f.xy).xyzw); R3f.xyzw = (texture(textureUnitPS0, R3f.xy).xyzw);

View File

@ -1,28 +1,19 @@
#version 420 #version 430
#extension GL_ARB_texture_gather : enable #extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable #extension GL_ARB_separate_shader_objects : enable
// shader 78a2659662685d55 //menu AA
// start of shader inputs/outputs, predetermined by Cemu. Do not touch
#ifdef VULKAN #ifdef VULKAN
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) #define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) #define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) #define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) #define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
#define gl_VertexID gl_VertexIndex
#define gl_InstanceID gl_InstanceIndex
#else #else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) #define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) #define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) #define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define SET_POSITION(_v) gl_Position = _v
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) #define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
#endif #endif
// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL.
// shader 78a2659662685d55
//specular highlight
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0;
layout(location = 0) in vec4 passParameterSem133;
layout(location = 0) out vec4 passPixelColor0;
#ifdef VULKAN #ifdef VULKAN
layout(set = 1, binding = 1) uniform ufBlock layout(set = 1, binding = 1) uniform ufBlock
{ {
@ -31,7 +22,11 @@ uniform vec4 uf_fragCoordScale;
#else #else
uniform vec2 uf_fragCoordScale; uniform vec2 uf_fragCoordScale;
#endif #endif
float scaleFactor = uf_fragCoordScale.x; TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0;
layout(location = 0) in vec4 passParameterSem133;
layout(location = 0) out vec4 passPixelColor0;
const float resScale = ($gameWidth / $width);
// end of shader inputs/outputs
int clampFI32(int v) int clampFI32(int v)
{ {
if( v == 0x7FFFFFFF ) if( v == 0x7FFFFFFF )
@ -96,14 +91,14 @@ int cubeMapFaceId;
R0i = floatBitsToInt(passParameterSem133); R0i = floatBitsToInt(passParameterSem133);
if( activeMaskStackC[1] == true ) { if( activeMaskStackC[1] == true ) {
// 0 // 0
R1i.xyz = floatBitsToInt(vec3(intBitsToFloat(R0i.x),intBitsToFloat(R0i.y),intBitsToFloat(R0i.x)) + vec3(0.0,0.0,intBitsToFloat(0xba99999a))*scaleFactor); R1i.xyz = floatBitsToInt(vec3(intBitsToFloat(R0i.x),intBitsToFloat(R0i.y),intBitsToFloat(R0i.x)) + vec3(0.0,0.0,intBitsToFloat(0xba99999a)*resScale));
R1i.w = floatBitsToInt(intBitsToFloat(R0i.y) + 0.0); R1i.w = floatBitsToInt(intBitsToFloat(R0i.y) + 0.0);
R2i.x = floatBitsToInt(intBitsToFloat(R0i.x) + intBitsToFloat(0x3a99999a)*scaleFactor); R2i.x = floatBitsToInt(intBitsToFloat(R0i.x) + intBitsToFloat(0x3a99999a)*resScale);
PS0i = R2i.x; PS0i = R2i.x;
// 1 // 1
R3i.x = floatBitsToInt(intBitsToFloat(R0i.x) + 0.0); R3i.x = floatBitsToInt(intBitsToFloat(R0i.x) + 0.0);
R2i.y = floatBitsToInt(intBitsToFloat(R0i.y) + 0.0); R2i.y = floatBitsToInt(intBitsToFloat(R0i.y) + 0.0);
R3i.zwy = floatBitsToInt(vec3(intBitsToFloat(R0i.y),intBitsToFloat(R0i.x),intBitsToFloat(R0i.y)) + vec3(intBitsToFloat(0xbb088889)*scaleFactor,0.0,intBitsToFloat(0x3b088889)*scaleFactor)); R3i.zwy = floatBitsToInt(vec3(intBitsToFloat(R0i.y),intBitsToFloat(R0i.x),intBitsToFloat(R0i.y)) + vec3(intBitsToFloat(0xbb088889)*resScale,0.0,intBitsToFloat(0x3b088889)*resScale));
PS1i = R3i.y; PS1i = R3i.y;
} }
if( activeMaskStackC[1] == true ) { if( activeMaskStackC[1] == true ) {
@ -123,7 +118,7 @@ R127i.z = floatBitsToInt(intBitsToFloat(R8i.y) + intBitsToFloat(R9i.y));
R127i.z = floatBitsToInt(intBitsToFloat(R127i.z) * 2.0); R127i.z = floatBitsToInt(intBitsToFloat(R127i.z) * 2.0);
R127i.w = floatBitsToInt(intBitsToFloat(R8i.x) + intBitsToFloat(R9i.x)); R127i.w = floatBitsToInt(intBitsToFloat(R8i.x) + intBitsToFloat(R9i.x));
R127i.w = floatBitsToInt(intBitsToFloat(R127i.w) * 2.0); R127i.w = floatBitsToInt(intBitsToFloat(R127i.w) * 2.0);
R3i.x = floatBitsToInt(intBitsToFloat(R0i.x) + intBitsToFloat(0xba4ccccd)*scaleFactor); R3i.x = floatBitsToInt(intBitsToFloat(R0i.x) + intBitsToFloat(0xba4ccccd)*resScale);
PS0i = R3i.x; PS0i = R3i.x;
// 1 // 1
R5i.x = floatBitsToInt(intBitsToFloat(R10i.z) + intBitsToFloat(R11i.z)); R5i.x = floatBitsToInt(intBitsToFloat(R10i.z) + intBitsToFloat(R11i.z));
@ -137,15 +132,15 @@ R4i.w = floatBitsToInt(intBitsToFloat(R4i.w) * 2.0);
R3i.y = floatBitsToInt(intBitsToFloat(R0i.y) + 0.0); R3i.y = floatBitsToInt(intBitsToFloat(R0i.y) + 0.0);
PS1i = R3i.y; PS1i = R3i.y;
// 2 // 2
R2i.x = floatBitsToInt(intBitsToFloat(R0i.x) + intBitsToFloat(0x3a4ccccd)*scaleFactor); R2i.x = floatBitsToInt(intBitsToFloat(R0i.x) + intBitsToFloat(0x3a4ccccd)*resScale);
R2i.y = floatBitsToInt(intBitsToFloat(R0i.y) + 0.0); R2i.y = floatBitsToInt(intBitsToFloat(R0i.y) + 0.0);
R3i.z = floatBitsToInt(intBitsToFloat(R0i.x) + 0.0); R3i.z = floatBitsToInt(intBitsToFloat(R0i.x) + 0.0);
R3i.w = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(0xbab60b61)*scaleFactor); R3i.w = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(0xbab60b61)*resScale);
R1i.x = floatBitsToInt(intBitsToFloat(R0i.x) + 0.0); R1i.x = floatBitsToInt(intBitsToFloat(R0i.x) + 0.0);
PS0i = R1i.x; PS0i = R1i.x;
// 3 // 3
R4i.x = floatBitsToInt((intBitsToFloat(R7i.y) * 2.0 + intBitsToFloat(R127i.z))); R4i.x = floatBitsToInt((intBitsToFloat(R7i.y) * 2.0 + intBitsToFloat(R127i.z)));
R1i.y = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(0x3ab60b61)*scaleFactor); R1i.y = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(0x3ab60b61)*resScale);
R1i.z = floatBitsToInt((intBitsToFloat(R7i.x) * 2.0 + intBitsToFloat(R127i.w))); R1i.z = floatBitsToInt((intBitsToFloat(R7i.x) * 2.0 + intBitsToFloat(R127i.w)));
R1i.w = floatBitsToInt((intBitsToFloat(R7i.z) * 2.0 + intBitsToFloat(R127i.y))); R1i.w = floatBitsToInt((intBitsToFloat(R7i.z) * 2.0 + intBitsToFloat(R127i.y)));
R2i.w = floatBitsToInt((intBitsToFloat(R7i.w) * 2.0 + intBitsToFloat(R127i.x))); R2i.w = floatBitsToInt((intBitsToFloat(R7i.w) * 2.0 + intBitsToFloat(R127i.x)));
@ -198,7 +193,7 @@ R127i.w = floatBitsToInt(max(intBitsToFloat(PV1i.z), -(intBitsToFloat(PV1i.z))))
R127i.z = floatBitsToInt(intBitsToFloat(R1i.w) * intBitsToFloat(0x3e2aaaab)); R127i.z = floatBitsToInt(intBitsToFloat(R1i.w) * intBitsToFloat(0x3e2aaaab));
PS0i = R127i.z; PS0i = R127i.z;
// 5 // 5
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R126i.y),intBitsToFloat(PV0i.z),-0.0),vec4(intBitsToFloat(0x3e991687)*scaleFactor,intBitsToFloat(0x3f1645a2)*scaleFactor,intBitsToFloat(0x3de978d5)*scaleFactor,0.0))); tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R126i.y),intBitsToFloat(PV0i.z),-0.0),vec4(intBitsToFloat(0x3e991687),intBitsToFloat(0x3f1645a2),intBitsToFloat(0x3de978d5),0.0)));
PV1i.x = tempi.x; PV1i.x = tempi.x;
PV1i.y = tempi.x; PV1i.y = tempi.x;
PV1i.z = tempi.x; PV1i.z = tempi.x;
@ -229,7 +224,7 @@ R124i.y = floatBitsToInt(intBitsToFloat(R125i.y) * intBitsToFloat(0x3e2aaaab));
R125i.z = floatBitsToInt(intBitsToFloat(R126i.x) * intBitsToFloat(0x3e2aaaab)); R125i.z = floatBitsToInt(intBitsToFloat(R126i.x) * intBitsToFloat(0x3e2aaaab));
R123i.w = floatBitsToInt((intBitsToFloat(R7i.w) * 2.0 + intBitsToFloat(R4i.y))); R123i.w = floatBitsToInt((intBitsToFloat(R7i.w) * 2.0 + intBitsToFloat(R4i.y)));
PV0i.w = R123i.w; PV0i.w = R123i.w;
R126i.w = floatBitsToInt((intBitsToFloat(backupReg1i) * intBitsToFloat(0x40400000) + -(intBitsToFloat(0x3dcccccd)*scaleFactor))); R126i.w = floatBitsToInt((intBitsToFloat(backupReg1i) * intBitsToFloat(0x40400000) + -(intBitsToFloat(0x3dcccccd)*resScale)));
PS0i = R126i.w; PS0i = R126i.w;
// 9 // 9
backupReg0i = R125i.x; backupReg0i = R125i.x;
@ -237,12 +232,12 @@ backupReg1i = R127i.w;
R125i.x = floatBitsToInt(-(intBitsToFloat(R7i.y)) + intBitsToFloat(R1i.y)); R125i.x = floatBitsToInt(-(intBitsToFloat(R7i.y)) + intBitsToFloat(R1i.y));
R125i.y = floatBitsToInt(-(intBitsToFloat(R7i.z)) + intBitsToFloat(R127i.z)); R125i.y = floatBitsToInt(-(intBitsToFloat(R7i.z)) + intBitsToFloat(R127i.z));
R124i.z = floatBitsToInt(intBitsToFloat(PV0i.w) * intBitsToFloat(0x3e2aaaab)); R124i.z = floatBitsToInt(intBitsToFloat(PV0i.w) * intBitsToFloat(0x3e2aaaab));
R127i.w = floatBitsToInt((intBitsToFloat(backupReg0i) * intBitsToFloat(0x40400000) + -(intBitsToFloat(0x3dcccccd)*scaleFactor))); R127i.w = floatBitsToInt((intBitsToFloat(backupReg0i) * intBitsToFloat(0x40400000) + -(intBitsToFloat(0x3dcccccd)*resScale)));
R126i.z = floatBitsToInt(-(intBitsToFloat(R7i.w)) + intBitsToFloat(backupReg1i)); R126i.z = floatBitsToInt(-(intBitsToFloat(R7i.w)) + intBitsToFloat(backupReg1i));
PS1i = R126i.z; PS1i = R126i.z;
// 10 // 10
backupReg0i = R0i.y; backupReg0i = R0i.y;
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R124i.y),intBitsToFloat(R125i.z),-0.0),vec4(intBitsToFloat(0x3e991687)*scaleFactor,intBitsToFloat(0x3f1645a2)*scaleFactor,intBitsToFloat(0x3de978d5)*scaleFactor,0.0))); tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R124i.y),intBitsToFloat(R125i.z),-0.0),vec4(intBitsToFloat(0x3e991687),intBitsToFloat(0x3f1645a2),intBitsToFloat(0x3de978d5),0.0)));
PV0i.x = tempi.x; PV0i.x = tempi.x;
PV0i.y = tempi.x; PV0i.y = tempi.x;
PV0i.z = tempi.x; PV0i.z = tempi.x;
@ -250,7 +245,7 @@ PV0i.w = tempi.x;
R4i.y = floatBitsToInt(intBitsToFloat(backupReg0i) + 0.0); R4i.y = floatBitsToInt(intBitsToFloat(backupReg0i) + 0.0);
PS0i = R4i.y; PS0i = R4i.y;
// 11 // 11
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R124i.x),intBitsToFloat(R1i.y),intBitsToFloat(R127i.z),-0.0),vec4(intBitsToFloat(0x3e991687)*scaleFactor,intBitsToFloat(0x3f1645a2)*scaleFactor,intBitsToFloat(0x3de978d5)*scaleFactor,0.0))); tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R124i.x),intBitsToFloat(R1i.y),intBitsToFloat(R127i.z),-0.0),vec4(intBitsToFloat(0x3e991687),intBitsToFloat(0x3f1645a2),intBitsToFloat(0x3de978d5),0.0)));
PV1i.x = tempi.x; PV1i.x = tempi.x;
PV1i.y = tempi.x; PV1i.y = tempi.x;
PV1i.z = tempi.x; PV1i.z = tempi.x;
@ -260,8 +255,8 @@ PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.x));
R124i.x = floatBitsToInt(intBitsToFloat(R126i.w) * intBitsToFloat(PS1i)); R124i.x = floatBitsToInt(intBitsToFloat(R126i.w) * intBitsToFloat(PS1i));
R124i.x = clampFI32(R124i.x); R124i.x = clampFI32(R124i.x);
R1i.y = floatBitsToInt(intBitsToFloat(R0i.y) + 0.0); R1i.y = floatBitsToInt(intBitsToFloat(R0i.y) + 0.0);
R4i.z = floatBitsToInt(intBitsToFloat(R0i.x) + intBitsToFloat(0x3b333333)*scaleFactor); R4i.z = floatBitsToInt(intBitsToFloat(R0i.x) + intBitsToFloat(0x3b333333)*resScale);
R1i.w = floatBitsToInt(intBitsToFloat(R0i.x) + intBitsToFloat(0x3b8ccccd)*scaleFactor); R1i.w = floatBitsToInt(intBitsToFloat(R0i.x) + intBitsToFloat(0x3b8ccccd)*resScale);
PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.x)); PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.x));
// 13 // 13
backupReg0i = R0i.x; backupReg0i = R0i.x;
@ -269,8 +264,8 @@ backupReg0i = R0i.x;
PV1i.x = floatBitsToInt(intBitsToFloat(R127i.w) * intBitsToFloat(PS0i)); PV1i.x = floatBitsToInt(intBitsToFloat(R127i.w) * intBitsToFloat(PS0i));
PV1i.x = clampFI32(PV1i.x); PV1i.x = clampFI32(PV1i.x);
R2i.y = floatBitsToInt(intBitsToFloat(R0i.y) + 0.0); R2i.y = floatBitsToInt(intBitsToFloat(R0i.y) + 0.0);
R2i.z = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(0x3bc00000)*scaleFactor); R2i.z = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(0x3bc00000));
R3i.w = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(0xbb333333)*scaleFactor); R3i.w = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(0xbb333333));
R3i.y = floatBitsToInt(intBitsToFloat(R0i.y) + 0.0); R3i.y = floatBitsToInt(intBitsToFloat(R0i.y) + 0.0);
PS1i = R3i.y; PS1i = R3i.y;
// 14 // 14
@ -284,7 +279,7 @@ R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat
PV0i.z = R126i.z; PV0i.z = R126i.z;
R125i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg1i),intBitsToFloat(PV1i.x)) + intBitsToFloat(R7i.x))); R125i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg1i),intBitsToFloat(PV1i.x)) + intBitsToFloat(R7i.x)));
PV0i.w = R125i.w; PV0i.w = R125i.w;
R5i.x = floatBitsToInt(intBitsToFloat(R0i.x) + intBitsToFloat(0xbb8ccccd)*scaleFactor); R5i.x = floatBitsToInt(intBitsToFloat(R0i.x) + intBitsToFloat(0xbb8ccccd));
PS0i = R5i.x; PS0i = R5i.x;
// 15 // 15
backupReg0i = R0i.y; backupReg0i = R0i.y;
@ -303,7 +298,7 @@ R16i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(R124i
R16i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(R124i.x)) + intBitsToFloat(R126i.z))); R16i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(R124i.x)) + intBitsToFloat(R126i.z)));
R16i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(R124i.x)) + intBitsToFloat(R125i.x))); R16i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(R124i.x)) + intBitsToFloat(R125i.x)));
R16i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(R124i.x)) + intBitsToFloat(R125i.y))); R16i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(R124i.x)) + intBitsToFloat(R125i.y)));
R6i.x = floatBitsToInt(intBitsToFloat(R0i.x) + intBitsToFloat(0xbbc00000)*scaleFactor); R6i.x = floatBitsToInt(intBitsToFloat(R0i.x) + intBitsToFloat(0xbbc00000));
PS0i = R6i.x; PS0i = R6i.x;
} }
if( activeMaskStackC[1] == true ) { if( activeMaskStackC[1] == true ) {
@ -317,15 +312,15 @@ if( activeMaskStackC[1] == true ) {
// 0 // 0
R5i.x = floatBitsToInt(intBitsToFloat(R0i.x) + 0.0); R5i.x = floatBitsToInt(intBitsToFloat(R0i.x) + 0.0);
R6i.y = floatBitsToInt(intBitsToFloat(R0i.y) + 0.0); R6i.y = floatBitsToInt(intBitsToFloat(R0i.y) + 0.0);
R5i.z = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(0x3b9f49f5)*scaleFactor); R5i.z = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(0x3b9f49f5)*resScale);
PV0i.w = floatBitsToInt(intBitsToFloat(R9i.w) + intBitsToFloat(R17i.w)); PV0i.w = floatBitsToInt(intBitsToFloat(R9i.w) + intBitsToFloat(R17i.w));
R3i.x = floatBitsToInt(intBitsToFloat(R0i.x) + 0.0); R3i.x = floatBitsToInt(intBitsToFloat(R0i.x) + 0.0);
PS0i = R3i.x; PS0i = R3i.x;
// 1 // 1
R1i.x = floatBitsToInt(intBitsToFloat(R0i.x) + 0.0); R1i.x = floatBitsToInt(intBitsToFloat(R0i.x) + 0.0);
R3i.y = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(0x3bfa4fa5)*scaleFactor); R3i.y = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(0x3bfa4fa5)*resScale);
R2i.z = floatBitsToInt(intBitsToFloat(R18i.w) + intBitsToFloat(PV0i.w)); R2i.z = floatBitsToInt(intBitsToFloat(R18i.w) + intBitsToFloat(PV0i.w));
R1i.w = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(0x3c2aaaab)*scaleFactor); R1i.w = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(0x3c2aaaab)*resScale);
R4i.x = floatBitsToInt(intBitsToFloat(R0i.x) + 0.0); R4i.x = floatBitsToInt(intBitsToFloat(R0i.x) + 0.0);
PS1i = R4i.x; PS1i = R4i.x;
} }
@ -342,14 +337,14 @@ backupReg1i = R0i.x;
backupReg0i = R0i.y; backupReg0i = R0i.y;
PV0i.x = floatBitsToInt(intBitsToFloat(R11i.w) + intBitsToFloat(R6i.w)); PV0i.x = floatBitsToInt(intBitsToFloat(R11i.w) + intBitsToFloat(R6i.w));
PV0i.y = floatBitsToInt(intBitsToFloat(R19i.w) + intBitsToFloat(R2i.z)); PV0i.y = floatBitsToInt(intBitsToFloat(R19i.w) + intBitsToFloat(R2i.z));
R4i.z = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(0xbb9f49f5)*scaleFactor); R4i.z = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(0xbb9f49f5)*resScale);
R1i.w = floatBitsToInt(intBitsToFloat(backupReg1i) + 0.0); R1i.w = floatBitsToInt(intBitsToFloat(backupReg1i) + 0.0);
R1i.y = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(0xbbfa4fa5)*scaleFactor); R1i.y = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(0xbbfa4fa5)*resScale);
PS0i = R1i.y; PS0i = R1i.y;
// 1 // 1
backupReg0i = R3i.w; backupReg0i = R3i.w;
R1i.x = floatBitsToInt(intBitsToFloat(R8i.w) + intBitsToFloat(PV0i.y)); R1i.x = floatBitsToInt(intBitsToFloat(R8i.w) + intBitsToFloat(PV0i.y));
R2i.y = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(0xbc2aaaab)*scaleFactor); R2i.y = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(0xbc2aaaab)*resScale);
R2i.z = floatBitsToInt(intBitsToFloat(R0i.x) + 0.0); R2i.z = floatBitsToInt(intBitsToFloat(R0i.x) + 0.0);
R3i.w = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(PV0i.x)); R3i.w = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(PV0i.x));
} }
@ -463,7 +458,7 @@ R127i.w = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3e000000));
R126i.w = floatBitsToInt(intBitsToFloat(R22i.x) + intBitsToFloat(PV1i.x)); R126i.w = floatBitsToInt(intBitsToFloat(R22i.x) + intBitsToFloat(PV1i.x));
PS0i = R126i.w; PS0i = R126i.w;
// 9 // 9
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R7i.x),intBitsToFloat(R7i.y),intBitsToFloat(R7i.z),-0.0),vec4(intBitsToFloat(0x3e991687)*scaleFactor,intBitsToFloat(0x3f1645a2),intBitsToFloat(0x3de978d5),0.0))); tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R7i.x),intBitsToFloat(R7i.y),intBitsToFloat(R7i.z),-0.0),vec4(intBitsToFloat(0x3e991687),intBitsToFloat(0x3f1645a2),intBitsToFloat(0x3de978d5),0.0)));
PV1i.x = tempi.x; PV1i.x = tempi.x;
PV1i.y = tempi.x; PV1i.y = tempi.x;
PV1i.z = tempi.x; PV1i.z = tempi.x;
@ -472,7 +467,7 @@ R1i.z = tempi.x;
R126i.z = floatBitsToInt(intBitsToFloat(R22i.y) + intBitsToFloat(R127i.y)); R126i.z = floatBitsToInt(intBitsToFloat(R22i.y) + intBitsToFloat(R127i.y));
PS1i = R126i.z; PS1i = R126i.z;
// 10 // 10
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R12i.x),intBitsToFloat(R12i.y),intBitsToFloat(R12i.z),-0.0),vec4(intBitsToFloat(0x3e991687)*scaleFactor,intBitsToFloat(0x3f1645a2),intBitsToFloat(0x3de978d5),0.0))); tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R12i.x),intBitsToFloat(R12i.y),intBitsToFloat(R12i.z),-0.0),vec4(intBitsToFloat(0x3e991687),intBitsToFloat(0x3f1645a2),intBitsToFloat(0x3de978d5),0.0)));
PV0i.x = tempi.x; PV0i.x = tempi.x;
PV0i.y = tempi.x; PV0i.y = tempi.x;
PV0i.z = tempi.x; PV0i.z = tempi.x;
@ -481,7 +476,7 @@ R125i.y = tempi.x;
R127i.y = floatBitsToInt(intBitsToFloat(R22i.z) + intBitsToFloat(R127i.x)); R127i.y = floatBitsToInt(intBitsToFloat(R22i.z) + intBitsToFloat(R127i.x));
PS0i = R127i.y; PS0i = R127i.y;
// 11 // 11
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R126i.y),intBitsToFloat(R127i.z),intBitsToFloat(R127i.w),-0.0),vec4(intBitsToFloat(0x3e991687)*scaleFactor,intBitsToFloat(0x3f1645a2),intBitsToFloat(0x3de978d5),0.0))); tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R126i.y),intBitsToFloat(R127i.z),intBitsToFloat(R127i.w),-0.0),vec4(intBitsToFloat(0x3e991687),intBitsToFloat(0x3f1645a2),intBitsToFloat(0x3de978d5),0.0)));
PV1i.x = tempi.x; PV1i.x = tempi.x;
PV1i.y = tempi.x; PV1i.y = tempi.x;
PV1i.z = tempi.x; PV1i.z = tempi.x;
@ -496,7 +491,7 @@ R126i.z = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(0x3e000000
PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.x) + -(intBitsToFloat(R125i.y))); PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.x) + -(intBitsToFloat(R125i.y)));
PS0i = floatBitsToInt(1.0 / intBitsToFloat(PS1i)); PS0i = floatBitsToInt(1.0 / intBitsToFloat(PS1i));
// 13 // 13
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R14i.x),intBitsToFloat(R14i.y),intBitsToFloat(R14i.z),-0.0),vec4(intBitsToFloat(0x3e991687)*scaleFactor,intBitsToFloat(0x3f1645a2)*scaleFactor,intBitsToFloat(0x3de978d5)*scaleFactor,0.0))); tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R14i.x),intBitsToFloat(R14i.y),intBitsToFloat(R14i.z),-0.0),vec4(intBitsToFloat(0x3e991687),intBitsToFloat(0x3f1645a2),intBitsToFloat(0x3de978d5),0.0)));
PV1i.x = tempi.x; PV1i.x = tempi.x;
PV1i.y = tempi.x; PV1i.y = tempi.x;
PV1i.z = tempi.x; PV1i.z = tempi.x;
@ -506,7 +501,7 @@ R127i.z = floatBitsToInt(intBitsToFloat(PV0i.w) * intBitsToFloat(PS0i));
R127i.z = clampFI32(R127i.z); R127i.z = clampFI32(R127i.z);
PS1i = R127i.z; PS1i = R127i.z;
// 14 // 14
R1i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.y),intBitsToFloat(R126i.z),-0.0),vec4(intBitsToFloat(0x3e991687)*scaleFactor,intBitsToFloat(0x3f1645a2)*scaleFactor,intBitsToFloat(0x3de978d5)*scaleFactor,0.0))); R1i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.y),intBitsToFloat(R126i.z),-0.0),vec4(intBitsToFloat(0x3e991687),intBitsToFloat(0x3f1645a2),intBitsToFloat(0x3de978d5),0.0)));
PV0i.x = R1i.x; PV0i.x = R1i.x;
PV0i.y = R1i.x; PV0i.y = R1i.x;
PV0i.z = R1i.x; PV0i.z = R1i.x;
@ -514,7 +509,7 @@ PV0i.w = R1i.x;
R127i.x = floatBitsToInt(intBitsToFloat(R1i.z) + -(intBitsToFloat(PV1i.x))); R127i.x = floatBitsToInt(intBitsToFloat(R1i.z) + -(intBitsToFloat(PV1i.x)));
PS0i = R127i.x; PS0i = R127i.x;
// 15 // 15
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R13i.x),intBitsToFloat(R13i.y),intBitsToFloat(R13i.z),-0.0),vec4(intBitsToFloat(0x3e991687)*scaleFactor,intBitsToFloat(0x3f1645a2)*scaleFactor,intBitsToFloat(0x3de978d5)*scaleFactor,0.0))); tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R13i.x),intBitsToFloat(R13i.y),intBitsToFloat(R13i.z),-0.0),vec4(intBitsToFloat(0x3e991687),intBitsToFloat(0x3f1645a2),intBitsToFloat(0x3de978d5),0.0)));
PV1i.x = tempi.x; PV1i.x = tempi.x;
PV1i.y = tempi.x; PV1i.y = tempi.x;
PV1i.z = tempi.x; PV1i.z = tempi.x;
@ -545,7 +540,7 @@ R2i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.y),intBitsToFloat(PV1i.
R124i.y = floatBitsToInt(intBitsToFloat(R127i.w) + -(intBitsToFloat(R1i.z))); R124i.y = floatBitsToInt(intBitsToFloat(R127i.w) + -(intBitsToFloat(R1i.z)));
PS0i = R124i.y; PS0i = R124i.y;
// 19 // 19
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R15i.x),intBitsToFloat(R15i.y),intBitsToFloat(R15i.z),-0.0),vec4(intBitsToFloat(0x3e991687)*scaleFactor,intBitsToFloat(0x3f1645a2)*scaleFactor,intBitsToFloat(0x3de978d5)*scaleFactor,0.0))); tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R15i.x),intBitsToFloat(R15i.y),intBitsToFloat(R15i.z),-0.0),vec4(intBitsToFloat(0x3e991687),intBitsToFloat(0x3f1645a2),intBitsToFloat(0x3de978d5),0.0)));
PV1i.x = tempi.x; PV1i.x = tempi.x;
PV1i.y = tempi.x; PV1i.y = tempi.x;
PV1i.z = tempi.x; PV1i.z = tempi.x;
@ -652,16 +647,16 @@ R16i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(R0i.z
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
if( activeMaskStackC[1] == true ) { if( activeMaskStackC[1] == true ) {
// 0 // 0
R1i.x = floatBitsToInt(intBitsToFloat(R0i.x) + intBitsToFloat(0xba99999a)*scaleFactor); R1i.x = floatBitsToInt(intBitsToFloat(R0i.x) + intBitsToFloat(0xba99999a));
R1i.y = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(0xbb088889)*scaleFactor); R1i.y = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(0xbb088889));
R0i.z = floatBitsToInt(intBitsToFloat(R0i.x) + intBitsToFloat(0x3a99999a)*scaleFactor); R0i.z = floatBitsToInt(intBitsToFloat(R0i.x) + intBitsToFloat(0x3a99999a));
R0i.w = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(0xbb088889)*scaleFactor); R0i.w = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(0xbb088889));
R2i.x = floatBitsToInt(intBitsToFloat(R0i.x) + intBitsToFloat(0xba99999a)*scaleFactor); R2i.x = floatBitsToInt(intBitsToFloat(R0i.x) + intBitsToFloat(0xba99999a));
PS0i = R2i.x; PS0i = R2i.x;
// 1 // 1
R3i.x = floatBitsToInt(intBitsToFloat(R0i.x) + intBitsToFloat(0x3a99999a)*scaleFactor); R3i.x = floatBitsToInt(intBitsToFloat(R0i.x) + intBitsToFloat(0x3a99999a));
R2i.y = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(0x3b088889)*scaleFactor); R2i.y = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(0x3b088889));
R3i.z = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(0x3b088889)*scaleFactor); R3i.z = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(0x3b088889));
R4i.w = floatBitsToInt(intBitsToFloat(R7i.x) + -(intBitsToFloat(R16i.x))); R4i.w = floatBitsToInt(intBitsToFloat(R7i.x) + -(intBitsToFloat(R16i.x)));
R1i.z = floatBitsToInt(intBitsToFloat(R7i.y) + -(intBitsToFloat(R16i.y))); R1i.z = floatBitsToInt(intBitsToFloat(R7i.y) + -(intBitsToFloat(R16i.y)));
PS1i = R1i.z; PS1i = R1i.z;

View File

@ -0,0 +1,670 @@
#version 430
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
// shader 7ca214032b834227 //point "sprites" 2 unverified
// start of shader inputs/outputs, predetermined by Cemu. Do not touch
#ifdef VULKAN
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
#define gl_VertexID gl_VertexIndex
#define gl_InstanceID gl_InstanceIndex
#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define SET_POSITION(_v) gl_Position = _v
#endif
#ifdef VULKAN
layout(set = 0, binding = 0) uniform ufBlock
{
uniform ivec4 uf_uniformRegisterVS[256];
};
#else
uniform ivec4 uf_uniformRegisterVS[256];
#endif
ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0;
ATTR_LAYOUT(0, 1) in uvec4 attrDataSem1;
ATTR_LAYOUT(0, 2) in uvec4 attrDataSem2;
ATTR_LAYOUT(0, 3) in uvec4 attrDataSem5;
ATTR_LAYOUT(0, 4) in uvec4 attrDataSem6;
ATTR_LAYOUT(0, 5) in uvec4 attrDataSem7;
out gl_PerVertex
{
vec4 gl_Position;
float gl_PointSize;
};
layout(location = 0) out vec4 passParameterSem144;
// end of shader inputs/outputs
const float resScale = float($gameWidth / $width);
int clampFI32(int v)
{
if( v == 0x7FFFFFFF )
return floatBitsToInt(1.0);
else if( v == 0xFFFFFFFF )
return floatBitsToInt(0.0);
return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0));
}
float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; }
void main()
{
ivec4 R0i = ivec4(0);
ivec4 R1i = ivec4(0);
ivec4 R2i = ivec4(0);
ivec4 R3i = ivec4(0);
ivec4 R4i = ivec4(0);
ivec4 R5i = ivec4(0);
ivec4 R6i = ivec4(0);
ivec4 R7i = ivec4(0);
ivec4 R8i = ivec4(0);
ivec4 R9i = ivec4(0);
ivec4 R10i = ivec4(0);
ivec4 R11i = ivec4(0);
ivec4 R12i = ivec4(0);
ivec4 R13i = ivec4(0);
ivec4 R14i = ivec4(0);
ivec4 R15i = ivec4(0);
ivec4 R16i = ivec4(0);
ivec4 R17i = ivec4(0);
ivec4 R122i = ivec4(0);
ivec4 R123i = ivec4(0);
ivec4 R124i = ivec4(0);
ivec4 R125i = ivec4(0);
ivec4 R126i = ivec4(0);
ivec4 R127i = ivec4(0);
uvec4 attrDecoder;
int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i;
ivec4 PV0i = ivec4(0), PV1i = ivec4(0);
int PS0i = 0, PS1i = 0;
ivec4 tempi = ivec4(0);
float tempResultf;
int tempResulti;
ivec4 ARi = ivec4(0);
bool predResult = true;
vec3 cubeMapSTM;
int cubeMapFaceId;
R0i = ivec4(gl_VertexID, 0, 0, gl_InstanceID);
attrDecoder.xyz = attrDataSem0.xyz;
attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24));
attrDecoder.w = 0;
R3i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), floatBitsToInt(1.0));
attrDecoder.xyzw = attrDataSem2.xyzw;
R1i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w));
attrDecoder.xyzw = floatBitsToUint(vec4(attrDataSem1.xyzw)/255.0);
R2i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w));
attrDecoder.xyzw = attrDataSem5.xyzw;
attrDecoder = ((attrDecoder>>8)&0xFF)|((attrDecoder<<8)&0xFF00);
attrDecoder.xyzw = floatBitsToInt(vec4(unpackHalf2x16(attrDecoder.x|(attrDecoder.y<<16)),unpackHalf2x16(attrDecoder.z|(attrDecoder.w<<16))));
R4i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w));
attrDecoder.xyzw = attrDataSem6.xyzw;
attrDecoder = ((attrDecoder>>8)&0xFF)|((attrDecoder<<8)&0xFF00);
attrDecoder.xyzw = floatBitsToInt(vec4(unpackHalf2x16(attrDecoder.x|(attrDecoder.y<<16)),unpackHalf2x16(attrDecoder.z|(attrDecoder.w<<16))));
R5i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w));
attrDecoder.xyzw = attrDataSem7.xyzw;
attrDecoder = ((attrDecoder>>8)&0xFF)|((attrDecoder<<8)&0xFF00);
attrDecoder.xyzw = floatBitsToInt(vec4(unpackHalf2x16(attrDecoder.x|(attrDecoder.y<<16)),unpackHalf2x16(attrDecoder.z|(attrDecoder.w<<16))));
R6i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w));
// 0
PV0i.x = floatBitsToInt(max(intBitsToFloat(R4i.w), -(intBitsToFloat(R4i.w))));
R13i.y = floatBitsToInt(max(intBitsToFloat(uf_uniformRegisterVS[196].w), -(intBitsToFloat(uf_uniformRegisterVS[196].w))));
R125i.z = floatBitsToInt(max(intBitsToFloat(uf_uniformRegisterVS[197].w), -(intBitsToFloat(uf_uniformRegisterVS[197].w))));
R7i.w = 0x3f800000;
R127i.x = R1i.y * 0x00000003;
PS0i = R127i.x;
// 1
PV1i.x = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[197].w) > 0.0)?1.0:0.0);
R15i.y = 0x3f800000;
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(uf_uniformRegisterVS[193].y)));
PV1i.w = floatBitsToInt((0.0 > intBitsToFloat(uf_uniformRegisterVS[197].w))?1.0:0.0);
R127i.z = R1i.x * 0x00000003;
PS1i = R127i.z;
// 2
R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(uf_uniformRegisterVS[198].x)));
R8i.y = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + intBitsToFloat(uf_uniformRegisterVS[193].x));
PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.x) + -(intBitsToFloat(PV1i.w)));
R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.y), intBitsToFloat(uf_uniformRegisterVS[198].y)));
R126i.z = R1i.z * 0x00000003;
PS0i = R126i.z;
// 3
backupReg0i = R127i.x;
R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.z), intBitsToFloat(uf_uniformRegisterVS[198].z)));
R10i.y = floatBitsToInt(max(intBitsToFloat(PV0i.z), -(intBitsToFloat(PV0i.z))));
R11i.z = floatBitsToInt(-(intBitsToFloat(uf_uniformRegisterVS[201].y)) * intBitsToFloat(0x7f7ffffd));
R11i.z = clampFI32(R11i.z);
R9i.w = floatBitsToInt(-(intBitsToFloat(uf_uniformRegisterVS[201].x)) * intBitsToFloat(0x7f7ffffd));
R9i.w = clampFI32(R9i.w);
R126i.w = floatBitsToInt(float(backupReg0i));
PS1i = R126i.w;
// 4
tempResultf = intBitsToFloat(PS1i);
tempResultf = floor(tempResultf);
tempResultf = clamp(tempResultf, -256.0, 255.0);
ARi.x = int(tempResultf);
PV0i.x = floatBitsToInt(tempResultf);
R12i.y = floatBitsToInt(max(intBitsToFloat(uf_uniformRegisterVS[201].x), -(intBitsToFloat(uf_uniformRegisterVS[201].x))));
R10i.z = floatBitsToInt(intBitsToFloat(R127i.w) + intBitsToFloat(uf_uniformRegisterVS[197].y));
R8i.w = floatBitsToInt(intBitsToFloat(R126i.x) + intBitsToFloat(uf_uniformRegisterVS[197].x));
R127i.y = floatBitsToInt(float(R127i.z));
PS0i = R127i.y;
// 5
R9i.x = floatBitsToInt(max(intBitsToFloat(uf_uniformRegisterVS[201].y), -(intBitsToFloat(uf_uniformRegisterVS[201].y))));
tempResultf = intBitsToFloat(PS0i);
tempResultf = floor(tempResultf);
tempResultf = clamp(tempResultf, -256.0, 255.0);
ARi.y = int(tempResultf);
PV1i.y = floatBitsToInt(tempResultf);
R12i.z = floatBitsToInt(-(intBitsToFloat(uf_uniformRegisterVS[201].z)) * intBitsToFloat(0x7f7ffffd));
R12i.z = clampFI32(R12i.z);
R10i.w = floatBitsToInt(max(intBitsToFloat(uf_uniformRegisterVS[201].z), -(intBitsToFloat(uf_uniformRegisterVS[201].z))));
R126i.x = R1i.w * 0x00000003;
PS1i = R126i.x;
// 6
backupReg0i = R126i.z;
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.x), intBitsToFloat(uf_uniformRegisterVS[195].x)));
R11i.y = floatBitsToInt(intBitsToFloat(R127i.x) + intBitsToFloat(uf_uniformRegisterVS[197].z));
R126i.z = floatBitsToInt(-(intBitsToFloat(R6i.w)) + 1.0);
PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.y), intBitsToFloat(uf_uniformRegisterVS[195].y)));
R0i.y = floatBitsToInt(float(backupReg0i));
PS0i = R0i.y;
// 7
PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.z), intBitsToFloat(uf_uniformRegisterVS[195].z)));
R14i.y = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(uf_uniformRegisterVS[196].x));
tempResultf = intBitsToFloat(PS0i);
tempResultf = floor(tempResultf);
tempResultf = clamp(tempResultf, -256.0, 255.0);
ARi.z = int(tempResultf);
PV1i.z = floatBitsToInt(tempResultf);
R11i.w = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(uf_uniformRegisterVS[196].y));
R3i.w = floatBitsToInt(float(R126i.x));
PS1i = R3i.w;
// 8
R10i.x = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(uf_uniformRegisterVS[196].z));
R16i.y = floatBitsToInt(1.0);
PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), intBitsToFloat(uf_uniformRegisterVS[195].w)));
tempResultf = intBitsToFloat(PS1i);
tempResultf = floor(tempResultf);
tempResultf = clamp(tempResultf, -256.0, 255.0);
ARi.w = int(tempResultf);
PV0i.w = floatBitsToInt(tempResultf);
tempResultf = max(0.0, intBitsToFloat(R125i.z));
tempResultf = log2(tempResultf);
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
R9i.y = floatBitsToInt(tempResultf);
PS0i = R9i.y;
// 9
R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(uf_uniformRegisterVS[ARi.x+40].z)));
R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(uf_uniformRegisterVS[ARi.x+40].y)));
R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(uf_uniformRegisterVS[ARi.x+40].x)));
R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(uf_uniformRegisterVS[ARi.x+40].w)));
R13i.z = floatBitsToInt(-(intBitsToFloat(PV0i.z)) + 1.0);
PS1i = R13i.z;
// 10
R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(uf_uniformRegisterVS[ARi.x+41].z)));
R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(uf_uniformRegisterVS[ARi.x+41].y)));
R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(uf_uniformRegisterVS[ARi.x+41].x)));
R124i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(uf_uniformRegisterVS[ARi.x+41].w)));
R9i.z = floatBitsToInt(max(intBitsToFloat(R6i.x), -(intBitsToFloat(R6i.x))));
PS0i = R9i.z;
// 11
R4i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(uf_uniformRegisterVS[ARi.x+42].z)));
R1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(uf_uniformRegisterVS[ARi.x+42].y)));
R124i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(uf_uniformRegisterVS[ARi.x+42].x)));
R4i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(uf_uniformRegisterVS[ARi.x+42].w)));
R17i.z = 0;
PS1i = R17i.z;
// 12
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(uf_uniformRegisterVS[ARi.y+40].x)));
R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(uf_uniformRegisterVS[ARi.y+40].w)));
R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(uf_uniformRegisterVS[ARi.y+40].z)));
R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(uf_uniformRegisterVS[ARi.y+40].y)));
// 13
backupReg0i = R126i.z;
R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(uf_uniformRegisterVS[ARi.y+41].x)));
R4i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(uf_uniformRegisterVS[ARi.y+41].w)));
R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(uf_uniformRegisterVS[ARi.y+41].z)));
R125i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(uf_uniformRegisterVS[ARi.y+41].y)));
R1i.x = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(PV0i.x));
PS1i = R1i.x;
// 14
backupReg0i = R126i.w;
R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(uf_uniformRegisterVS[ARi.y+42].x)));
R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(uf_uniformRegisterVS[ARi.y+42].w)));
R4i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(uf_uniformRegisterVS[ARi.y+42].z)));
R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(uf_uniformRegisterVS[ARi.y+42].y)));
R1i.w = floatBitsToInt(intBitsToFloat(R126i.y) + intBitsToFloat(backupReg0i));
PS0i = R1i.w;
// 15
backupReg0i = R127i.x;
backupReg1i = R125i.y;
R127i.x = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(backupReg0i));
R125i.y = floatBitsToInt(intBitsToFloat(R127i.w) + intBitsToFloat(backupReg1i));
R127i.z = floatBitsToInt(intBitsToFloat(R126i.x) + intBitsToFloat(R125i.z));
R127i.w = floatBitsToInt(intBitsToFloat(R124i.y) + intBitsToFloat(R125i.w));
R125i.z = floatBitsToInt(intBitsToFloat(R125i.x) + intBitsToFloat(R126i.z));
PS1i = R125i.z;
// 16
R126i.x = floatBitsToInt(intBitsToFloat(R124i.z) + intBitsToFloat(R124i.x));
R126i.y = floatBitsToInt(intBitsToFloat(R124i.w) + intBitsToFloat(R4i.y));
R1i.z = floatBitsToInt(intBitsToFloat(R4i.x) + intBitsToFloat(R4i.z));
R125i.w = floatBitsToInt(intBitsToFloat(R1i.y) + intBitsToFloat(R126i.w));
R1i.y = floatBitsToInt(intBitsToFloat(R4i.w) + intBitsToFloat(R127i.y));
PS0i = R1i.y;
// 17
PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(uf_uniformRegisterVS[ARi.z+40].x)));
R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(uf_uniformRegisterVS[ARi.z+40].w)));
R124i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(uf_uniformRegisterVS[ARi.z+40].z)));
R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(uf_uniformRegisterVS[ARi.z+40].y)));
// 18
R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(uf_uniformRegisterVS[ARi.z+41].x)));
R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(uf_uniformRegisterVS[ARi.z+41].w)));
R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(uf_uniformRegisterVS[ARi.z+41].z)));
R124i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(uf_uniformRegisterVS[ARi.z+41].y)));
R125i.x = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(R1i.x));
PS0i = R125i.x;
// 19
backupReg0i = R126i.w;
backupReg1i = R1i.w;
PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(uf_uniformRegisterVS[ARi.z+42].x)));
R0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(uf_uniformRegisterVS[ARi.z+42].w)));
R4i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(uf_uniformRegisterVS[ARi.z+42].z)));
R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(uf_uniformRegisterVS[ARi.z+42].y)));
R1i.w = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(backupReg1i));
PS1i = R1i.w;
// 20
R1i.x = floatBitsToInt(intBitsToFloat(R124i.x) + intBitsToFloat(R127i.x));
R4i.y = floatBitsToInt(intBitsToFloat(R127i.y) + intBitsToFloat(R125i.y));
R0i.zwx = floatBitsToInt(vec3(intBitsToFloat(R124i.z),intBitsToFloat(R124i.w),intBitsToFloat(PV1i.x)) + vec3(intBitsToFloat(R127i.z),intBitsToFloat(R127i.w),intBitsToFloat(R126i.x)));
PS0i = R0i.x;
// 21
R7i.x = floatBitsToInt(intBitsToFloat(R126i.w) + intBitsToFloat(R125i.w));
R6i.y = floatBitsToInt(intBitsToFloat(R124i.y) + intBitsToFloat(R126i.y));
R7i.z = floatBitsToInt(intBitsToFloat(R126i.z) + intBitsToFloat(R125i.z));
R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(uf_uniformRegisterVS[ARi.w+40].x)));
R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(uf_uniformRegisterVS[ARi.w+40].y)));
PS1i = R126i.y;
// 22
R8i.x = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(R1i.y));
R7i.y = floatBitsToInt(intBitsToFloat(R4i.z) + intBitsToFloat(R1i.z));
R1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(uf_uniformRegisterVS[ARi.w+40].z)));
R4i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(uf_uniformRegisterVS[ARi.w+40].w)));
R4i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(uf_uniformRegisterVS[ARi.w+41].x)));
PS0i = R4i.z;
// 23
backupReg0i = R1i.w;
R4i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(uf_uniformRegisterVS[ARi.w+41].z)));
R0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(uf_uniformRegisterVS[ARi.w+41].y)));
R8i.z = floatBitsToInt(intBitsToFloat(R126i.w) + intBitsToFloat(R125i.x));
R1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(uf_uniformRegisterVS[ARi.w+41].w)));
R1i.y = floatBitsToInt(intBitsToFloat(R126i.y) + intBitsToFloat(backupReg0i));
PS1i = R1i.y;
// 0
R125i.x = floatBitsToInt(intBitsToFloat(R4i.z) + intBitsToFloat(R1i.x));
R126i.yzw = floatBitsToInt(vec3(intBitsToFloat(R0i.y),intBitsToFloat(R1i.z),intBitsToFloat(R4i.w)) + vec3(intBitsToFloat(R0i.w),intBitsToFloat(R0i.z),intBitsToFloat(R4i.y)));
R125i.w = floatBitsToInt(intBitsToFloat(R1i.w) + intBitsToFloat(R6i.y));
PS0i = R125i.w;
// 1
R6i.x = floatBitsToInt(-(intBitsToFloat(uf_uniformRegisterVS[196].w)) * intBitsToFloat(0x7f7ffffd));
R6i.x = clampFI32(R6i.x);
R125i.z = floatBitsToInt(intBitsToFloat(R4i.x) + intBitsToFloat(R7i.z));
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.z), intBitsToFloat(uf_uniformRegisterVS[194].z)));
// 2
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R3i.x),intBitsToFloat(R3i.y),intBitsToFloat(R3i.z),intBitsToFloat(R7i.w)),vec4(intBitsToFloat(R8i.z),intBitsToFloat(R1i.y),intBitsToFloat(R126i.z),intBitsToFloat(R126i.w))));
PV0i.x = tempi.x;
PV0i.y = tempi.x;
PV0i.z = tempi.x;
PV0i.w = tempi.x;
R6i.w = tempi.x;
R6i.z = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(uf_uniformRegisterVS[194].x));
PS0i = R6i.z;
// 3
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R3i.x),intBitsToFloat(R3i.y),intBitsToFloat(R3i.z),intBitsToFloat(R7i.w)),vec4(intBitsToFloat(R125i.x),intBitsToFloat(R126i.y),intBitsToFloat(R125i.z),intBitsToFloat(R125i.w))));
PV1i.x = tempi.x;
PV1i.y = tempi.x;
PV1i.z = tempi.x;
PV1i.w = tempi.x;
R8i.z = tempi.x;
R125i.x = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(uf_uniformRegisterVS[202].x)));
PS1i = R125i.x;
// 4
tempResultf = intBitsToFloat(R3i.w);
tempResultf = floor(tempResultf);
tempResultf = clamp(tempResultf, -256.0, 255.0);
ARi.x = int(tempResultf);
PV0i.x = floatBitsToInt(tempResultf);
R126i.y = floatBitsToInt(intBitsToFloat(PV1i.x) + -(intBitsToFloat(uf_uniformRegisterVS[202].y)));
PV0i.w = floatBitsToInt(max(intBitsToFloat(uf_uniformRegisterVS[199].w), -(intBitsToFloat(uf_uniformRegisterVS[199].w))));
// 5
PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R9i.z)));
// 6
R4i.x = floatBitsToInt(floor(intBitsToFloat(PV1i.y)));
// 7
PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(uf_uniformRegisterVS[ARi.x+42].z)));
PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(uf_uniformRegisterVS[ARi.x+42].y)));
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(uf_uniformRegisterVS[ARi.x+42].x)));
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(uf_uniformRegisterVS[ARi.x+42].w)));
// 8
backupReg0i = R0i.x;
PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(backupReg0i));
PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(R7i.x));
PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(R7i.y));
PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(R8i.x));
// 9
backupReg0i = R3i.y;
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R3i.x),intBitsToFloat(backupReg0i),intBitsToFloat(R3i.z),intBitsToFloat(R7i.w)),vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),intBitsToFloat(PV0i.w))));
PV1i.x = tempi.x;
PV1i.y = tempi.x;
PV1i.z = tempi.x;
PV1i.w = tempi.x;
R3i.y = tempi.x;
// 10
R125i.z = floatBitsToInt(intBitsToFloat(PV1i.x) + -(intBitsToFloat(uf_uniformRegisterVS[202].z)));
PV0i.z = R125i.z;
// 11
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R125i.x),intBitsToFloat(R126i.y),intBitsToFloat(PV0i.z),-0.0),vec4(intBitsToFloat(R125i.x),intBitsToFloat(R126i.y),intBitsToFloat(PV0i.z),0.0)));
PV1i.x = tempi.x;
PV1i.y = tempi.x;
PV1i.z = tempi.x;
PV1i.w = tempi.x;
// 12
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R125i.x),intBitsToFloat(R126i.y),intBitsToFloat(R125i.z),-0.0),vec4(intBitsToFloat(R125i.x),intBitsToFloat(R126i.y),intBitsToFloat(R125i.z),0.0)));
PV0i.x = tempi.x;
PV0i.y = tempi.x;
PV0i.z = tempi.x;
PV0i.w = tempi.x;
PS0i = floatBitsToInt(sqrt(intBitsToFloat(PV1i.x)));
// 13
PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(uf_uniformRegisterVS[194].w)));
tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.x));
PS1i = floatBitsToInt(tempResultf);
// 14
PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + intBitsToFloat(R8i.y));
PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PS1i)));
PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(PS1i)));
PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(PS1i)));
// 15
PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.w) + -(0.0));
R126i.y = floatBitsToInt(intBitsToFloat(PV0i.y) + -(1.0));
PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.z) + -(0.0));
R2i.w = floatBitsToInt(max(intBitsToFloat(PV0i.x), 0.0));
PV1i.w = R2i.w;
// 16
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(uf_uniformRegisterVS[200].y)));
PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(uf_uniformRegisterVS[200].x)));
R2i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R13i.y), intBitsToFloat(PV1i.z)));
PV0i.z = R2i.z;
PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(uf_uniformRegisterVS[200].z)));
R9i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R13i.y), intBitsToFloat(PV1i.x)));
PS0i = R9i.z;
// 17
PV1i.x = floatBitsToInt(intBitsToFloat(R5i.w) + intBitsToFloat(PV0i.w));
PV1i.y = floatBitsToInt(intBitsToFloat(R5i.w) + intBitsToFloat(PV0i.x));
PV1i.z = floatBitsToInt(intBitsToFloat(R5i.w) + intBitsToFloat(PV0i.y));
R3i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.y),intBitsToFloat(R13i.y)) + 1.0));
R125i.x = floatBitsToInt(intBitsToFloat(PV0i.z) * 1.0);
PS1i = R125i.x;
// 18
R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(R9i.y)));
PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(0x40c90fdb));
PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.y) * intBitsToFloat(0x40c90fdb));
PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.z) * intBitsToFloat(0x40c90fdb));
R125i.w = floatBitsToInt(intBitsToFloat(R9i.z) * -(1.0));
PS0i = R125i.w;
// 19
R123i.x = floatBitsToInt((intBitsToFloat(PV0i.w) * intBitsToFloat(0x3e22f983) + 0.5));
PV1i.x = R123i.x;
R123i.y = floatBitsToInt((intBitsToFloat(PV0i.z) * intBitsToFloat(0x3e22f983) + 0.5));
PV1i.y = R123i.y;
R123i.z = floatBitsToInt((intBitsToFloat(PV0i.y) * intBitsToFloat(0x3e22f983) + 0.5));
PV1i.z = R123i.z;
R126i.w = floatBitsToInt(0.0);
R126i.y = floatBitsToInt((-(0.0) * intBitsToFloat(R3i.w) + intBitsToFloat(R125i.x)));
PS1i = R126i.y;
// 20
PV0i.x = floatBitsToInt(fract(intBitsToFloat(PV1i.y)));
PV0i.y = floatBitsToInt(fract(intBitsToFloat(PV1i.z)));
PV0i.z = floatBitsToInt(-(intBitsToFloat(R2i.w)) + intBitsToFloat(uf_uniformRegisterVS[198].w));
PV0i.w = floatBitsToInt(fract(intBitsToFloat(PV1i.x)));
R127i.w = floatBitsToInt(exp2(intBitsToFloat(R127i.x)));
PS0i = R127i.w;
// 21
R123i.x = floatBitsToInt((intBitsToFloat(PV0i.y) * intBitsToFloat(0x40c90fdb) + -(intBitsToFloat(0x40490fdb))));
PV1i.x = R123i.x;
R124i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(R10i.y)) + intBitsToFloat(R2i.w)));
R123i.z = floatBitsToInt((intBitsToFloat(PV0i.w) * intBitsToFloat(0x40c90fdb) + -(intBitsToFloat(0x40490fdb))));
PV1i.z = R123i.z;
R123i.w = floatBitsToInt((intBitsToFloat(PV0i.x) * intBitsToFloat(0x40c90fdb) + -(intBitsToFloat(0x40490fdb))));
PV1i.w = R123i.w;
R127i.x = floatBitsToInt(intBitsToFloat(R125i.w) + -(1.0));
PS1i = R127i.x;
// 22
backupReg0i = R126i.y;
R5i.x = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(0x3e22f983));
R126i.y = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3e22f983));
PV0i.z = floatBitsToInt(intBitsToFloat(R126i.w) + -(0.0));
R126i.w = floatBitsToInt(intBitsToFloat(PV1i.z) * intBitsToFloat(0x3e22f983));
PV0i.w = R126i.w;
PS0i = floatBitsToInt(intBitsToFloat(backupReg0i) + -(0.0));
// 23
R2i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R13i.y), intBitsToFloat(PS0i)));
PV1i.x = R2i.x;
R5i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R13i.y), intBitsToFloat(PV0i.z)));
PV1i.y = R5i.y;
PV1i.z = floatBitsToInt(-(intBitsToFloat(R127i.w)) + 1.0);
R7i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(R13i.y)) + 1.0));
PV1i.w = R7i.w;
R126i.z = floatBitsToInt(sin((intBitsToFloat(PV0i.w))/0.1591549367));
PS1i = R126i.z;
// 24
backupReg0i = R124i.y;
R7i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.z), intBitsToFloat(PV1i.w)));
R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.z)));
PV0i.y = R124i.y;
R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.w), intBitsToFloat(PV1i.x)));
R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(PV1i.y)));
R3i.x = floatBitsToInt(sin((intBitsToFloat(R126i.y))/0.1591549367));
PS0i = R3i.x;
// 25
backupReg0i = R10i.z;
R0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.w), intBitsToFloat(PV0i.y)));
R10i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(uf_uniformRegisterVS[199].x)));
R10i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(uf_uniformRegisterVS[199].y)));
R5i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV0i.y)));
PS1i = floatBitsToInt(cos((intBitsToFloat(R126i.w))/0.1591549367));
// 26
PV0i.x = floatBitsToInt(-(intBitsToFloat(R126i.z)) + intBitsToFloat(PS1i));
R9i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R7i.w)),intBitsToFloat(R3i.w)) + intBitsToFloat(R127i.w)));
R8i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R5i.y)),intBitsToFloat(R9i.z)) + intBitsToFloat(R125i.z)));
PS0i = floatBitsToInt(cos((intBitsToFloat(R126i.y))/0.1591549367));
// 27
backupReg0i = R11i.y;
R8i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(uf_uniformRegisterVS[199].z)));
R11i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R9i.w)) + intBitsToFloat(R126i.z)));
R3i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R124i.y)));
R9i.w = floatBitsToInt(-(intBitsToFloat(R3i.x)) + intBitsToFloat(PS0i));
R5i.z = floatBitsToInt(sin((intBitsToFloat(R5i.x))/0.1591549367));
PS1i = R5i.z;
// 0
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.w),intBitsToFloat(R11i.z)) + intBitsToFloat(R3i.x)));
PV0i.x = R123i.x;
R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(R10i.y)));
PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.y), intBitsToFloat(R11i.y)));
R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(R10i.z)));
PS0i = floatBitsToInt(cos((intBitsToFloat(R5i.x))/0.1591549367));
// 1
R127i.x = floatBitsToInt(intBitsToFloat(R8i.w) + -(0.0));
PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.x), intBitsToFloat(PV0i.x)));
PV1i.z = floatBitsToInt(-(intBitsToFloat(R5i.z)) + intBitsToFloat(PS0i));
PV1i.w = floatBitsToInt(intBitsToFloat(R0i.x) + intBitsToFloat(PV0i.z));
R126i.z = floatBitsToInt(intBitsToFloat(R9i.y) + -(1.0));
PS1i = R126i.z;
// 2
backupReg0i = R124i.y;
R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R2i.x)),intBitsToFloat(R2i.z)) + intBitsToFloat(R7i.x)));
PV0i.x = R123i.x;
R124i.y = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(backupReg0i));
PV0i.z = floatBitsToInt(intBitsToFloat(R5i.w) + intBitsToFloat(PV1i.y));
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(R12i.z)) + intBitsToFloat(R5i.z)));
PV0i.w = R123i.w;
R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(R8i.x)));
PS0i = R126i.w;
// 3
PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R10i.w), intBitsToFloat(PV0i.w)));
PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(R127i.w));
R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R13i.y), intBitsToFloat(R127i.x)));
PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.x) + -(0.0));
R125i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(R13i.y)) + 1.0));
PS1i = R125i.w;
// 4
R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R13i.y), intBitsToFloat(PV1i.w)));
PV0i.y = floatBitsToInt(intBitsToFloat(R3i.z) + intBitsToFloat(PV1i.x));
R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(PV1i.y)));
R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.w), intBitsToFloat(PV1i.y)));
R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.z), intBitsToFloat(PV1i.y)));
PS0i = R125i.z;
// 5
R125i.x = floatBitsToInt(intBitsToFloat(PV0i.y) + intBitsToFloat(R126i.w));
PV1i.x = R125i.x;
PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.w), intBitsToFloat(R124i.y)));
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.y), intBitsToFloat(R124i.y)));
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(R124i.y)));
R124i.z = floatBitsToInt(intBitsToFloat(R2i.w) + -(intBitsToFloat(0x3a83126f)));
PS1i = R124i.z;
// 6
backupReg0i = R127i.x;
R127i.x = floatBitsToInt(intBitsToFloat(R125i.z) + intBitsToFloat(PV1i.w));
PV0i.y = floatBitsToInt(intBitsToFloat(R127i.w) + intBitsToFloat(PV1i.z));
PV0i.z = floatBitsToInt(intBitsToFloat(R126i.z) + intBitsToFloat(PV1i.y));
PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV1i.x)));
PS0i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.x)));
// 7
PV1i.x = floatBitsToInt(intBitsToFloat(R124i.z) * intBitsToFloat(0x7f7ffffd));
PV1i.x = clampFI32(PV1i.x);
PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.w), intBitsToFloat(R125i.x)));
PV1i.z = floatBitsToInt(intBitsToFloat(PS0i) + intBitsToFloat(PV0i.y));
PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(PV0i.z));
R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.w),intBitsToFloat(uf_uniformRegisterVS[186].x)) + intBitsToFloat(uf_uniformRegisterVS[186].y)));
PS1i = R122i.x;
// 8
backupReg0i = R127i.x;
R127i.x = floatBitsToInt(intBitsToFloat(R14i.y) + intBitsToFloat(PV1i.w));
PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(backupReg0i));
R124i.z = floatBitsToInt(intBitsToFloat(R11i.w) + intBitsToFloat(PV1i.z));
R125i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R13i.z)));
PS0i = floatBitsToInt(floor(intBitsToFloat(PS1i)));
// 9
R124i.y = floatBitsToInt(intBitsToFloat(R4i.x) + intBitsToFloat(PS0i));
R127i.z = floatBitsToInt(intBitsToFloat(R10i.x) + intBitsToFloat(PV0i.y));
PV1i.z = R127i.z;
// 10
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R124i.z),intBitsToFloat(PV1i.z),intBitsToFloat(R15i.y)),vec4(intBitsToFloat(uf_uniformRegisterVS[188].x),intBitsToFloat(uf_uniformRegisterVS[188].y),intBitsToFloat(uf_uniformRegisterVS[188].z),intBitsToFloat(uf_uniformRegisterVS[188].w))));
PV0i.x = tempi.x;
PV0i.y = tempi.x;
PV0i.z = tempi.x;
PV0i.w = tempi.x;
// 11
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R124i.z),intBitsToFloat(R127i.z),intBitsToFloat(R15i.y)),vec4(intBitsToFloat(uf_uniformRegisterVS[189].x),intBitsToFloat(uf_uniformRegisterVS[189].y),intBitsToFloat(uf_uniformRegisterVS[189].z),intBitsToFloat(uf_uniformRegisterVS[189].w))));
PV1i.x = tempi.x;
PV1i.y = tempi.x;
PV1i.z = tempi.x;
PV1i.w = tempi.x;
R126i.x = floatBitsToInt(intBitsToFloat(R6i.w) + intBitsToFloat(PV0i.x));
PS1i = R126i.x;
// 12
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R124i.z),intBitsToFloat(R127i.z),intBitsToFloat(R15i.y)),vec4(intBitsToFloat(uf_uniformRegisterVS[190].x),intBitsToFloat(uf_uniformRegisterVS[190].y),intBitsToFloat(uf_uniformRegisterVS[190].z),intBitsToFloat(uf_uniformRegisterVS[190].w))));
PV0i.x = tempi.x;
PV0i.y = tempi.x;
PV0i.z = tempi.x;
PV0i.w = tempi.x;
R126i.y = floatBitsToInt(intBitsToFloat(R8i.z) + intBitsToFloat(PV1i.x));
PS0i = R126i.y;
// 13
backupReg0i = R124i.y;
R127i.x = floatBitsToInt(intBitsToFloat(R126i.x) + -(intBitsToFloat(uf_uniformRegisterVS[202].x)));
R124i.y = floatBitsToInt(intBitsToFloat(PS0i) + -(intBitsToFloat(uf_uniformRegisterVS[202].y)));
R127i.z = floatBitsToInt(intBitsToFloat(R3i.y) + intBitsToFloat(PV0i.x));
PV1i.z = R127i.z;
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(uf_uniformRegisterVS[185].x)));
// 14
R125i.x = floatBitsToInt(floor(intBitsToFloat(PV1i.w)));
PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.z) + -(intBitsToFloat(uf_uniformRegisterVS[202].z)));
PV0i.w = floatBitsToInt(fract(intBitsToFloat(PV1i.w)));
// 15
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.z),intBitsToFloat(R3i.w),intBitsToFloat(R9i.z),-0.0),vec4(intBitsToFloat(R127i.x),intBitsToFloat(R124i.y),intBitsToFloat(PV0i.z),0.0)));
PV1i.x = tempi.x;
PV1i.y = tempi.x;
PV1i.z = tempi.x;
PV1i.w = tempi.x;
PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(uf_uniformRegisterVS[187].x)));
// 16
PV0i.x = floatBitsToInt(floor(intBitsToFloat(PS1i)));
PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(0x7f7ffffd));
PV0i.y = clampFI32(PV0i.y);
R17i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(uf_uniformRegisterVS[185].y)));
PS0i = R17i.y;
// 17
R17i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(uf_uniformRegisterVS[185].x)));
PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.y) + -(1.0));
// 18
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R126i.x),intBitsToFloat(R126i.y),intBitsToFloat(R127i.z),intBitsToFloat(R16i.y)),vec4(intBitsToFloat(uf_uniformRegisterVS[11].x),intBitsToFloat(uf_uniformRegisterVS[11].y),intBitsToFloat(uf_uniformRegisterVS[11].z),intBitsToFloat(uf_uniformRegisterVS[11].w))));
PV0i.x = tempi.x;
PV0i.y = tempi.x;
PV0i.z = tempi.x;
PV0i.w = tempi.x;
R2i.w = tempi.x;
R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(R6i.x)) + 1.0));
PS0i = R122i.x;
// 19
PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(uf_uniformRegisterVS[201].w)));
R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.w), intBitsToFloat(PS0i)));
// 20
PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(uf_uniformRegisterVS[202].w)));
PV0i.z = clampFI32(PV0i.z);
// 21
R17i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.y), intBitsToFloat(PV0i.z)));
PV1i.w = R17i.w;
// 22
PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.w) + -(intBitsToFloat(0x3a83126f)));
// 23
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R126i.x),intBitsToFloat(R126i.y),intBitsToFloat(R127i.z),intBitsToFloat(R16i.y)),vec4(intBitsToFloat(uf_uniformRegisterVS[10].x),intBitsToFloat(uf_uniformRegisterVS[10].y),intBitsToFloat(uf_uniformRegisterVS[10].z),intBitsToFloat(uf_uniformRegisterVS[10].w))));
PV1i.x = tempi.x;
PV1i.y = tempi.x;
PV1i.z = tempi.x;
PV1i.w = tempi.x;
R2i.z = tempi.x;
R124i.y = floatBitsToInt(intBitsToFloat(PV0i.w) * intBitsToFloat(0x7f7ffffd));
R124i.y = clampFI32(R124i.y);
PS1i = R124i.y;
// 24
PV0i.x = floatBitsToInt(-(intBitsToFloat(PS1i)) + 1.0);
PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.x));
// 25
PV1i.x = floatBitsToInt(intBitsToFloat(R6i.z) * intBitsToFloat(PS0i));
R124i.z = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(0x7f7ffffd));
// 26
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R126i.x),intBitsToFloat(R126i.y),intBitsToFloat(R127i.z),intBitsToFloat(R16i.y)),vec4(intBitsToFloat(uf_uniformRegisterVS[8].x),intBitsToFloat(uf_uniformRegisterVS[8].y),intBitsToFloat(uf_uniformRegisterVS[8].z),intBitsToFloat(uf_uniformRegisterVS[8].w))));
PV0i.x = tempi.x;
PV0i.y = tempi.x;
PV0i.z = tempi.x;
PV0i.w = tempi.x;
R6i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.y), intBitsToFloat(PV1i.x)));
PS0i = R6i.x;
// 27
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R126i.x),intBitsToFloat(R126i.y),intBitsToFloat(R127i.z),intBitsToFloat(R16i.y)),vec4(intBitsToFloat(uf_uniformRegisterVS[9].x),intBitsToFloat(uf_uniformRegisterVS[9].y),intBitsToFloat(uf_uniformRegisterVS[9].z),intBitsToFloat(uf_uniformRegisterVS[9].w))));
PV1i.x = tempi.x;
PV1i.y = tempi.x;
PV1i.z = tempi.x;
PV1i.w = tempi.x;
R2i.x = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(R124i.z));
PS1i = R2i.x;
// 28
R2i.y = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(R124i.z));
// export
SET_POSITION(vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.w)));
// export
gl_PointSize = (vec4(intBitsToFloat(R6i.x), intBitsToFloat(R6i.y), intBitsToFloat(R6i.y), intBitsToFloat(R6i.y))).x/resScale;
// export
passParameterSem144 = vec4(intBitsToFloat(R17i.x), intBitsToFloat(R17i.y), intBitsToFloat(R17i.z), intBitsToFloat(R17i.w));
// 0
}

View File

@ -1,26 +1,19 @@
#version 420 #version 430
#extension GL_ARB_texture_gather : enable #extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable #extension GL_ARB_separate_shader_objects : enable
// shader 8a0efcdc3f556942 //frambuffer
// start of shader inputs/outputs, predetermined by Cemu. Do not touch
#ifdef VULKAN #ifdef VULKAN
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) #define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) #define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) #define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) #define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
#define gl_VertexID gl_VertexIndex
#define gl_InstanceID gl_InstanceIndex
#else #else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) #define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) #define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) #define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define SET_POSITION(_v) gl_Position = _v
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) #define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
#endif #endif
// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL.
// shader 8a0efcdc3f556942
//halfres, pyarmid start
const float resScale = float($height)/float($gameHeight);
#ifdef VULKAN #ifdef VULKAN
layout(set = 1, binding = 1) uniform ufBlock layout(set = 1, binding = 1) uniform ufBlock
{ {
@ -34,7 +27,8 @@ uniform vec2 uf_fragCoordScale;
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0;
layout(location = 0) in vec4 passParameterSem133; layout(location = 0) in vec4 passParameterSem133;
layout(location = 0) out vec4 passPixelColor0; layout(location = 0) out vec4 passPixelColor0;
// uf_fragCoordScale was moved to the ufBlock // end of shader inputs/outputs
const float resScale = ($gameWidth / $width);
int clampFI32(int v) int clampFI32(int v)
{ {
if( v == 0x7FFFFFFF ) if( v == 0x7FFFFFFF )
@ -69,10 +63,10 @@ backupReg0f = R0f.x;
backupReg1f = R0f.y; backupReg1f = R0f.y;
backupReg0f = R0f.x; backupReg0f = R0f.x;
backupReg1f = R0f.y; backupReg1f = R0f.y;
R0f.x = (intBitsToFloat(uf_remappedPS[0].z) / resScale * 2.0 + backupReg0f); R0f.x = (intBitsToFloat(uf_remappedPS[0].z)*resScale * 2.0 + backupReg0f);
R0f.y = (intBitsToFloat(uf_remappedPS[0].w) / resScale* 2.0 + backupReg1f); R0f.y = (intBitsToFloat(uf_remappedPS[0].w)*resScale * 2.0 + backupReg1f);
R0f.z = (-(intBitsToFloat(uf_remappedPS[0].z) / resScale) * 2.0 + backupReg0f); R0f.z = (-(intBitsToFloat(uf_remappedPS[0].z)*resScale) * 2.0 + backupReg0f);
R0f.w = (-(intBitsToFloat(uf_remappedPS[0].w) / resScale) * 2.0 + backupReg1f); R0f.w = (-(intBitsToFloat(uf_remappedPS[0].w)*resScale) * 2.0 + backupReg1f);
R1f.xyzw = (texture(textureUnitPS0, R0f.xy).xyzw); R1f.xyzw = (texture(textureUnitPS0, R0f.xy).xyzw);
R0f.xyzw = (texture(textureUnitPS0, R0f.zw).xyzw); R0f.xyzw = (texture(textureUnitPS0, R0f.zw).xyzw);
// 0 // 0

View File

@ -0,0 +1,299 @@
#version 430
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
// shader 9ea5cab5137f8604 //point "sprite" 3 verified
// start of shader inputs/outputs, predetermined by Cemu. Do not touch
#ifdef VULKAN
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
#define gl_VertexID gl_VertexIndex
#define gl_InstanceID gl_InstanceIndex
#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define SET_POSITION(_v) gl_Position = _v
#endif
#ifdef VULKAN
layout(set = 0, binding = 0) uniform ufBlock
{
uniform ivec4 uf_remappedVS[17];
};
#else
uniform ivec4 uf_remappedVS[17];
#endif
ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0;
ATTR_LAYOUT(0, 1) in uvec4 attrDataSem5;
out gl_PerVertex
{
vec4 gl_Position;
float gl_PointSize;
};
// end of shader inputs/outputs
const float resScale = float($gameWidth / $width);
int clampFI32(int v)
{
if( v == 0x7FFFFFFF )
return floatBitsToInt(1.0);
else if( v == 0xFFFFFFFF )
return floatBitsToInt(0.0);
return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0));
}
float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; }
void main()
{
vec4 R0f = vec4(0.0);
vec4 R1f = vec4(0.0);
vec4 R2f = vec4(0.0);
vec4 R3f = vec4(0.0);
vec4 R4f = vec4(0.0);
vec4 R5f = vec4(0.0);
vec4 R123f = vec4(0.0);
vec4 R124f = vec4(0.0);
vec4 R125f = vec4(0.0);
vec4 R126f = vec4(0.0);
vec4 R127f = vec4(0.0);
uvec4 attrDecoder;
float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f;
vec4 PV0f = vec4(0.0), PV1f = vec4(0.0);
float PS0f = 0.0, PS1f = 0.0;
vec4 tempf = vec4(0.0);
float tempResultf;
int tempResulti;
ivec4 ARi = ivec4(0);
bool predResult = true;
vec3 cubeMapSTM;
int cubeMapFaceId;
R0f = floatBitsToInt(ivec4(gl_VertexID, 0, 0, gl_InstanceID));
attrDecoder.xyzw = attrDataSem0.xyzw;
attrDecoder = ((attrDecoder>>8)&0xFF)|((attrDecoder<<8)&0xFF00);
attrDecoder.xyzw = floatBitsToInt(vec4(unpackHalf2x16(attrDecoder.x|(attrDecoder.y<<16)),unpackHalf2x16(attrDecoder.z|(attrDecoder.w<<16))));
R1f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(int(attrDecoder.z)), intBitsToFloat(int(attrDecoder.w)));
attrDecoder.xyzw = attrDataSem5.xyzw;
attrDecoder = ((attrDecoder>>8)&0xFF)|((attrDecoder<<8)&0xFF00);
attrDecoder.xyzw = floatBitsToInt(vec4(unpackHalf2x16(attrDecoder.x|(attrDecoder.y<<16)),unpackHalf2x16(attrDecoder.z|(attrDecoder.w<<16))));
R2f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(int(attrDecoder.z)), intBitsToFloat(int(attrDecoder.w)));
// 0
PV0f.x = max(intBitsToFloat(uf_remappedVS[0].w), -(intBitsToFloat(uf_remappedVS[0].w)));
R127f.y = mul_nonIEEE(R2f.x, intBitsToFloat(uf_remappedVS[1].x));
PV0f.z = max(R1f.w, -(R1f.w));
R127f.w = mul_nonIEEE(R2f.y, intBitsToFloat(uf_remappedVS[1].y));
R4f.w = 1.0;
PS0f = R4f.w;
// 1
PV1f.y = mul_nonIEEE(PV0f.z, intBitsToFloat(uf_remappedVS[2].y));
R127f.z = mul_nonIEEE(R2f.z, intBitsToFloat(uf_remappedVS[1].z));
tempResultf = max(0.0, PV0f.x);
tempResultf = log2(tempResultf);
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
R126f.y = tempResultf;
PS1f = R126f.y;
// 2
PV0f.x = -(PV1f.y) + intBitsToFloat(uf_remappedVS[2].x);
R0f.y = -(intBitsToFloat(uf_remappedVS[3].x)) * intBitsToFloat(0x7f7ffffd);
R0f.y = clamp(R0f.y, 0.0, 1.0);
R124f.z = -(intBitsToFloat(uf_remappedVS[3].y)) * intBitsToFloat(0x7f7ffffd);
R124f.z = clamp(R124f.z, 0.0, 1.0);
R124f.w = max(intBitsToFloat(uf_remappedVS[3].x), -(intBitsToFloat(uf_remappedVS[3].x)));
R0f.w = max(intBitsToFloat(uf_remappedVS[3].y), -(intBitsToFloat(uf_remappedVS[3].y)));
PS0f = R0f.w;
// 3
backupReg0f = R127f.y;
R125f.x = -(intBitsToFloat(uf_remappedVS[3].z)) * intBitsToFloat(0x7f7ffffd);
R125f.x = clamp(R125f.x, 0.0, 1.0);
R127f.y = backupReg0f + intBitsToFloat(uf_remappedVS[0].x);
R126f.z = R127f.w + intBitsToFloat(uf_remappedVS[0].y);
R126f.w = max(PV0f.x, 0.0);
PV1f.w = R126f.w;
R0f.z = max(intBitsToFloat(uf_remappedVS[3].z), -(intBitsToFloat(uf_remappedVS[3].z)));
PS1f = R0f.z;
// 4
PV0f.x = mul_nonIEEE(PV1f.w, R126f.y);
PV0f.y = mul_nonIEEE(PV1f.w, intBitsToFloat(uf_remappedVS[4].z));
PV0f.z = mul_nonIEEE(PV1f.w, intBitsToFloat(uf_remappedVS[4].y));
PV0f.w = mul_nonIEEE(PV1f.w, intBitsToFloat(uf_remappedVS[4].x));
R125f.z = PV1f.w + -(intBitsToFloat(0x3a83126f));
PS0f = R125f.z;
// 5
PV1f.x = R2f.w + PV0f.w;
R125f.y = R127f.z + intBitsToFloat(uf_remappedVS[0].z);
PV1f.z = R2f.w + PV0f.y;
PV1f.w = R2f.w + PV0f.z;
PS1f = exp2(PV0f.x);
// 6
PV0f.x = PV1f.w * intBitsToFloat(0x40c90fdb);
PV0f.y = PV1f.x * intBitsToFloat(0x40c90fdb);
PV0f.z = -(PS1f) + 1.0;
PV0f.w = PV1f.z * intBitsToFloat(0x40c90fdb);
R127f.z = mul_nonIEEE(R126f.w, intBitsToFloat(uf_remappedVS[5].x));
PS0f = R127f.z;
// 7
R123f.x = (PV0f.w * intBitsToFloat(0x3e22f983) + 0.5);
PV1f.x = R123f.x;
R126f.y = mul_nonIEEE(PV0f.z, intBitsToFloat(uf_remappedVS[1].w));
PV1f.y = R126f.y;
R123f.z = (PV0f.y * intBitsToFloat(0x3e22f983) + 0.5);
PV1f.z = R123f.z;
R123f.w = (PV0f.x * intBitsToFloat(0x3e22f983) + 0.5);
PV1f.w = R123f.w;
R124f.y = mul_nonIEEE(R126f.w, intBitsToFloat(uf_remappedVS[5].y));
PS1f = R124f.y;
// 8
R2f.x = mul_nonIEEE(PV1f.y, R127f.y);
PV0f.y = fract(PV1f.z);
PV0f.z = fract(PV1f.w);
PV0f.w = fract(PV1f.x);
R127f.y = mul_nonIEEE(PV1f.y, R126f.z);
PS0f = R127f.y;
// 9
R123f.x = (PV0f.y * intBitsToFloat(0x40c90fdb) + -(intBitsToFloat(0x40490fdb)));
PV1f.x = R123f.x;
R123f.y = (PV0f.z * intBitsToFloat(0x40c90fdb) + -(intBitsToFloat(0x40490fdb)));
PV1f.y = R123f.y;
R123f.z = (PV0f.w * intBitsToFloat(0x40c90fdb) + -(intBitsToFloat(0x40490fdb)));
PV1f.z = R123f.z;
R2f.w = mul_nonIEEE(R126f.y, R125f.y);
R127f.x = mul_nonIEEE(R126f.w, intBitsToFloat(uf_remappedVS[5].z));
PS1f = R127f.x;
// 10
R126f.x = PV1f.z * intBitsToFloat(0x3e22f983);
R126f.y = PV1f.x * intBitsToFloat(0x3e22f983);
PV0f.y = R126f.y;
R126f.z = mul_nonIEEE(R1f.x, intBitsToFloat(uf_remappedVS[6].x));
R125f.w = PV1f.y * intBitsToFloat(0x3e22f983);
R127f.w = mul_nonIEEE(R1f.y, intBitsToFloat(uf_remappedVS[6].y));
PS0f = R127f.w;
// 11
R1f.x = mul_nonIEEE(R126f.w, R124f.y);
R125f.y = mul_nonIEEE(R126f.w, R127f.x);
PV1f.z = mul_nonIEEE(R1f.z, intBitsToFloat(uf_remappedVS[6].z));
R1f.w = mul_nonIEEE(R126f.w, R127f.z);
R127f.x = sin((PV0f.y)/0.1591549367);
PS1f = R127f.x;
// 12
backupReg0f = R125f.z;
R0f.x = R127f.w + intBitsToFloat(uf_remappedVS[7].y);
R124f.y = R126f.z + intBitsToFloat(uf_remappedVS[7].x);
R125f.z = backupReg0f * intBitsToFloat(0x7f7ffffd);
R125f.z = clamp(R125f.z, 0.0, 1.0);
R127f.w = PV1f.z + intBitsToFloat(uf_remappedVS[7].z);
R126f.z = sin((R125f.w)/0.1591549367);
PS0f = R126f.z;
// 13
R123f.z = (mul_nonIEEE(R126f.w,intBitsToFloat(uf_remappedVS[8].x)) + intBitsToFloat(uf_remappedVS[8].y));
PV1f.z = R123f.z;
R124f.x = sin((R126f.x)/0.1591549367);
PS1f = R124f.x;
// 14
PV0f.y = floor(PV1f.z);
R3f.z = 0.0;
PS0f = cos((R126f.y)/0.1591549367);
// 15
PV1f.x = mul_nonIEEE(PV0f.y, intBitsToFloat(uf_remappedVS[9].x));
PV1f.z = -(R127f.x) + PS0f;
PS1f = cos((R125f.w)/0.1591549367);
// 16
backupReg0f = R0f.y;
PV0f.x = fract(PV1f.x);
PV0f.y = -(R126f.z) + PS1f;
PV0f.z = floor(PV1f.x);
R123f.w = (mul_nonIEEE(PV1f.z,backupReg0f) + R127f.x);
PV0f.w = R123f.w;
PS0f = cos((R126f.x)/0.1591549367);
// 17
PV1f.x = -(R124f.x) + PS0f;
PV1f.y = mul_nonIEEE(R124f.w, PV0f.w);
R123f.z = (mul_nonIEEE(PV0f.y,R124f.z) + R126f.z);
PV1f.z = R123f.z;
PV1f.w = mul_nonIEEE(PV0f.x, intBitsToFloat(uf_remappedVS[10].x));
R3f.y = mul_nonIEEE(PV0f.z, intBitsToFloat(uf_remappedVS[9].y));
PS1f = R3f.y;
// 18
backupReg0f = R0f.w;
PV0f.x = R2f.x + PV1f.y;
R123f.y = (mul_nonIEEE(PV1f.x,R125f.x) + R124f.x);
PV0f.y = R123f.y;
PV0f.z = floor(PV1f.w);
PV0f.w = mul_nonIEEE(backupReg0f, PV1f.z);
// 19
backupReg0f = R0f.z;
PV1f.x = R127f.y + PV0f.w;
PV1f.y = PV0f.x + R1f.w;
PV1f.z = mul_nonIEEE(backupReg0f, PV0f.y);
R3f.x = mul_nonIEEE(PV0f.z, intBitsToFloat(uf_remappedVS[9].x));
PS1f = R3f.x;
// 20
PV0f.x = PV1f.x + R1f.x;
R0f.y = R124f.y + PV1f.y;
PV0f.w = R2f.w + PV1f.z;
// 21
R1f.y = R0f.x + PV0f.x;
PV1f.z = PV0f.w + R125f.y;
// 22
R0f.z = R127f.w + PV1f.z;
PV0f.z = R0f.z;
// 23
tempf.x = dot(vec4(R0f.y,R1f.y,PV0f.z,R4f.w),vec4(intBitsToFloat(uf_remappedVS[11].x),intBitsToFloat(uf_remappedVS[11].y),intBitsToFloat(uf_remappedVS[11].z),intBitsToFloat(uf_remappedVS[11].w)));
PV1f.x = tempf.x;
PV1f.y = tempf.x;
PV1f.z = tempf.x;
PV1f.w = tempf.x;
R5f.w = tempf.x;
// 24
PV0f.y = PV1f.x + -(intBitsToFloat(uf_remappedVS[3].w));
// 25
PV1f.x = mul_nonIEEE(PV0f.y, intBitsToFloat(uf_remappedVS[12].w));
PV1f.x = clamp(PV1f.x, 0.0, 1.0);
// 26
R3f.w = mul_nonIEEE(R125f.z, PV1f.x);
PV0f.w = R3f.w;
// 27
PV1f.z = PV0f.w + -(intBitsToFloat(0x3a83126f));
// 28
tempf.x = dot(vec4(R0f.y,R1f.y,R0f.z,R4f.w),vec4(intBitsToFloat(uf_remappedVS[13].x),intBitsToFloat(uf_remappedVS[13].y),intBitsToFloat(uf_remappedVS[13].z),intBitsToFloat(uf_remappedVS[13].w)));
PV0f.x = tempf.x;
PV0f.y = tempf.x;
PV0f.z = tempf.x;
PV0f.w = tempf.x;
R5f.z = tempf.x;
R2f.w = PV1f.z * intBitsToFloat(0x7f7ffffd);
R2f.w = clamp(R2f.w, 0.0, 1.0);
PS0f = R2f.w;
// export
// skipped export to semanticId 255
// 0
PV0f.y = -(R2f.w) + 1.0;
R125f.x = 1.0 / R5f.z;
PS0f = R125f.x;
// 1
backupReg0f = R0f.z;
tempf.x = dot(vec4(R0f.y,R1f.y,backupReg0f,R4f.w),vec4(intBitsToFloat(uf_remappedVS[14].x),intBitsToFloat(uf_remappedVS[14].y),intBitsToFloat(uf_remappedVS[14].z),intBitsToFloat(uf_remappedVS[14].w)));
PV1f.x = tempf.x;
PV1f.y = tempf.x;
PV1f.z = tempf.x;
PV1f.w = tempf.x;
R125f.z = PV0f.y * intBitsToFloat(0x7f7ffffd);
PS1f = R125f.z;
// 2
backupReg0f = R0f.z;
tempf.x = dot(vec4(R0f.y,R1f.y,backupReg0f,R4f.w),vec4(intBitsToFloat(uf_remappedVS[15].x),intBitsToFloat(uf_remappedVS[15].y),intBitsToFloat(uf_remappedVS[15].z),intBitsToFloat(uf_remappedVS[15].w)));
PV0f.x = tempf.x;
PV0f.y = tempf.x;
PV0f.z = tempf.x;
PV0f.w = tempf.x;
R5f.x = PV1f.x + PS1f;
PS0f = R5f.x;
// 3
R5f.y = PV0f.x + R125f.z;
PV1f.w = R125f.x * intBitsToFloat(uf_remappedVS[16].z);
// 4
R3f.x = mul_nonIEEE(R2f.w, PV1f.w);
// export
SET_POSITION(vec4(R5f.x, R5f.y, R5f.z, R5f.w));
// export
gl_PointSize = (vec4(R3f.x, R3f.y, R3f.y, R3f.y)).x/resScale;
// 0
}

View File

@ -0,0 +1,752 @@
#version 430
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
// shader a574ba7d973b3412 //point "sprite" 4 unverified
// start of shader inputs/outputs, predetermined by Cemu. Do not touch
#ifdef VULKAN
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
#define gl_VertexID gl_VertexIndex
#define gl_InstanceID gl_InstanceIndex
#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define SET_POSITION(_v) gl_Position = _v
#endif
#ifdef VULKAN
layout(set = 0, binding = 0) uniform ufBlock
{
uniform ivec4 uf_uniformRegisterVS[256];
};
#else
uniform ivec4 uf_uniformRegisterVS[256];
#endif
ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0;
ATTR_LAYOUT(0, 1) in uvec4 attrDataSem1;
ATTR_LAYOUT(0, 2) in uvec4 attrDataSem2;
ATTR_LAYOUT(0, 3) in uvec4 attrDataSem3;
ATTR_LAYOUT(0, 4) in uvec4 attrDataSem5;
ATTR_LAYOUT(0, 5) in uvec4 attrDataSem6;
ATTR_LAYOUT(0, 6) in uvec4 attrDataSem7;
out gl_PerVertex
{
vec4 gl_Position;
float gl_PointSize;
};
layout(location = 0) out vec4 passParameterSem144;
// end of shader inputs/outputs
const float resScale = float($gameWidth / $width);
int clampFI32(int v)
{
if( v == 0x7FFFFFFF )
return floatBitsToInt(1.0);
else if( v == 0xFFFFFFFF )
return floatBitsToInt(0.0);
return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0));
}
float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; }
void main()
{
ivec4 R0i = ivec4(0);
ivec4 R1i = ivec4(0);
ivec4 R2i = ivec4(0);
ivec4 R3i = ivec4(0);
ivec4 R4i = ivec4(0);
ivec4 R5i = ivec4(0);
ivec4 R6i = ivec4(0);
ivec4 R7i = ivec4(0);
ivec4 R8i = ivec4(0);
ivec4 R9i = ivec4(0);
ivec4 R10i = ivec4(0);
ivec4 R11i = ivec4(0);
ivec4 R12i = ivec4(0);
ivec4 R13i = ivec4(0);
ivec4 R14i = ivec4(0);
ivec4 R122i = ivec4(0);
ivec4 R123i = ivec4(0);
ivec4 R124i = ivec4(0);
ivec4 R125i = ivec4(0);
ivec4 R126i = ivec4(0);
ivec4 R127i = ivec4(0);
uvec4 attrDecoder;
int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i;
ivec4 PV0i = ivec4(0), PV1i = ivec4(0);
int PS0i = 0, PS1i = 0;
ivec4 tempi = ivec4(0);
float tempResultf;
int tempResulti;
ivec4 ARi = ivec4(0);
bool predResult = true;
vec3 cubeMapSTM;
int cubeMapFaceId;
R0i = ivec4(gl_VertexID, 0, 0, gl_InstanceID);
attrDecoder.xyz = attrDataSem0.xyz;
attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24));
attrDecoder.w = 0;
R4i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), floatBitsToInt(1.0));
attrDecoder.x = attrDataSem3.x;
attrDecoder.x = (attrDecoder.x>>24)|((attrDecoder.x>>8)&0xFF00)|((attrDecoder.x<<8)&0xFF0000)|((attrDecoder.x<<24));
attrDecoder.y = 0;
attrDecoder.z = 0;
attrDecoder.w = 0;
attrDecoder.xyzw = uvec4((attrDecoder.x>>0)&0x3FF,(attrDecoder.x>>10)&0x3FF,(attrDecoder.x>>20)&0x3FF,(attrDecoder.x>>30)&0x3);
if( (attrDecoder.x&0x200) != 0 ) attrDecoder.x |= 0xFFFFFC00;
if( (attrDecoder.y&0x200) != 0 ) attrDecoder.y |= 0xFFFFFC00;
if( (attrDecoder.z&0x200) != 0 ) attrDecoder.z |= 0xFFFFFC00;
attrDecoder.x = floatBitsToUint(max(float(int(attrDecoder.x))/511.0,-1.0));
attrDecoder.y = floatBitsToUint(max(float(int(attrDecoder.y))/511.0,-1.0));
attrDecoder.z = floatBitsToUint(max(float(int(attrDecoder.z))/511.0,-1.0));
attrDecoder.w = floatBitsToUint(float(attrDecoder.w));
R3i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w));
attrDecoder.xyzw = attrDataSem2.xyzw;
R1i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w));
attrDecoder.xyzw = floatBitsToUint(vec4(attrDataSem1.xyzw)/255.0);
R2i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w));
attrDecoder.xyzw = attrDataSem5.xyzw;
attrDecoder = ((attrDecoder>>8)&0xFF)|((attrDecoder<<8)&0xFF00);
attrDecoder.xyzw = floatBitsToInt(vec4(unpackHalf2x16(attrDecoder.x|(attrDecoder.y<<16)),unpackHalf2x16(attrDecoder.z|(attrDecoder.w<<16))));
R5i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w));
attrDecoder.xyzw = attrDataSem6.xyzw;
attrDecoder = ((attrDecoder>>8)&0xFF)|((attrDecoder<<8)&0xFF00);
attrDecoder.xyzw = floatBitsToInt(vec4(unpackHalf2x16(attrDecoder.x|(attrDecoder.y<<16)),unpackHalf2x16(attrDecoder.z|(attrDecoder.w<<16))));
R6i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w));
attrDecoder.xyzw = attrDataSem7.xyzw;
attrDecoder = ((attrDecoder>>8)&0xFF)|((attrDecoder<<8)&0xFF00);
attrDecoder.xyzw = floatBitsToInt(vec4(unpackHalf2x16(attrDecoder.x|(attrDecoder.y<<16)),unpackHalf2x16(attrDecoder.z|(attrDecoder.w<<16))));
R7i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w));
// 0
PV0i.x = floatBitsToInt(intBitsToFloat(R4i.x) + -(intBitsToFloat(uf_uniformRegisterVS[204].x)));
PV0i.y = floatBitsToInt(intBitsToFloat(R4i.y) + -(intBitsToFloat(uf_uniformRegisterVS[204].y)));
PV0i.z = floatBitsToInt(intBitsToFloat(R4i.z) + -(intBitsToFloat(uf_uniformRegisterVS[204].z)));
R11i.w = 0x3f800000;
R127i.x = R1i.y * 0x00000003;
PS0i = R127i.x;
// 1
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),-0.0),vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),0.0)));
PV1i.x = tempi.x;
PV1i.y = tempi.x;
PV1i.z = tempi.x;
PV1i.w = tempi.x;
R127i.z = R1i.x * 0x00000003;
PS1i = R127i.z;
// 2
R126i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R4i.x),intBitsToFloat(R4i.y),intBitsToFloat(R4i.z),-0.0),vec4(intBitsToFloat(R4i.x),intBitsToFloat(R4i.y),intBitsToFloat(R4i.z),0.0)));
PV0i.x = R126i.x;
PV0i.y = R126i.x;
PV0i.z = R126i.x;
PV0i.w = R126i.x;
PS0i = floatBitsToInt(sqrt(intBitsToFloat(PV1i.x)));
// 3
PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(uf_uniformRegisterVS[203].y)));
R0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), intBitsToFloat(uf_uniformRegisterVS[187].w)));
R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.y), intBitsToFloat(uf_uniformRegisterVS[187].w)));
R0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.x), intBitsToFloat(uf_uniformRegisterVS[187].w)));
R126i.z = R1i.z * 0x00000003;
PS1i = R126i.z;
// 4
PV0i.x = floatBitsToInt(max(intBitsToFloat(R5i.w), -(intBitsToFloat(R5i.w))));
R14i.y = floatBitsToInt(max(intBitsToFloat(uf_uniformRegisterVS[196].w), -(intBitsToFloat(uf_uniformRegisterVS[196].w))));
R14i.z = 0x3f800000;
PV0i.w = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + intBitsToFloat(uf_uniformRegisterVS[203].w));
R124i.w = floatBitsToInt(float(R127i.x));
PS0i = R124i.w;
// 5
tempResultf = intBitsToFloat(PS0i);
tempResultf = floor(tempResultf);
tempResultf = clamp(tempResultf, -256.0, 255.0);
ARi.x = int(tempResultf);
PV1i.x = floatBitsToInt(tempResultf);
PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(uf_uniformRegisterVS[193].y)));
R123i.z = floatBitsToInt((intBitsToFloat(PV0i.w) * intBitsToFloat(0x3e22f983) + 0.5));
PV1i.z = R123i.z;
R125i.w = floatBitsToInt(max(intBitsToFloat(uf_uniformRegisterVS[197].w), -(intBitsToFloat(uf_uniformRegisterVS[197].w))));
R127i.y = floatBitsToInt(float(R127i.z));
PS1i = R127i.y;
// 6
R12i.x = floatBitsToInt(-(intBitsToFloat(PV1i.y)) + intBitsToFloat(uf_uniformRegisterVS[193].x));
PV0i.y = floatBitsToInt(fract(intBitsToFloat(PV1i.z)));
PV0i.z = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[197].w) > 0.0)?1.0:0.0);
PV0i.w = floatBitsToInt((0.0 > intBitsToFloat(uf_uniformRegisterVS[197].w))?1.0:0.0);
R127i.x = R1i.w * 0x00000003;
PS0i = R127i.x;
// 7
R123i.x = floatBitsToInt((intBitsToFloat(PV0i.y) * intBitsToFloat(0x40c90fdb) + -(intBitsToFloat(0x40490fdb))));
PV1i.x = R123i.x;
tempResultf = intBitsToFloat(R127i.y);
tempResultf = floor(tempResultf);
tempResultf = clamp(tempResultf, -256.0, 255.0);
ARi.y = int(tempResultf);
PV1i.y = floatBitsToInt(tempResultf);
PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.z) + -(intBitsToFloat(PV0i.w)));
R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.x), intBitsToFloat(uf_uniformRegisterVS[198].x)));
R7i.y = floatBitsToInt(float(R126i.z));
PS1i = R7i.y;
// 8
R9i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.y), intBitsToFloat(uf_uniformRegisterVS[198].y)));
R12i.y = floatBitsToInt(max(intBitsToFloat(PV1i.z), -(intBitsToFloat(PV1i.z))));
tempResultf = intBitsToFloat(PS1i);
tempResultf = floor(tempResultf);
tempResultf = clamp(tempResultf, -256.0, 255.0);
ARi.z = int(tempResultf);
PV0i.z = floatBitsToInt(tempResultf);
R127i.w = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(0x3e22f983));
PS0i = floatBitsToInt(sqrt(intBitsToFloat(R126i.x)));
// 9
R13i.x = floatBitsToInt(-(intBitsToFloat(uf_uniformRegisterVS[201].y)) * intBitsToFloat(0x7f7ffffd));
R13i.x = clampFI32(R13i.x);
R13i.y = floatBitsToInt(max(intBitsToFloat(uf_uniformRegisterVS[201].x), -(intBitsToFloat(uf_uniformRegisterVS[201].x))));
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(uf_uniformRegisterVS[203].z)));
R12i.w = floatBitsToInt(-(intBitsToFloat(uf_uniformRegisterVS[201].x)) * intBitsToFloat(0x7f7ffffd));
R12i.w = clampFI32(R12i.w);
R9i.w = floatBitsToInt(float(R127i.x));
PS1i = R9i.w;
// 10
R10i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.z), intBitsToFloat(uf_uniformRegisterVS[198].z)));
PV0i.y = floatBitsToInt(fract(intBitsToFloat(PV1i.z)));
R13i.z = floatBitsToInt(intBitsToFloat(R126i.w) + intBitsToFloat(uf_uniformRegisterVS[197].x));
tempResultf = intBitsToFloat(PS1i);
tempResultf = floor(tempResultf);
tempResultf = clamp(tempResultf, -256.0, 255.0);
ARi.w = int(tempResultf);
PV0i.w = floatBitsToInt(tempResultf);
PS0i = floatBitsToInt(cos((intBitsToFloat(R127i.w))/0.1591549367));
// 11
PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.y) + -(0.5));
PV1i.y = floatBitsToInt(intBitsToFloat(PS0i) + 1.0);
R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(uf_uniformRegisterVS[ARi.x+40].x)));
R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(uf_uniformRegisterVS[ARi.x+40].y)));
R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(uf_uniformRegisterVS[ARi.x+40].z)));
PS1i = R127i.x;
// 12
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(uf_uniformRegisterVS[203].x)));
R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(uf_uniformRegisterVS[ARi.x+40].w)));
R12i.z = floatBitsToInt(-(intBitsToFloat(R7i.w)) + 1.0);
PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.x) + 1.0);
tempResultf = max(0.0, intBitsToFloat(R125i.w));
tempResultf = log2(tempResultf);
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
R11i.y = floatBitsToInt(tempResultf);
PS0i = R11i.y;
// 13
R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(uf_uniformRegisterVS[ARi.x+41].z)));
R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(uf_uniformRegisterVS[ARi.x+41].y)));
R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(uf_uniformRegisterVS[ARi.x+41].x)));
R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(uf_uniformRegisterVS[ARi.x+41].w)));
R1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(PV0i.x)));
PS1i = R1i.w;
// 14
backupReg0i = R0i.w;
R1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(uf_uniformRegisterVS[ARi.x+42].z)));
R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(uf_uniformRegisterVS[ARi.x+42].y)));
R124i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(uf_uniformRegisterVS[ARi.x+42].x)));
R0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(uf_uniformRegisterVS[ARi.x+42].w)));
R0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PS1i)));
PS0i = R0i.z;
// 15
backupReg0i = R125i.z;
PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(uf_uniformRegisterVS[ARi.y+40].x)));
R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(uf_uniformRegisterVS[ARi.y+40].w)));
R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(uf_uniformRegisterVS[ARi.y+40].z)));
R124i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(uf_uniformRegisterVS[ARi.y+40].y)));
R10i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R1i.w)));
PS1i = R10i.y;
// 16
backupReg0i = R126i.z;
R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(uf_uniformRegisterVS[ARi.y+41].x)));
R1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(uf_uniformRegisterVS[ARi.y+41].w)));
R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(uf_uniformRegisterVS[ARi.y+41].z)));
R125i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(uf_uniformRegisterVS[ARi.y+41].y)));
R3i.x = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(PV1i.x));
PS0i = R3i.x;
// 17
backupReg0i = R127i.w;
backupReg1i = R124i.w;
R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(uf_uniformRegisterVS[ARi.y+42].x)));
R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(uf_uniformRegisterVS[ARi.y+42].w)));
R1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(uf_uniformRegisterVS[ARi.y+42].z)));
R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(uf_uniformRegisterVS[ARi.y+42].y)));
R124i.w = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(backupReg1i));
PS1i = R124i.w;
// 18
R0i.x = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(R126i.x));
R8i.y = floatBitsToInt(intBitsToFloat(R126i.y) + intBitsToFloat(R125i.y));
R3i.z = floatBitsToInt(intBitsToFloat(R127i.x) + intBitsToFloat(R125i.z));
R3i.w = floatBitsToInt(intBitsToFloat(R124i.y) + intBitsToFloat(R125i.w));
R9i.z = floatBitsToInt(intBitsToFloat(R125i.x) + intBitsToFloat(R126i.z));
PS0i = R9i.z;
// 19
backupReg0i = R3i.y;
R8i.x = floatBitsToInt(intBitsToFloat(R124i.z) + intBitsToFloat(R124i.x));
R3i.y = floatBitsToInt(intBitsToFloat(R126i.w) + intBitsToFloat(R1i.y));
R11i.z = floatBitsToInt(intBitsToFloat(R1i.x) + intBitsToFloat(R1i.z));
R4i.w = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(R127i.w));
R9i.y = floatBitsToInt(intBitsToFloat(R0i.w) + intBitsToFloat(R127i.y));
PS1i = R9i.y;
// 20
backupReg0i = R0i.y;
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(uf_uniformRegisterVS[ARi.z+40].x)));
R0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(uf_uniformRegisterVS[ARi.z+40].w)));
R1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(uf_uniformRegisterVS[ARi.z+40].z)));
R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(uf_uniformRegisterVS[ARi.z+40].y)));
R8i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R1i.w)));
PS0i = R8i.w;
// 21
backupReg0i = R3i.x;
R3i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(uf_uniformRegisterVS[ARi.z+41].x)));
R1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(uf_uniformRegisterVS[ARi.z+41].w)));
R8i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(uf_uniformRegisterVS[ARi.z+41].z)));
R1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(uf_uniformRegisterVS[ARi.z+41].y)));
R11i.x = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(backupReg0i));
PS1i = R11i.x;
// 22
R1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(uf_uniformRegisterVS[ARi.z+42].x)));
R7i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(uf_uniformRegisterVS[ARi.z+42].w)));
R10i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(uf_uniformRegisterVS[ARi.z+42].z)));
R0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(uf_uniformRegisterVS[ARi.z+42].y)));
R10i.w = floatBitsToInt(intBitsToFloat(R127i.w) + intBitsToFloat(R124i.w));
PS0i = R10i.w;
// 0
R127i.x = floatBitsToInt(intBitsToFloat(R3i.x) + intBitsToFloat(R0i.x));
R126i.y = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(R8i.y));
R127i.z = floatBitsToInt(intBitsToFloat(R1i.z) + intBitsToFloat(R3i.z));
R124i.w = floatBitsToInt(intBitsToFloat(R1i.w) + intBitsToFloat(R3i.w));
R0i.x = floatBitsToInt(intBitsToFloat(R4i.x) + intBitsToFloat(R0i.z));
PS0i = R0i.x;
// 1
R125i.x = floatBitsToInt(intBitsToFloat(R1i.x) + intBitsToFloat(R8i.x));
R124i.y = floatBitsToInt(intBitsToFloat(R1i.y) + intBitsToFloat(R3i.y));
R126i.z = floatBitsToInt(intBitsToFloat(R8i.z) + intBitsToFloat(R9i.z));
R125i.w = floatBitsToInt(intBitsToFloat(R0i.w) + intBitsToFloat(R4i.w));
R8i.z = floatBitsToInt(intBitsToFloat(R4i.z) + intBitsToFloat(R8i.w));
PS1i = R8i.z;
// 2
backupReg0i = R9i.x;
R9i.x = floatBitsToInt(intBitsToFloat(R7i.y) + intBitsToFloat(R9i.y));
R7i.y = floatBitsToInt(intBitsToFloat(R10i.z) + intBitsToFloat(R11i.z));
R10i.z = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(uf_uniformRegisterVS[197].y));
R0i.w = floatBitsToInt(max(intBitsToFloat(uf_uniformRegisterVS[201].y), -(intBitsToFloat(uf_uniformRegisterVS[201].y))));
R8i.w = floatBitsToInt(1.0);
PS0i = R8i.w;
// 3
backupReg0i = R4i.y;
R4i.x = floatBitsToInt(-(intBitsToFloat(uf_uniformRegisterVS[201].z)) * intBitsToFloat(0x7f7ffffd));
R4i.x = clampFI32(R4i.x);
R4i.y = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(R10i.y));
R4i.z = floatBitsToInt(intBitsToFloat(R10i.x) + intBitsToFloat(uf_uniformRegisterVS[197].z));
R4i.w = floatBitsToInt(max(intBitsToFloat(uf_uniformRegisterVS[201].z), -(intBitsToFloat(uf_uniformRegisterVS[201].z))));
R124i.z = floatBitsToInt(max(intBitsToFloat(R7i.x), -(intBitsToFloat(R7i.x))));
PS1i = R124i.z;
// 4
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(uf_uniformRegisterVS[195].x)));
PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.z), intBitsToFloat(uf_uniformRegisterVS[195].w)));
PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.z), intBitsToFloat(uf_uniformRegisterVS[195].z)));
PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.y), intBitsToFloat(uf_uniformRegisterVS[195].y)));
R1i.z = 0;
PS0i = R1i.z;
// 5
R5i.xyz = floatBitsToInt(vec3(intBitsToFloat(PV0i.w),intBitsToFloat(PV0i.x),-(intBitsToFloat(PV0i.y))) + vec3(intBitsToFloat(uf_uniformRegisterVS[196].y),intBitsToFloat(uf_uniformRegisterVS[196].x),1.0));
R5i.w = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(uf_uniformRegisterVS[196].z));
R10i.x = floatBitsToInt(-(intBitsToFloat(uf_uniformRegisterVS[196].w)) * intBitsToFloat(0x7f7ffffd));
R10i.x = clampFI32(R10i.x);
PS1i = R10i.x;
// 6
tempResultf = intBitsToFloat(R9i.w);
tempResultf = floor(tempResultf);
tempResultf = clamp(tempResultf, -256.0, 255.0);
ARi.x = int(tempResultf);
PV0i.x = floatBitsToInt(tempResultf);
PV0i.y = floatBitsToInt(max(intBitsToFloat(uf_uniformRegisterVS[199].w), -(intBitsToFloat(uf_uniformRegisterVS[199].w))));
PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.z), intBitsToFloat(uf_uniformRegisterVS[194].z)));
// 7
PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(R124i.z)));
R12i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(uf_uniformRegisterVS[194].x));
// 8
R7i.x = floatBitsToInt(floor(intBitsToFloat(PV1i.y)));
// 9
R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(uf_uniformRegisterVS[ARi.x+40].z)));
R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(uf_uniformRegisterVS[ARi.x+40].y)));
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(uf_uniformRegisterVS[ARi.x+40].x)));
R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(uf_uniformRegisterVS[ARi.x+40].w)));
// 10
backupReg0i = R11i.x;
R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(uf_uniformRegisterVS[ARi.x+41].z)));
R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(uf_uniformRegisterVS[ARi.x+41].y)));
R124i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(uf_uniformRegisterVS[ARi.x+41].x)));
R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(uf_uniformRegisterVS[ARi.x+41].w)));
R11i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(backupReg0i));
PS0i = R11i.x;
// 11
backupReg0i = R2i.w;
backupReg1i = R127i.y;
R2i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(uf_uniformRegisterVS[ARi.x+42].z)));
R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(uf_uniformRegisterVS[ARi.x+42].y)));
R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(uf_uniformRegisterVS[ARi.x+42].x)));
R2i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(uf_uniformRegisterVS[ARi.x+42].w)));
R2i.y = floatBitsToInt(intBitsToFloat(backupReg1i) + intBitsToFloat(R10i.w));
PS1i = R2i.y;
// 12
backupReg0i = R127i.x;
backupReg1i = R127i.z;
backupReg2i = R127i.w;
backupReg3i = R126i.y;
backupReg4i = R126i.z;
R127i.x = floatBitsToInt(intBitsToFloat(R124i.z) + intBitsToFloat(backupReg0i));
R126i.y = floatBitsToInt(intBitsToFloat(R125i.y) + intBitsToFloat(R124i.w));
R127i.z = floatBitsToInt(intBitsToFloat(R124i.x) + intBitsToFloat(backupReg1i));
R127i.w = floatBitsToInt(intBitsToFloat(backupReg2i) + intBitsToFloat(backupReg3i));
R126i.z = floatBitsToInt(intBitsToFloat(R126i.x) + intBitsToFloat(backupReg4i));
PS0i = R126i.z;
// 13
backupReg0i = R125i.x;
backupReg1i = R127i.y;
backupReg2i = R126i.w;
R125i.x = floatBitsToInt(intBitsToFloat(R125i.z) + intBitsToFloat(backupReg0i));
R127i.y = floatBitsToInt(intBitsToFloat(backupReg1i) + intBitsToFloat(R125i.w));
R125i.z = floatBitsToInt(intBitsToFloat(R2i.x) + intBitsToFloat(R7i.y));
R126i.w = floatBitsToInt(intBitsToFloat(backupReg2i) + intBitsToFloat(R124i.y));
R125i.w = floatBitsToInt(intBitsToFloat(R2i.w) + intBitsToFloat(R9i.x));
PS1i = R125i.w;
// 14
backupReg0i = R0i.x;
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(R4i.y),intBitsToFloat(R8i.z),intBitsToFloat(R11i.w)),vec4(intBitsToFloat(R11i.x),intBitsToFloat(R2i.y),intBitsToFloat(R127i.z),intBitsToFloat(R127i.w))));
PV0i.x = tempi.x;
PV0i.y = tempi.x;
PV0i.z = tempi.x;
PV0i.w = tempi.x;
R9i.w = tempi.x;
// 15
backupReg0i = R0i.x;
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(R4i.y),intBitsToFloat(R8i.z),intBitsToFloat(R11i.w)),vec4(intBitsToFloat(R127i.x),intBitsToFloat(R126i.y),intBitsToFloat(R126i.z),intBitsToFloat(R126i.w))));
PV1i.x = tempi.x;
PV1i.y = tempi.x;
PV1i.z = tempi.x;
PV1i.w = tempi.x;
R2i.z = tempi.x;
R127i.x = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(uf_uniformRegisterVS[202].x)));
PS1i = R127i.x;
// 16
backupReg0i = R0i.x;
backupReg1i = R4i.y;
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),intBitsToFloat(R8i.z),intBitsToFloat(R11i.w)),vec4(intBitsToFloat(R125i.x),intBitsToFloat(R127i.y),intBitsToFloat(R125i.z),intBitsToFloat(R125i.w))));
PV0i.x = tempi.x;
PV0i.y = tempi.x;
PV0i.z = tempi.x;
PV0i.w = tempi.x;
R4i.y = tempi.x;
R127i.y = floatBitsToInt(intBitsToFloat(PV1i.x) + -(intBitsToFloat(uf_uniformRegisterVS[202].y)));
PS0i = R127i.y;
// 17
R125i.z = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(uf_uniformRegisterVS[202].z)));
PV1i.z = R125i.z;
// 18
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.y),intBitsToFloat(PV1i.z),-0.0),vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.y),intBitsToFloat(PV1i.z),0.0)));
PV0i.x = tempi.x;
PV0i.y = tempi.x;
PV0i.z = tempi.x;
PV0i.w = tempi.x;
// 19
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.y),intBitsToFloat(R125i.z),-0.0),vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.y),intBitsToFloat(R125i.z),0.0)));
PV1i.x = tempi.x;
PV1i.y = tempi.x;
PV1i.z = tempi.x;
PV1i.w = tempi.x;
PS1i = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x)));
// 20
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), intBitsToFloat(uf_uniformRegisterVS[194].w)));
tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x));
PS0i = floatBitsToInt(tempResultf);
// 21
PV1i.x = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + intBitsToFloat(R12i.x));
PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PS0i)));
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PS0i)));
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(PS0i)));
// 22
PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.w) + -(0.0));
R127i.y = floatBitsToInt(intBitsToFloat(PV1i.y) + -(1.0));
PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.z) + -(0.0));
R2i.w = floatBitsToInt(max(intBitsToFloat(PV1i.x), 0.0));
PV0i.w = R2i.w;
// 23
PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(uf_uniformRegisterVS[200].y)));
PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(uf_uniformRegisterVS[200].x)));
R8i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R14i.y), intBitsToFloat(PV0i.z)));
PV1i.z = R8i.z;
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(uf_uniformRegisterVS[200].z)));
R7i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R14i.y), intBitsToFloat(PV0i.x)));
PS1i = R7i.z;
// 24
PV0i.x = floatBitsToInt(intBitsToFloat(R6i.w) + intBitsToFloat(PV1i.w));
PV0i.y = floatBitsToInt(intBitsToFloat(R6i.w) + intBitsToFloat(PV1i.x));
PV0i.z = floatBitsToInt(intBitsToFloat(R6i.w) + intBitsToFloat(PV1i.y));
R10i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(R14i.y)) + 1.0));
R127i.x = floatBitsToInt(intBitsToFloat(PV1i.z) * 1.0);
PS0i = R127i.x;
// 25
R12i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(R11i.y)));
PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(0x40c90fdb));
PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.y) * intBitsToFloat(0x40c90fdb));
PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.z) * intBitsToFloat(0x40c90fdb));
R6i.w = floatBitsToInt(intBitsToFloat(R7i.z) * -(1.0));
PS1i = R6i.w;
// 26
R6i.x = floatBitsToInt((intBitsToFloat(PV1i.w) * intBitsToFloat(0x3e22f983) + 0.5));
R11i.y = floatBitsToInt((intBitsToFloat(PV1i.z) * intBitsToFloat(0x3e22f983) + 0.5));
R6i.z = floatBitsToInt((intBitsToFloat(PV1i.y) * intBitsToFloat(0x3e22f983) + 0.5));
R11i.w = floatBitsToInt(0.0);
R6i.y = floatBitsToInt((-(0.0) * intBitsToFloat(R10i.w) + intBitsToFloat(R127i.x)));
PS0i = R6i.y;
// 0
PV0i.x = floatBitsToInt(fract(intBitsToFloat(R11i.y)));
PV0i.y = floatBitsToInt(fract(intBitsToFloat(R6i.z)));
PV0i.z = floatBitsToInt(-(intBitsToFloat(R2i.w)) + intBitsToFloat(uf_uniformRegisterVS[198].w));
PV0i.w = floatBitsToInt(fract(intBitsToFloat(R6i.x)));
R125i.w = floatBitsToInt(exp2(intBitsToFloat(R12i.x)));
PS0i = R125i.w;
// 1
R123i.x = floatBitsToInt((intBitsToFloat(PV0i.y) * intBitsToFloat(0x40c90fdb) + -(intBitsToFloat(0x40490fdb))));
PV1i.x = R123i.x;
R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(R12i.y)) + intBitsToFloat(R2i.w)));
R123i.z = floatBitsToInt((intBitsToFloat(PV0i.w) * intBitsToFloat(0x40c90fdb) + -(intBitsToFloat(0x40490fdb))));
PV1i.z = R123i.z;
R123i.w = floatBitsToInt((intBitsToFloat(PV0i.x) * intBitsToFloat(0x40c90fdb) + -(intBitsToFloat(0x40490fdb))));
PV1i.w = R123i.w;
R127i.x = floatBitsToInt(intBitsToFloat(R6i.w) + -(1.0));
PS1i = R127i.x;
// 2
R125i.x = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(0x3e22f983));
R126i.y = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3e22f983));
PV0i.z = floatBitsToInt(intBitsToFloat(R11i.w) + -(0.0));
R126i.w = floatBitsToInt(intBitsToFloat(PV1i.z) * intBitsToFloat(0x3e22f983));
PV0i.w = R126i.w;
PS0i = floatBitsToInt(intBitsToFloat(R6i.y) + -(0.0));
// 3
R12i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R14i.y), intBitsToFloat(PS0i)));
PV1i.x = R12i.x;
R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R14i.y), intBitsToFloat(PV0i.z)));
PV1i.y = R125i.y;
PV1i.z = floatBitsToInt(-(intBitsToFloat(R125i.w)) + 1.0);
R124i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(R14i.y)) + 1.0));
PV1i.w = R124i.w;
R126i.z = floatBitsToInt(sin((intBitsToFloat(PV0i.w))/0.1591549367));
PS1i = R126i.z;
// 4
backupReg0i = R127i.y;
R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.z), intBitsToFloat(PV1i.w)));
R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.z)));
PV0i.y = R127i.y;
R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R10i.w), intBitsToFloat(PV1i.x)));
R125i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.z), intBitsToFloat(PV1i.y)));
R127i.x = floatBitsToInt(sin((intBitsToFloat(R126i.y))/0.1591549367));
PS0i = R127i.x;
// 5
backupReg0i = R126i.w;
R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R13i.z), intBitsToFloat(PV0i.y)));
R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(uf_uniformRegisterVS[199].x)));
R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(uf_uniformRegisterVS[199].y)));
R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R10i.z), intBitsToFloat(PV0i.y)));
PS1i = floatBitsToInt(cos((intBitsToFloat(backupReg0i))/0.1591549367));
// 6
backupReg0i = R126i.y;
PV0i.x = floatBitsToInt(-(intBitsToFloat(R126i.z)) + intBitsToFloat(PS1i));
R126i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R124i.w)),intBitsToFloat(R10i.w)) + intBitsToFloat(R125i.w)));
R125i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.y)),intBitsToFloat(R7i.z)) + intBitsToFloat(R125i.z)));
PS0i = floatBitsToInt(cos((intBitsToFloat(backupReg0i))/0.1591549367));
// 7
R6i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(uf_uniformRegisterVS[199].z)));
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R12i.w)) + intBitsToFloat(R126i.z)));
PV1i.y = R123i.y;
R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.z), intBitsToFloat(R127i.y)));
PV1i.w = floatBitsToInt(-(intBitsToFloat(R127i.x)) + intBitsToFloat(PS0i));
R126i.z = floatBitsToInt(sin((intBitsToFloat(R125i.x))/0.1591549367));
PS1i = R126i.z;
// 8
backupReg0i = R124i.y;
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(R13i.x)) + intBitsToFloat(R127i.x)));
PV0i.x = R123i.x;
R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(backupReg0i)));
PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R13i.y), intBitsToFloat(PV1i.y)));
R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(R127i.z)));
PS0i = floatBitsToInt(cos((intBitsToFloat(R125i.x))/0.1591549367));
// 9
R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R12i.x)),intBitsToFloat(R8i.z)) + intBitsToFloat(R124i.x)));
PV1i.x = R123i.x;
PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), intBitsToFloat(PV0i.x)));
PV1i.z = floatBitsToInt(-(intBitsToFloat(R126i.z)) + intBitsToFloat(PS0i));
PV1i.w = floatBitsToInt(intBitsToFloat(R126i.x) + intBitsToFloat(PV0i.z));
R126i.x = floatBitsToInt(intBitsToFloat(R125i.w) + -(0.0));
PS1i = R126i.x;
// 10
R124i.x = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(R124i.y));
PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.x) + -(0.0));
PV0i.z = floatBitsToInt(intBitsToFloat(R126i.w) + intBitsToFloat(PV1i.y));
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(R4i.x)) + intBitsToFloat(R126i.z)));
PV0i.w = R123i.w;
R126i.z = floatBitsToInt(intBitsToFloat(R126i.y) + -(1.0));
PS0i = R126i.z;
// 11
PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.w), intBitsToFloat(PV0i.w)));
R126i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(R127i.w));
PV1i.y = R126i.y;
R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R14i.y), intBitsToFloat(R126i.x)));
R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(R6i.x)));
R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R14i.y), intBitsToFloat(PV0i.y)));
PS1i = R126i.x;
// 12
backupReg0i = R126i.z;
backupReg1i = R124i.w;
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.z), intBitsToFloat(PV1i.y)));
PV0i.y = floatBitsToInt(intBitsToFloat(R125i.z) + intBitsToFloat(PV1i.x));
R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R10i.w), intBitsToFloat(PV1i.y)));
R124i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R14i.y)) + 1.0));
PS0i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(R124i.x)));
// 13
PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.y) + intBitsToFloat(R127i.w));
PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.y), intBitsToFloat(R124i.x)));
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.z), intBitsToFloat(R126i.y)));
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.x), intBitsToFloat(R124i.x)));
R125i.z = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(PS0i));
PS1i = R125i.z;
// 14
PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(PV1i.w));
PV0i.y = floatBitsToInt(intBitsToFloat(R126i.z) + intBitsToFloat(PV1i.y));
PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PV1i.x)));
PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV1i.x)));
PS0i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.w), intBitsToFloat(PV1i.x)));
// 15
PV1i.x = floatBitsToInt(intBitsToFloat(R2i.w) + -(intBitsToFloat(0x3a83126f)));
PV1i.y = floatBitsToInt(intBitsToFloat(PS0i) + intBitsToFloat(PV0i.x));
PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(PV0i.y));
PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(R125i.z));
R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.w),intBitsToFloat(uf_uniformRegisterVS[186].x)) + intBitsToFloat(uf_uniformRegisterVS[186].y)));
PS1i = R122i.x;
// 16
R126i.x = floatBitsToInt(intBitsToFloat(R5i.y) + intBitsToFloat(PV1i.w));
PV0i.x = R126i.x;
R126i.y = floatBitsToInt(intBitsToFloat(R5i.x) + intBitsToFloat(PV1i.z));
PV0i.y = R126i.y;
R125i.z = floatBitsToInt(intBitsToFloat(R5i.w) + intBitsToFloat(PV1i.y));
PV0i.z = R125i.z;
PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(0x7f7ffffd));
PV0i.w = clampFI32(PV0i.w);
R127i.z = floatBitsToInt(floor(intBitsToFloat(PS1i)));
PS0i = R127i.z;
// 17
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),intBitsToFloat(R14i.z)),vec4(intBitsToFloat(uf_uniformRegisterVS[188].x),intBitsToFloat(uf_uniformRegisterVS[188].y),intBitsToFloat(uf_uniformRegisterVS[188].z),intBitsToFloat(uf_uniformRegisterVS[188].w))));
PV1i.x = tempi.x;
PV1i.y = tempi.x;
PV1i.z = tempi.x;
PV1i.w = tempi.x;
R5i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R5i.z)));
PS1i = R5i.y;
// 18
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R126i.x),intBitsToFloat(R126i.y),intBitsToFloat(R125i.z),intBitsToFloat(R14i.z)),vec4(intBitsToFloat(uf_uniformRegisterVS[189].x),intBitsToFloat(uf_uniformRegisterVS[189].y),intBitsToFloat(uf_uniformRegisterVS[189].z),intBitsToFloat(uf_uniformRegisterVS[189].w))));
PV0i.x = tempi.x;
PV0i.y = tempi.x;
PV0i.z = tempi.x;
PV0i.w = tempi.x;
R5i.x = floatBitsToInt(intBitsToFloat(R9i.w) + intBitsToFloat(PV1i.x));
PS0i = R5i.x;
// 19
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R126i.x),intBitsToFloat(R126i.y),intBitsToFloat(R125i.z),intBitsToFloat(R14i.z)),vec4(intBitsToFloat(uf_uniformRegisterVS[190].x),intBitsToFloat(uf_uniformRegisterVS[190].y),intBitsToFloat(uf_uniformRegisterVS[190].z),intBitsToFloat(uf_uniformRegisterVS[190].w))));
PV1i.x = tempi.x;
PV1i.y = tempi.x;
PV1i.z = tempi.x;
PV1i.w = tempi.x;
R14i.y = floatBitsToInt(intBitsToFloat(R2i.z) + intBitsToFloat(PV0i.x));
PS1i = R14i.y;
// 20
R126i.x = floatBitsToInt(intBitsToFloat(R5i.x) + -(intBitsToFloat(uf_uniformRegisterVS[202].x)));
R126i.y = floatBitsToInt(intBitsToFloat(PS1i) + -(intBitsToFloat(uf_uniformRegisterVS[202].y)));
R2i.z = floatBitsToInt(intBitsToFloat(R4i.y) + intBitsToFloat(PV1i.x));
PV0i.z = R2i.z;
PV0i.w = floatBitsToInt(intBitsToFloat(R7i.x) + intBitsToFloat(R127i.z));
// 21
R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(uf_uniformRegisterVS[185].x)));
PV1i.x = R124i.x;
PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.z) + -(intBitsToFloat(uf_uniformRegisterVS[202].z)));
// 22
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R8i.z),intBitsToFloat(R10i.w),intBitsToFloat(R7i.z),-0.0),vec4(intBitsToFloat(R126i.x),intBitsToFloat(R126i.y),intBitsToFloat(PV1i.z),0.0)));
PV0i.x = tempi.x;
PV0i.y = tempi.x;
PV0i.z = tempi.x;
PV0i.w = tempi.x;
PS0i = floatBitsToInt(fract(intBitsToFloat(PV1i.x)));
// 23
PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(0x7f7ffffd));
PV1i.y = clampFI32(PV1i.y);
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(uf_uniformRegisterVS[187].x)));
PV1i.w = floatBitsToInt(floor(intBitsToFloat(R124i.x)));
// 24
R4i.y = floatBitsToInt(floor(intBitsToFloat(PV1i.z)));
R10i.w = floatBitsToInt(intBitsToFloat(PV1i.y) + -(1.0));
R1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(uf_uniformRegisterVS[185].y)));
PS0i = R1i.y;
// 0
backupReg0i = R10i.w;
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R14i.y),intBitsToFloat(R2i.z),intBitsToFloat(R8i.w)),vec4(intBitsToFloat(uf_uniformRegisterVS[11].x),intBitsToFloat(uf_uniformRegisterVS[11].y),intBitsToFloat(uf_uniformRegisterVS[11].z),intBitsToFloat(uf_uniformRegisterVS[11].w))));
PV0i.x = tempi.x;
PV0i.y = tempi.x;
PV0i.z = tempi.x;
PV0i.w = tempi.x;
R10i.w = tempi.x;
R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R10i.x)) + 1.0));
PS0i = R122i.x;
// 1
PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(uf_uniformRegisterVS[201].w)));
R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.y), intBitsToFloat(PS0i)));
R1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.y), intBitsToFloat(uf_uniformRegisterVS[185].x)));
PS1i = R1i.x;
// 2
PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(uf_uniformRegisterVS[202].w)));
PV0i.z = clampFI32(PV0i.z);
// 3
R1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PV0i.z)));
PV1i.w = R1i.w;
// 4
PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.w) + -(intBitsToFloat(0x3a83126f)));
// 5
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R14i.y),intBitsToFloat(R2i.z),intBitsToFloat(R8i.w)),vec4(intBitsToFloat(uf_uniformRegisterVS[10].x),intBitsToFloat(uf_uniformRegisterVS[10].y),intBitsToFloat(uf_uniformRegisterVS[10].z),intBitsToFloat(uf_uniformRegisterVS[10].w))));
PV1i.x = tempi.x;
PV1i.y = tempi.x;
PV1i.z = tempi.x;
PV1i.w = tempi.x;
R10i.z = tempi.x;
R126i.y = floatBitsToInt(intBitsToFloat(PV0i.w) * intBitsToFloat(0x7f7ffffd));
R126i.y = clampFI32(R126i.y);
PS1i = R126i.y;
// 6
PV0i.x = floatBitsToInt(-(intBitsToFloat(PS1i)) + 1.0);
PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.x));
// 7
PV1i.x = floatBitsToInt(intBitsToFloat(R12i.z) * intBitsToFloat(PS0i));
R127i.z = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(0x7f7ffffd));
// 8
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R14i.y),intBitsToFloat(R2i.z),intBitsToFloat(R8i.w)),vec4(intBitsToFloat(uf_uniformRegisterVS[8].x),intBitsToFloat(uf_uniformRegisterVS[8].y),intBitsToFloat(uf_uniformRegisterVS[8].z),intBitsToFloat(uf_uniformRegisterVS[8].w))));
PV0i.x = tempi.x;
PV0i.y = tempi.x;
PV0i.z = tempi.x;
PV0i.w = tempi.x;
R7i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PV1i.x)));
PS0i = R7i.x;
// 9
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R14i.y),intBitsToFloat(R2i.z),intBitsToFloat(R8i.w)),vec4(intBitsToFloat(uf_uniformRegisterVS[9].x),intBitsToFloat(uf_uniformRegisterVS[9].y),intBitsToFloat(uf_uniformRegisterVS[9].z),intBitsToFloat(uf_uniformRegisterVS[9].w))));
PV1i.x = tempi.x;
PV1i.y = tempi.x;
PV1i.z = tempi.x;
PV1i.w = tempi.x;
R10i.x = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(R127i.z));
PS1i = R10i.x;
// 10
R10i.y = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(R127i.z));
// export
SET_POSITION(vec4(intBitsToFloat(R10i.x), intBitsToFloat(R10i.y), intBitsToFloat(R10i.z), intBitsToFloat(R10i.w)));
// export
gl_PointSize = (vec4(intBitsToFloat(R7i.x), intBitsToFloat(R7i.y), intBitsToFloat(R7i.y), intBitsToFloat(R7i.y))).x/resScale;
// export
passParameterSem144 = vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.w));
// 0
}

View File

@ -1,192 +0,0 @@
#version 420
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
#define gl_VertexID gl_VertexIndex
#define gl_InstanceID gl_InstanceIndex
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define SET_POSITION(_v) gl_Position = _v
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
#endif
// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL.
// shader e5870717602e2f55 //layer blur
const float resScale = float($height)/float($gameHeight);
#ifdef VULKAN
layout(set = 0, binding = 0) uniform ufBlock
{
uniform ivec4 uf_remappedVS[8];
// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7
};
#else
uniform ivec4 uf_remappedVS[8];
// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7
#endif
// uf_windowSpaceToClipSpaceTransform was moved to the ufBlock
ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0;
ATTR_LAYOUT(0, 1) in uvec4 attrDataSem5;
ATTR_LAYOUT(0, 2) in uvec4 attrDataSem16;
out gl_PerVertex
{
vec4 gl_Position;
float gl_PointSize;
};
layout(location = 1) out vec4 passParameterSem134;
layout(location = 2) out vec4 passParameterSem135;
layout(location = 3) out vec4 passParameterSem136;
layout(location = 0) out vec4 passParameterSem133;
int clampFI32(int v)
{
if( v == 0x7FFFFFFF )
return floatBitsToInt(1.0);
else if( v == 0xFFFFFFFF )
return floatBitsToInt(0.0);
return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0));
}
float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; }
void main()
{
vec4 R0f = vec4(0.0);
vec4 R1f = vec4(0.0);
vec4 R2f = vec4(0.0);
vec4 R3f = vec4(0.0);
vec4 R4f = vec4(0.0);
vec4 R5f = vec4(0.0);
vec4 R6f = vec4(0.0);
vec4 R123f = vec4(0.0);
vec4 R126f = vec4(0.0);
vec4 R127f = vec4(0.0);
uvec4 attrDecoder;
float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f;
vec4 PV0f = vec4(0.0), PV1f = vec4(0.0);
float PS0f = 0.0, PS1f = 0.0;
vec4 tempf = vec4(0.0);
float tempResultf;
int tempResulti;
ivec4 ARi = ivec4(0);
bool predResult = true;
vec3 cubeMapSTM;
int cubeMapFaceId;
R0f = floatBitsToInt(ivec4(gl_VertexID, 0, 0, gl_InstanceID));
attrDecoder = attrDataSem0;
attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24));
R2f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(int(attrDecoder.z)), intBitsToFloat(int(attrDecoder.w)));
attrDecoder = attrDataSem5;
attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24));
R3f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(int(attrDecoder.z)), intBitsToFloat(int(attrDecoder.w)));
attrDecoder = attrDataSem16;
attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24));
R1f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(int(attrDecoder.z)), intBitsToFloat(int(attrDecoder.w)));
// 0
R126f.x = 1.0;
R126f.y = mul_nonIEEE(intBitsToFloat(uf_remappedVS[0].x), intBitsToFloat(uf_remappedVS[1].x))/resScale;
R0f.z = 0.0;
R127f.w = 1.0;
PV0f.w = R127f.w;
R0f.w = 1.0;
PS0f = R0f.w;
// 1
R127f.x = dot(vec4(intBitsToFloat(uf_remappedVS[2].x),intBitsToFloat(uf_remappedVS[2].y),intBitsToFloat(uf_remappedVS[2].z),intBitsToFloat(uf_remappedVS[2].w)),vec4(R2f.x,R2f.y,R2f.z,PV0f.w));
PV1f.x = R127f.x;
PV1f.y = R127f.x;
PV1f.z = R127f.x;
PV1f.w = R127f.x;
R6f.x = R3f.x;
PS1f = R6f.x;
// 2
tempf.x = dot(vec4(intBitsToFloat(uf_remappedVS[3].x),intBitsToFloat(uf_remappedVS[3].y),intBitsToFloat(uf_remappedVS[3].z),intBitsToFloat(uf_remappedVS[3].w)),vec4(R2f.x,R2f.y,R2f.z,R127f.w));
PV0f.x = tempf.x;
PV0f.y = tempf.x;
PV0f.z = tempf.x;
PV0f.w = tempf.x;
R127f.y = tempf.x;
R6f.y = R3f.y;
PS0f = R6f.y;
// 3
tempf.x = dot(vec4(intBitsToFloat(uf_remappedVS[4].x),intBitsToFloat(uf_remappedVS[4].y),intBitsToFloat(uf_remappedVS[4].z),intBitsToFloat(uf_remappedVS[4].w)),vec4(R2f.x,R2f.y,R2f.z,R127f.w));
PV1f.x = tempf.x;
PV1f.y = tempf.x;
PV1f.z = tempf.x;
PV1f.w = tempf.x;
R127f.z = tempf.x;
// 4
R0f.x = dot(vec4(R127f.x,R127f.y,PV1f.x,R126f.x),vec4(intBitsToFloat(uf_remappedVS[5].x),intBitsToFloat(uf_remappedVS[5].y),intBitsToFloat(uf_remappedVS[5].z),intBitsToFloat(uf_remappedVS[5].w)));
PV0f.x = R0f.x;
PV0f.y = R0f.x;
PV0f.z = R0f.x;
PV0f.w = R0f.x;
// 5
tempf.x = dot(vec4(R127f.x,R127f.y,R127f.z,R126f.x),vec4(intBitsToFloat(uf_remappedVS[6].x),intBitsToFloat(uf_remappedVS[6].y),intBitsToFloat(uf_remappedVS[6].z),intBitsToFloat(uf_remappedVS[6].w)));
PV1f.x = tempf.x;
PV1f.y = tempf.x;
PV1f.z = tempf.x;
PV1f.w = tempf.x;
R0f.y = tempf.x;
// 6
PV0f.w = mul_nonIEEE(intBitsToFloat(uf_remappedVS[0].y), intBitsToFloat(uf_remappedVS[1].y))/resScale;
// 7
R127f.x = mul_nonIEEE(R126f.y, intBitsToFloat(uf_remappedVS[1].z));
PV1f.x = R127f.x;
R2f.y = mul_nonIEEE(R1f.y, intBitsToFloat(uf_remappedVS[7].y));
R127f.z = mul_nonIEEE(PV0f.w, intBitsToFloat(uf_remappedVS[1].z));
PV1f.z = R127f.z;
R2f.x = mul_nonIEEE(R1f.x, intBitsToFloat(uf_remappedVS[7].x));
PS1f = R2f.x;
// 8
PV0f.x = R3f.y + PV1f.z;
R126f.y = R3f.x + PV1f.x;
R126f.z = PV1f.z * intBitsToFloat(0x40400000);
PV0f.z = R126f.z;
R127f.w = PV1f.x * intBitsToFloat(0x40400000);
PV0f.w = R127f.w;
R126f.w = (PV1f.x * 2.0 + R3f.x);
PS0f = R126f.w;
// 9
R126f.x = R3f.y + PV0f.z;
R127f.y = R3f.x + PV0f.w;
R123f.z = (R127f.z * 2.0 + R3f.y);
PV1f.z = R123f.z;
R4f.w = PV0f.x;
R4f.x = R3f.x + -(R127f.x);
PS1f = R4f.x;
// 10
R5f.x = (-(R127f.x) * 2.0 + R3f.x);
R4f.y = R3f.y + -(R127f.z);
R4f.z = R126f.y;
R5f.w = PV1f.z;
R5f.y = (-(R127f.z) * 2.0 + R3f.y);
PS0f = R5f.y;
// 11
backupReg0f = R3f.x;
backupReg1f = R3f.y;
R3f.x = backupReg0f + -(R127f.w);
R3f.y = backupReg1f + -(R126f.z);
R5f.z = R126f.w;
R3f.w = R126f.x;
R3f.z = R127f.y;
PS1f = R3f.z;
// 12
R2f.z = mul_nonIEEE(R1f.z, intBitsToFloat(uf_remappedVS[7].z));
R2f.w = mul_nonIEEE(R1f.w, intBitsToFloat(uf_remappedVS[7].w));
// export
SET_POSITION(vec4(R0f.x, R0f.y, R0f.z, R0f.w));
// export
// skipped export to semanticId 255
// export
passParameterSem134 = vec4(R4f.x, R4f.y, R4f.z, R4f.w);
// export
passParameterSem135 = vec4(R5f.x, R5f.y, R5f.z, R5f.w);
// export
passParameterSem136 = vec4(R3f.x, R3f.y, R3f.z, R3f.w);
// export
passParameterSem133 = vec4(R6f.x, R6f.y, R6f.z, R6f.z);
// 0
}

View File

@ -0,0 +1,23 @@
[Bayo2USv0] #v5 asm
moduleMatches = 0xAF5D1A85
.origin = codecave all
_widthScaleRatio:
.float $width
_heightScaleRatio:
.float $height
_Cave:
lis r7, _widthScaleRatio@ha
lfs f13, _widthScaleRatio@l(r7)
lis r7, _heightScaleRatio@ha
lfs f31, _heightScaleRatio@l(r7)
fdivs f2, f13, f31
blr
0x032F2E6C = bla _Cave
0x032F2044 = bla _Cave
0x032F207C = bla _Cave
0x032F2084 = bla _Cave

View File

@ -79,6 +79,35 @@ $height = 4320
$gameWidth = 1280 $gameWidth = 1280
$gameHeight = 720 $gameHeight = 720
[Preset]
name = -- 21:9 -- resolutions
$width = 2560
$height = 720
$gameWidth = 1280
$gameHeight = 720
[Preset]
name = 2560x720 (21:9)
$width = 2560
$height = 720
$gameWidth = 1280
$gameHeight = 720
[Preset]
name = 3440x1440 (21:9)
$width = 3440
$height = 1440
$gameWidth = 1280
$gameHeight = 720
[Preset]
name = 5120x2160 (21:9)
$width = 5120
$height = 2160
$gameWidth = 1280
$gameHeight = 720
[Preset] # Should work fine on a 1070 and fixes most of horizontal shimmering [Preset] # Should work fine on a 1070 and fixes most of horizontal shimmering
name = --- SSAA res Tweaks - Set scaling to Stretch name = --- SSAA res Tweaks - Set scaling to Stretch
$width = 1920 $width = 1920
@ -107,6 +136,44 @@ $height = 4320
$gameWidth = 1280 $gameWidth = 1280
$gameHeight = 720 $gameHeight = 720
#Colour depth
[TextureRedefine]
width = 1280
height = 720
formats = 0x01a
overwriteFormat = 0x01f
[TextureRedefine]
width = 640
height = 368
formats = 0x01a
overwriteFormat = 0x01f
[TextureRedefine]
width = 640
height = 360
formats = 0x01a
overwriteFormat = 0x01f
[TextureRedefine]
width = 320
height = 192
formats = 0x01a
overwriteFormat = 0x01f
[TextureRedefine]
width = 320
height = 180
formats = 0x01a
overwriteFormat = 0x01f
[TextureRedefine]
width = 320
height = 176
formats = 0x01a
overwriteFormat = 0x01f
[TextureRedefine] # Game Resolution [TextureRedefine] # Game Resolution
width = 1280 width = 1280
height = 720 height = 720
@ -152,6 +219,14 @@ formats = 0x011
overwriteWidth = ($width / $gameWidth) * 256 overwriteWidth = ($width / $gameWidth) * 256
overwriteHeight = ($height / $gameHeight) * 256 overwriteHeight = ($height / $gameHeight) * 256
[TextureRedefine] # depth loading etc
width = 128
height = 128
formats = 0x011 #,0x1a
depth = 1
overwriteWidth = ($width / $gameWidth) * 128
overwriteHeight = ($height / $gameHeight) * 128
[TextureRedefine] # Bloom Mip [TextureRedefine] # Bloom Mip
width = 96 width = 96
height = 48 height = 48
@ -164,6 +239,14 @@ height = 48
overwriteWidth = ($width / $gameWidth) * 80 overwriteWidth = ($width / $gameWidth) * 80
overwriteHeight = ($height / $gameHeight) * 48 overwriteHeight = ($height / $gameHeight) * 48
[TextureRedefine] # depth loading etc
width = 64
height = 64
depth = 1
formats = 0x011 #,0x1a
overwriteWidth = ($width / $gameWidth) * 64
overwriteHeight = ($height / $gameHeight) * 64
[TextureRedefine] # Bloom Mip [TextureRedefine] # Bloom Mip
width = 64 width = 64
height = 32 height = 32
@ -177,16 +260,16 @@ height = 32
overwriteWidth = ($width / $gameWidth) * 48 overwriteWidth = ($width / $gameWidth) * 48
overwriteHeight = ($height / $gameHeight) * 32 overwriteHeight = ($height / $gameHeight) * 32
[TextureRedefine] # particles #[TextureRedefine] # particles
width = 8 #width = 8
height = 8 #height = 8
formats = 0x01a #formats = 0x01a
overwriteWidth = ($width / $gameWidth) * 8 #overwriteWidth = ($width / $gameWidth) * 8
overwriteHeight = ($height / $gameHeight) * 8 #overwriteHeight = ($height / $gameHeight) * 8
#
[TextureRedefine] # grading? #[TextureRedefine] # grading?
width = 4 #width = 4
height = 4 #height = 4
formats = 0x80e #formats = 0x80e
overwriteWidth = ($width / $gameWidth) * 4 #overwriteWidth = ($width / $gameWidth) * 4
overwriteHeight = ($height / $gameHeight) * 4 #overwriteHeight = ($height / $gameHeight) * 4