This commit is contained in:
Michael 2019-08-02 23:52:24 -07:00
commit 1f40eeb930
43 changed files with 9092 additions and 730 deletions

View File

@ -0,0 +1,48 @@
#version 420
in vec2 passUV;
layout(binding=0) uniform sampler2D textureSrc;
uniform vec2 textureSrcResolution;
layout(location = 0) out vec4 colorOut0;
vec4 cubic(float x)
{
float x2 = x * x;
float x3 = x2 * x;
vec4 w;
w.x = -x3 + 3 * x2 - 3 * x + 1;
w.y = 3 * x3 - 6 * x2 + 4;
w.z = -3 * x3 + 3 * x2 + 3 * x + 1;
w.w = x3;
return w / 6.0;
}
vec4 bcFilter(vec2 texcoord, vec2 texscale)
{
vec2 tc = floor( texcoord - 0.5 ) + 0.5;
vec2 f = texcoord - tc;
vec4 xcubic = cubic(f.x);
vec4 ycubic = cubic(f.y);
vec4 c = vec4(tc.x - 1.0, tc.x + 1.0, tc.y - 1.0, tc.y + 1.0);
vec4 s = vec4(xcubic.x + xcubic.y, xcubic.z + xcubic.w, ycubic.x + ycubic.y, ycubic.z + ycubic.w);
vec4 offset = c + vec4(xcubic.y, xcubic.w, ycubic.y, ycubic.w) / s;
vec4 sample0 = texture(textureSrc, vec2(offset.x, offset.z) * texscale);
vec4 sample1 = texture(textureSrc, vec2(offset.y, offset.z) * texscale);
vec4 sample2 = texture(textureSrc, vec2(offset.x, offset.w) * texscale);
vec4 sample3 = texture(textureSrc, vec2(offset.y, offset.w) * texscale);
float sx = s.x / (s.x + s.y);
float sy = s.z / (s.z + s.w);
return mix(
mix(sample3, sample2, sx),
mix(sample1, sample0, sx), sy);
}
void main(){
colorOut0 = vec4(bcFilter(passUV*textureSrcResolution, vec2(1.0,1.0)/textureSrcResolution).rgb,1.0);
}

View File

@ -0,0 +1,10 @@
[Definition]
name = Optimized Bicubic B-spline resampler
titleIds =
path = "Filters/Bicubic (4 taps)"
description = Cemu's Bicubic. Because it's B-spline so it was optimized down to 4 taps.
version = 3
[OutputShader]
upscaleMagFilter = Linear
downscaleMagFilter = Linear

View File

@ -0,0 +1,97 @@
// https://github.com/obsproject/obs-studio/blob/master/libobs/data/bicubic_scale.effect // added customizable polynomials back
#version 420
in vec2 passUV;
layout(binding=0) uniform sampler2D textureSrc;
uniform vec2 textureSrcResolution;
layout(location = 0) out vec4 colorOut0;
float weight(float x)
{
float ax = abs(x);
const float B = $b;
const float C = $c;
if (ax < 2.0) {
float x_squared = x * x;
if (ax < 1.0) {
return (x_squared *
((12.0 - 9.0 * B - 6.0 * C) * ax +
(-18.0 + 12.0 * B + 6.0 * C)) +
(6.0 - 2.0 * B))
/ 6.0;
}
return (x_squared *
((-B - 6.0 * C) * ax + (6.0 * B + 30.0 * C)) +
(-12.0 * B - 48.0 * C) * ax +
(8.0 * B + 24.0 * C))
/ 6.0;
}
return 0.0;
}
vec4 weight4(float x)
{
return vec4(
weight(x - 2.0),
weight(x - 1.0),
weight(x),
weight(x + 1.0));
}
vec4 DrawBicubic(vec2 f_in)
{
vec2 stepxy = 1.0/textureSrcResolution;
vec2 pos = f_in.st + stepxy * 0.5;
vec2 f = fract(pos * textureSrcResolution);
vec4 rowtaps = weight4(1.0 - f.x);
vec4 coltaps = weight4(1.0 - f.y);
vec2 uv0 = (-1.5 - f) * stepxy + pos;
vec2 uv1 = uv0 + stepxy;
vec2 uv2 = uv1 + stepxy;
vec2 uv3 = uv2 + stepxy;
float u_weight_sum = rowtaps.y + rowtaps.z;
float u_middle_offset = rowtaps.z * stepxy.x / u_weight_sum;
float u_middle = uv1.x + u_middle_offset;
float v_weight_sum = coltaps.y + coltaps.z;
float v_middle_offset = coltaps.z * stepxy.y / v_weight_sum;
float v_middle = uv1.y + v_middle_offset;
// wrap doesn't apply to texelFetch
// clamp
// ivec2 coord_top_left = ivec2(max(uv0 * textureSrcResolution, 0.5));
// ivec2 coord_bottom_right = ivec2(min(uv3 * textureSrcResolution, textureSrcResolution - 0.5));
// mirror
ivec2 coord_top_left = ivec2(abs(uv0 * textureSrcResolution));
ivec2 coord_bottom_right = ivec2(textureSrcResolution - abs(uv3 * textureSrcResolution - textureSrcResolution));
vec4 top = texelFetch(textureSrc, ivec2(coord_top_left), 0) * rowtaps.x;
top += texture(textureSrc, vec2(u_middle, uv0.y)) * u_weight_sum;
top += texelFetch(textureSrc, ivec2(coord_bottom_right.x, coord_top_left.y), 0) * rowtaps.w;
vec4 total = top * coltaps.x;
vec4 middle = texture(textureSrc, vec2(uv0.x, v_middle)) * rowtaps.x;
middle += texture(textureSrc, vec2(u_middle, v_middle)) * u_weight_sum;
middle += texture(textureSrc, vec2(uv3.x, v_middle)) * rowtaps.w;
total += middle * v_weight_sum;
vec4 bottom = texelFetch(textureSrc, ivec2(coord_top_left.x, coord_bottom_right.y), 0) * rowtaps.x;
bottom += texture(textureSrc, vec2(u_middle, uv3.y)) * u_weight_sum;
bottom += texelFetch(textureSrc, ivec2(coord_bottom_right), 0) * rowtaps.w;
total += bottom * coltaps.w;
return total;
}
void main()
{
colorOut0 = vec4(DrawBicubic(passUV).rgb,1.0);
}

39
Filters/Bicubic/rules.txt Normal file
View File

@ -0,0 +1,39 @@
[Definition]
name = Optimized Bicubic spline resampler
titleIds =
path = "Filters/Bicubic"
description = The b and c can adjust the properties of the cubic; sometimes referred to as "blurring" and "ringing" respectively.
version = 3
[OutputShader]
upscaleMagFilter = Linear
downscaleMagFilter = Linear
[Preset]
name = Catmull-Rom
$b = 0.0
$c = 0.5
[Preset]
name = Mitchell-Netravali
$b = 1/3
$c = 1/3
[Preset]
name = B-spline
$b = 1.0
$c = 0.0
[Preset]
name = Photoshop
$b = 0.0
$c = 0.75
[Preset]
name = Custom (edit in rule.txt)
$b = 0.0
$c = 0.0
# Generally b,c >= 0. the shader can't produce negative weight at 0-1 because of bilinear optimization
# But some combinations of negative b,c might have non-negative weight
# Optionally [b + 2c = 1] for numerically accurate filter

128
Filters/Jinc/output.glsl Normal file
View File

@ -0,0 +1,128 @@
// https://github.com/libretro/glsl-shaders/blob/master/nnedi3/shaders/jinc2-cshift-rgb.glsl
// https://github.com/libretro/common-shaders/blob/master/nedi/shaders/nedi-jinc.cg
// https://cemuhook.sshnuke.net/sampleResizers.zip
/*
Hyllian's jinc windowed-jinc 2-lobe with anti-ringing Shader
Copyright (C) 2011-2016 Hyllian - sergiogdb@gmail.com
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
*/
#version 420
in vec2 passUV;
layout(binding=0) uniform sampler2D textureSrc;
uniform vec2 textureSrcResolution;
layout(location = 0) out vec4 colorOut0;
/*
This is an approximation of Jinc(x)*Jinc(x*r1/r2) for x < 2.5,
where r1 and r2 are the first two zeros of jinc function.
For a jinc 2-lobe best approximation, use A=0.5 and B=0.825.
*/
// #define halfpi 1.5707963267948966192313216916398 // not used?
#define pi 3.1415926535897932384626433832795
#define wa ($Window_Sinc*pi)
#define wb ($SINC*pi)
float resampler(vec2 pt1, vec2 pt2)
{
vec2 v = pt2 - pt1;
float d = sqrt(dot(v,v)); // Calculates the distance between two points
return (d==0.0) ? wa*wb : sin(d*wa)*sin(d*wb)/(d*d);
}
vec3 min4(vec3 a, vec3 b, vec3 c, vec3 d)
{
return min(a, min(b, min(c, d)));
}
vec3 max4(vec3 a, vec3 b, vec3 c, vec3 d)
{
return max(a, max(b, max(c, d)));
}
vec4 JINC2_sharp(vec2 texture_size, vec2 texCoord)
{
vec3 color;
mat4x4 weights;
vec2 dx = vec2(1.0, 0.0);
vec2 dy = vec2(0.0, 1.0);
vec2 pc = texCoord*texture_size;
vec2 tc = (floor(pc-vec2(0.5,0.5))+vec2(0.5,0.5));
weights[0] = vec4(resampler(pc, tc -dx -dy), resampler(pc, tc -dy), resampler(pc, tc +dx -dy), resampler(pc, tc+2.0*dx -dy));
weights[1] = vec4(resampler(pc, tc -dx ), resampler(pc, tc ), resampler(pc, tc +dx ), resampler(pc, tc+2.0*dx ));
weights[2] = vec4(resampler(pc, tc -dx +dy), resampler(pc, tc +dy), resampler(pc, tc +dx +dy), resampler(pc, tc+2.0*dx +dy));
weights[3] = vec4(resampler(pc, tc -dx+2.0*dy), resampler(pc, tc +2.0*dy), resampler(pc, tc +dx+2.0*dy), resampler(pc, tc+2.0*dx+2.0*dy));
dx = dx/texture_size;
dy = dy/texture_size;
tc = tc/texture_size;
// reading the texels
vec3 c00 = texture(textureSrc, tc -dx -dy).xyz;
vec3 c10 = texture(textureSrc, tc -dy).xyz;
vec3 c20 = texture(textureSrc, tc +dx -dy).xyz;
vec3 c30 = texture(textureSrc, tc+2.0*dx -dy).xyz;
vec3 c01 = texture(textureSrc, tc -dx ).xyz;
vec3 c11 = texture(textureSrc, tc ).xyz;
vec3 c21 = texture(textureSrc, tc +dx ).xyz;
vec3 c31 = texture(textureSrc, tc+2.0*dx ).xyz;
vec3 c02 = texture(textureSrc, tc -dx +dy).xyz;
vec3 c12 = texture(textureSrc, tc +dy).xyz;
vec3 c22 = texture(textureSrc, tc +dx +dy).xyz;
vec3 c32 = texture(textureSrc, tc+2.0*dx +dy).xyz;
vec3 c03 = texture(textureSrc, tc -dx+2.0*dy).xyz;
vec3 c13 = texture(textureSrc, tc +2.0*dy).xyz;
vec3 c23 = texture(textureSrc, tc +dx+2.0*dy).xyz;
vec3 c33 = texture(textureSrc, tc+2.0*dx+2.0*dy).xyz;
// Get min/max samples
vec3 min_sample = min4(c11, c21, c12, c22);
vec3 max_sample = max4(c11, c21, c12, c22);
color = mat4x3(c00, c10, c20, c30) * weights[0];
color+= mat4x3(c01, c11, c21, c31) * weights[1];
color+= mat4x3(c02, c12, c22, c32) * weights[2];
color+= mat4x3(c03, c13, c23, c33) * weights[3];
color = color / dot(weights * vec4(1.0), vec4(1.0));
// Anti-ringing
vec3 aux = color;
color = clamp(color, min_sample, max_sample);
color = mix(aux, color, $Anti_Ringing);
// final sum and weight normalization
return vec4(color, 1.0);
}
void main()
{
colorOut0 = JINC2_sharp(textureSrcResolution, passUV);
}

47
Filters/Jinc/rules.txt Normal file
View File

@ -0,0 +1,47 @@
[Definition]
name = Jinc windowed-jinc with anti-ringing
titleIds =
path = "Filters/Jinc"
description = This is an approximation of Jinc. If B=1.0, it's a lanczos filter.
version = 3
[OutputShader] # need texels
upscaleMagFilter = NearestNeighbor
downscaleMagFilter = NearestNeighbor
[Preset]
name = Jinc
$Window_Sinc = 0.5
$SINC = 0.825
$Anti_Ringing = 0.5
[Preset]
name = Lanczos
$Window_Sinc = 0.5
$SINC = 1.0
$Anti_Ringing = 0.8
[Preset]
name = preset3 in nnedi3
$Window_Sinc = 0.44
$SINC = 0.82
$Anti_Ringing = 0.5
[Preset]
name = preset4 in nedi
$Window_Sinc = 0.42
$SINC = 0.92
$Anti_Ringing = 0.8
[Preset]
name = custom (edit in rules.txt)
$Window_Sinc = 0.5
$SINC = 0.825
$Anti_Ringing = 0.8
# $Window_Sinc == A; $SINC == B.
# Increase A to get more blur. Decrease it to get a sharper picture.
# B = 0.825 to get rid of dithering. Increase B to get a fine sharpness, though dithering returns.
# $Anti_Ringing reduces overshoot.
# Setting it to 1 prevents overshoot, which might cause pixels sticking together.

View File

@ -0,0 +1,35 @@
[Bat60FpsVerv1]
moduleMatches = 0xB5EB56F6
# Location for .float 60.00
_float = 0x10000a08
CodeCaveSize = 0x0c
_60fps = 0x00000000
0X00000000 = lis r3,_float@h
0X00000004 = lfs f1,_float@l(r3)
0X00000008 = blr
0x024d3164 = bla _60fps
#0x024d3164 = lfs f1,04e0(r3) #0x42F584E0
0x02C82558 = nop #Vsync
0x02C82504 = nop #SwapInterval
[Bat60FpsVerv16]
moduleMatches = 0x10A2A41A
# Location for .float 60.00
_float = 0x10000a08
CodeCaveSize = 0x0c
_60fps = 0x00000000
0X00000000 = lis r3,_float@h
0X00000004 = lfs f1,_float@l(r3)
0X00000008 = blr
0x24D4E68 = bla _60fps
#0x024D4E68 = lfs f1,0x4E0(r3)
0x02C837FC = nop #Vsync

View File

@ -0,0 +1,11 @@
[Definition]
titleIds = 0005000010136c00,0005000010137c00,0005000010154500,000500001016d300,000500001016df00
path = "Batman: Arkham Origins/Mods/60FPS"
description = Important: This patches the gameplay to be in 60FPS. Getting under 60FPS will slow down the game's speed.
version = 3
[Control]
#Give boost to performance
vsyncFrequency = 120
# Made by theboy181

View File

@ -0,0 +1,941 @@
#version 420
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
const vec3 Color = vec3($R,$G,$B);
const float Factor = $L_f;
// Armor When teleporting
// shader 7cd50058a8f1d6dd
uniform ivec4 uf_remappedPS[10];
uniform vec2 uf_fragCoordScale;
layout(binding = 1) uniform sampler3D textureUnitPS1;
layout(binding = 2) uniform sampler2DArray textureUnitPS2;
layout(binding = 3) uniform sampler2D textureUnitPS3;
layout(binding = 4) uniform sampler2D textureUnitPS4;
layout(binding = 5) uniform sampler2D textureUnitPS5;
layout(binding = 6) uniform sampler2D textureUnitPS6;
layout(binding = 7) uniform sampler2D textureUnitPS7;
layout(location = 0) in vec4 passParameterSem0;
layout(location = 1) in vec4 passParameterSem1;
layout(location = 2) in vec4 passParameterSem2;
layout(location = 3) in vec4 passParameterSem4;
layout(location = 4) in vec4 passParameterSem5;
layout(location = 5) in vec4 passParameterSem7;
layout(location = 6) in vec4 passParameterSem8;
layout(location = 0) out vec4 passPixelColor0;
layout(location = 1) out vec4 passPixelColor1;
layout(location = 3) out vec4 passPixelColor3;
layout(location = 5) out vec4 passPixelColor5;
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 R123i = ivec4(0);
ivec4 R124i = ivec4(0);
ivec4 R125i = ivec4(0);
ivec4 R126i = ivec4(0);
ivec4 R127i = ivec4(0);
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;
bool activeMaskStack[2];
bool activeMaskStackC[3];
activeMaskStack[0] = false;
activeMaskStackC[0] = false;
activeMaskStackC[1] = false;
activeMaskStack[0] = true;
activeMaskStackC[0] = true;
activeMaskStackC[1] = true;
vec3 cubeMapSTM;
int cubeMapFaceId;
R0i = floatBitsToInt(passParameterSem0);
R1i = floatBitsToInt(passParameterSem1);
R2i = floatBitsToInt(passParameterSem2);
R3i = floatBitsToInt(passParameterSem4);
R4i = floatBitsToInt(passParameterSem5);
R5i = floatBitsToInt(passParameterSem7);
R6i = floatBitsToInt(passParameterSem8);
if( activeMaskStackC[1] == true ) {
R7i.xy = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.xy)).xy);
R1i.xyz = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R1i.xy)).xyz);
R8i.xyz = floatBitsToInt(texture(textureUnitPS7, intBitsToFloat(R0i.zw)).xyz);
R1i.w = floatBitsToInt(texture(textureUnitPS4, intBitsToFloat(R0i.xy)).x);
R9i.xyz = floatBitsToInt(texture(textureUnitPS3, intBitsToFloat(R0i.xy)).xyz);
}
if( activeMaskStackC[1] == true ) {
activeMaskStack[1] = activeMaskStack[0];
activeMaskStackC[2] = activeMaskStackC[1];
// 0
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.x), intBitsToFloat(R4i.y)));
PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), intBitsToFloat(R4i.x)));
PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.y), intBitsToFloat(R4i.z)));
R127i.w = floatBitsToInt((intBitsToFloat(R7i.x) * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204)));
PV0i.w = R127i.w;
R127i.y = floatBitsToInt((intBitsToFloat(R7i.y) * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204)));
PS0i = R127i.y;
// 1
PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(PV0i.w)));
R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.x)),intBitsToFloat(R3i.y)) + intBitsToFloat(PV0i.x)));
PV1i.y = R123i.y;
R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.z)),intBitsToFloat(R3i.x)) + intBitsToFloat(PV0i.y)));
PV1i.z = R123i.z;
R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.y)),intBitsToFloat(R3i.z)) + intBitsToFloat(PV0i.z)));
PV1i.w = R123i.w;
PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.w), intBitsToFloat(PS0i)));
// 2
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PS1i)));
PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(PS1i)));
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(R127i.y)) + intBitsToFloat(PV1i.x)));
R123i.z = clampFI32(R123i.z);
PV0i.z = R123i.z;
PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(PS1i)));
R126i.w = floatBitsToInt(fract(intBitsToFloat(R6i.x)));
PS0i = R126i.w;
// 3
R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.x),intBitsToFloat(R127i.w)) + intBitsToFloat(PV0i.x)));
R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.z),intBitsToFloat(R127i.w)) + intBitsToFloat(PV0i.y)));
R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.y),intBitsToFloat(R127i.w)) + intBitsToFloat(PV0i.w)));
PV1i.w = floatBitsToInt(-(intBitsToFloat(PV0i.z)) + 1.0);
R126i.y = floatBitsToInt(fract(intBitsToFloat(R6i.y)));
PS1i = R126i.y;
// 4
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R5i.y),intBitsToFloat(R5i.z),-0.0),vec4(intBitsToFloat(R5i.x),intBitsToFloat(R5i.y),intBitsToFloat(R5i.z),0.0)));
PV0i.x = tempi.x;
PV0i.y = tempi.x;
PV0i.z = tempi.x;
PV0i.w = tempi.x;
PS0i = floatBitsToInt(sqrt(intBitsToFloat(PV1i.w)));
// 5
backupReg0i = R127i.y;
R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.x),intBitsToFloat(PS0i)) + intBitsToFloat(R127i.x)));
PV1i.x = R126i.x;
R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.y),intBitsToFloat(PS0i)) + intBitsToFloat(R127i.z)));
PV1i.y = R127i.y;
R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.z),intBitsToFloat(PS0i)) + intBitsToFloat(backupReg0i)));
PV1i.z = R126i.z;
R127i.w = floatBitsToInt(intBitsToFloat(R126i.w) + -(0.5));
R126i.w = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x)));
PS1i = R126i.w;
// 6
backupReg0i = R126i.y;
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0)));
PV0i.x = tempi.x;
PV0i.y = tempi.x;
PV0i.z = tempi.x;
PV0i.w = tempi.x;
R126i.y = tempi.x;
PS0i = floatBitsToInt(intBitsToFloat(backupReg0i) + -(0.5));
// 7
R127i.x = floatBitsToInt(mul_nonIEEE(Color.r, intBitsToFloat(R1i.x)));
R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PS0i)),intBitsToFloat(PS0i)) + 1.0));
R123i.y = clampFI32(R123i.y);
PV1i.y = R123i.y;
R127i.z = floatBitsToInt(mul_nonIEEE(Color.g, intBitsToFloat(R1i.y)));
R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.w)),intBitsToFloat(R127i.w)) + 1.0));
R123i.w = clampFI32(R123i.w);
PV1i.w = R123i.w;
PS1i = floatBitsToInt(1.0 / intBitsToFloat(R126i.w));
// 8
R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(PS1i)));
R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.y), intBitsToFloat(PS1i)));
PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PV1i.y)));
R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.z), intBitsToFloat(PS1i)));
PS0i = floatBitsToInt(mul_nonIEEE(Color.b, intBitsToFloat(R1i.z)));
// 9
backupReg0i = R127i.z;
PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.x), intBitsToFloat(R127i.x)));
PV1i.y = floatBitsToInt(-(intBitsToFloat(uf_remappedPS[1].w)) + intBitsToFloat(0x3f59999a));
R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.z), intBitsToFloat(PS0i)));
R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.y), intBitsToFloat(backupReg0i)));
PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(PV0i.z)));
// 10
R5i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].x) * Factor, intBitsToFloat(PV1i.x)));
R4i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), intBitsToFloat(PS1i)));
R3i.z = floatBitsToInt(intBitsToFloat(PV1i.y) * intBitsToFloat(0x3f969696));
R3i.z = clampFI32(R3i.z);
R1i.w = floatBitsToInt(fract(intBitsToFloat(uf_remappedPS[3].w)));
R6i.y = 0x3f800000;
PS0i = R6i.y;
// 11
R7i.y = 0;
R5i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].x) * Factor, intBitsToFloat(R127i.z)));
R5i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].x) * Factor, intBitsToFloat(R127i.w)));
PS1i = R5i.y;
// 12
tempResultf = 1.0 / sqrt(intBitsToFloat(R126i.y));
PS0i = floatBitsToInt(tempResultf);
// 13
R3i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PS0i)));
PV1i.x = R3i.x;
R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PS0i)));
PV1i.y = R3i.y;
R4i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), intBitsToFloat(PS0i)));
PV1i.z = R4i.z;
// 14
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R125i.x),intBitsToFloat(R125i.y),intBitsToFloat(R126i.w),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0)));
PV0i.x = tempi.x;
PV0i.y = tempi.x;
PV0i.z = tempi.x;
PV0i.w = tempi.x;
R1i.x = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + 1.0);
PS0i = R1i.x;
// 15
R2i.w = floatBitsToInt(intBitsToFloat(PV0i.x) + 1.0);
R2i.w = clampFI32(R2i.w);
// 16
predResult = (intBitsToFloat(R1i.w) > 0.0);
activeMaskStack[1] = predResult;
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
}
else {
activeMaskStack[1] = false;
activeMaskStackC[2] = false;
}
if( activeMaskStackC[2] == true ) {
// 0
R0i.z = floatBitsToInt(floor(intBitsToFloat(uf_remappedPS[3].w)));
PV0i.z = R0i.z;
// 1
R0i.z = floatBitsToInt(roundEven(intBitsToFloat(PV0i.z)));
}
if( activeMaskStackC[2] == true ) {
R0i.xyz = floatBitsToInt(texture(textureUnitPS2, vec3(intBitsToFloat(R0i.x),intBitsToFloat(R0i.y),intBitsToFloat(R0i.z))).xyz);
}
if( activeMaskStackC[2] == true ) {
// 0
backupReg0i = R0i.x;
PV0i.x = floatBitsToInt(-(intBitsToFloat(R9i.y)) + intBitsToFloat(R0i.y));
PV0i.y = floatBitsToInt(-(intBitsToFloat(R9i.x)) + intBitsToFloat(backupReg0i));
PV0i.w = floatBitsToInt(-(intBitsToFloat(R9i.z)) + intBitsToFloat(R0i.z));
// 1
backupReg0i = R9i.x;
backupReg1i = R9i.y;
backupReg2i = R9i.z;
R9i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(R1i.w)) + intBitsToFloat(backupReg0i)));
R9i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R1i.w)) + intBitsToFloat(backupReg1i)));
R9i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(R1i.w)) + intBitsToFloat(backupReg2i)));
}
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
if( activeMaskStackC[1] == true ) {
activeMaskStack[1] = activeMaskStack[0];
activeMaskStackC[2] = activeMaskStackC[1];
// 0
R6i.z = ((intBitsToFloat(uf_remappedPS[4].w) > 0.0)?int(0xFFFFFFFF):int(0x0));
// 1
predResult = (R6i.z != 0);
activeMaskStack[1] = predResult;
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
}
else {
activeMaskStack[1] = false;
activeMaskStackC[2] = false;
}
if( activeMaskStackC[2] == true ) {
// 0
R0i.x = floatBitsToInt(intBitsToFloat(R2i.x) * intBitsToFloat(0x3e99999a));
R0i.y = floatBitsToInt(intBitsToFloat(R2i.y) * intBitsToFloat(0x3e99999a));
R0i.z = floatBitsToInt(intBitsToFloat(R2i.z) * intBitsToFloat(0x3e99999a));
}
if( activeMaskStackC[2] == true ) {
R0i.z = floatBitsToInt(texture(textureUnitPS1, vec3(intBitsToFloat(R0i.x),intBitsToFloat(R0i.y),intBitsToFloat(R0i.z))).x);
}
if( activeMaskStackC[2] == true ) {
// 0
PV0i.x = floatBitsToInt(intBitsToFloat(R9i.z) * intBitsToFloat(0x3dea4a8c));
PV0i.y = floatBitsToInt(-(intBitsToFloat(R0i.z)) + 1.0);
tempResultf = max(0.0, intBitsToFloat(R2i.w));
tempResultf = log2(tempResultf);
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
R126i.w = floatBitsToInt(tempResultf);
PS0i = R126i.w;
// 1
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R9i.x),intBitsToFloat(R9i.y),intBitsToFloat(PV0i.x),-0.0),vec4(intBitsToFloat(0x3e99096c),intBitsToFloat(0x3f162b6b),1.0,0.0)));
PV1i.x = tempi.x;
PV1i.y = tempi.x;
PV1i.z = tempi.x;
PV1i.w = tempi.x;
R127i.w = tempi.x;
tempResultf = max(0.0, intBitsToFloat(PV0i.y));
tempResultf = log2(tempResultf);
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
PS1i = floatBitsToInt(tempResultf);
// 2
R127i.x = floatBitsToInt((0.5 * intBitsToFloat(PV1i.x) + intBitsToFloat(0x3dcccccd)));
PV0i.x = R127i.x;
R127i.y = floatBitsToInt((intBitsToFloat(0x3f19999a) * intBitsToFloat(PV1i.x) + intBitsToFloat(0x3e4ccccd)));
PV0i.z = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3fa66666));
// 3
R126i.y = floatBitsToInt((intBitsToFloat(0x3f266666) * intBitsToFloat(R127i.w) + intBitsToFloat(0x3eb33333)));
PV1i.y = R126i.y;
PV1i.z = floatBitsToInt(intBitsToFloat(R126i.w) * intBitsToFloat(0x40200000));
R127i.w = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + intBitsToFloat(0x3e23d70a));
PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.z)));
// 4
PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.y)) + 0.25);
PV0i.y = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3e4ccccd));
PV0i.z = floatBitsToInt(-(intBitsToFloat(R127i.y)) + intBitsToFloat(0x3e851eb8));
PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.z)));
PS0i = floatBitsToInt(intBitsToFloat(PS0i) / 2.0);
// 5
PV1i.x = floatBitsToInt(intBitsToFloat(PS0i) + intBitsToFloat(PV0i.y));
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.w),intBitsToFloat(PV0i.y)) + intBitsToFloat(R127i.x)));
PV1i.y = R123i.y;
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y)) + intBitsToFloat(R126i.y)));
PV1i.z = R123i.z;
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(PV0i.y)) + intBitsToFloat(R127i.y)));
PV1i.w = R123i.w;
R7i.y = 0x3e99999a;
PS1i = R7i.y;
// 6
PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(PV1i.x));
PV0i.y = clampFI32(PV0i.y);
R127i.z = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(PV1i.x));
R127i.z = clampFI32(R127i.z);
PV0i.z = R127i.z;
PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(PV1i.x));
PV0i.w = clampFI32(PV0i.w);
// 7
PV1i.x = floatBitsToInt(-(intBitsToFloat(R9i.x)) + intBitsToFloat(PV0i.y));
PV1i.y = floatBitsToInt(-(intBitsToFloat(R5i.x)) + intBitsToFloat(PV0i.y));
PV1i.z = floatBitsToInt(-(intBitsToFloat(R9i.z)) + intBitsToFloat(PV0i.z));
PV1i.w = floatBitsToInt(-(intBitsToFloat(R9i.y)) + intBitsToFloat(PV0i.w));
R127i.x = floatBitsToInt(-(intBitsToFloat(R5i.y)) + intBitsToFloat(PV0i.w));
PS1i = R127i.x;
// 8
backupReg0i = R9i.x;
backupReg1i = R9i.y;
backupReg2i = R9i.z;
backupReg3i = R5i.x;
R9i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(uf_remappedPS[4].w)) + intBitsToFloat(backupReg0i)));
R9i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(uf_remappedPS[4].w)) + intBitsToFloat(backupReg1i)));
R9i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(uf_remappedPS[4].w)) + intBitsToFloat(backupReg2i)));
PV0i.w = floatBitsToInt(-(intBitsToFloat(R5i.z)) + intBitsToFloat(R127i.z));
R5i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(uf_remappedPS[4].w)) + intBitsToFloat(backupReg3i)));
PS0i = R5i.x;
// 9
backupReg0i = R5i.y;
backupReg1i = R5i.z;
R5i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(uf_remappedPS[4].w)) + intBitsToFloat(backupReg0i)));
R5i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(uf_remappedPS[4].w)) + intBitsToFloat(backupReg1i)));
// 10
R4i.y = R6i.y;
}
activeMaskStack[1] = activeMaskStack[1] == false;
activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true;
if( activeMaskStackC[2] == true ) {
// 0
R6i.y = R7i.y;
}
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
if( activeMaskStackC[1] == true ) {
activeMaskStack[1] = activeMaskStack[0];
activeMaskStackC[2] = activeMaskStackC[1];
// 0
predResult = (intBitsToFloat(uf_remappedPS[4].x) > 0.0);
activeMaskStack[1] = predResult;
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
}
else {
activeMaskStack[1] = false;
activeMaskStackC[2] = false;
}
if( activeMaskStackC[2] == true ) {
// 0
PS0i = floatBitsToInt(1.0 / intBitsToFloat(uf_remappedPS[4].y));
// 1
R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(PS0i)));
PV1i.x = R127i.x;
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(PS0i)));
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(PS0i)));
// 2
R0i.x = floatBitsToInt(intBitsToFloat(PV1i.z) * intBitsToFloat(0x40666666));
R0i.y = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x40666666));
R0i.z = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(0x40666666));
R1i.w = floatBitsToInt(intBitsToFloat(PV1i.z) * intBitsToFloat(0x3f3851ec));
R1i.y = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3f3851ec));
PS0i = R1i.y;
// 3
R1i.z = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(0x3f3851ec));
}
if( activeMaskStackC[2] == true ) {
R0i.y = floatBitsToInt(texture(textureUnitPS1, vec3(intBitsToFloat(R0i.x),intBitsToFloat(R0i.y),intBitsToFloat(R0i.z))).x);
R0i.x = floatBitsToInt(texture(textureUnitPS1, vec3(intBitsToFloat(R1i.w),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z))).x);
}
if( activeMaskStackC[2] == true ) {
// 0
PV0i.z = floatBitsToInt(-(intBitsToFloat(R0i.y)) + intBitsToFloat(R0i.x));
// 1
R123i.y = floatBitsToInt((intBitsToFloat(PV0i.z) * intBitsToFloat(0x3f333333) + intBitsToFloat(R0i.y)));
PV1i.y = R123i.y;
// 2
PV0i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedPS[4].x)) + intBitsToFloat(PV1i.y));
// 3
R127i.w = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(0x41a00000));
R127i.w = clampFI32(R127i.w);
PV1i.w = R127i.w;
// 4
backupReg0i = R9i.x;
backupReg1i = R9i.y;
backupReg2i = R9i.z;
backupReg3i = R5i.x;
R9i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.w)));
R9i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(PV1i.w)));
R9i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg2i), intBitsToFloat(PV1i.w)));
R5i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg3i), intBitsToFloat(PV1i.w)));
PS0i = R5i.x;
// 5
backupReg0i = R5i.y;
backupReg1i = R5i.z;
R5i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R127i.w)));
R5i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(R127i.w)));
}
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
if( activeMaskStackC[1] == true ) {
activeMaskStack[1] = activeMaskStack[0];
activeMaskStackC[2] = activeMaskStackC[1];
// 0
R1i.z = floatBitsToInt(intBitsToFloat(uf_remappedPS[5].x) * intBitsToFloat(0xbd088889));
// 1
R1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].y), intBitsToFloat(uf_remappedPS[6].x)));
// 2
predResult = (intBitsToFloat(uf_remappedPS[7].w) != 0.0);
activeMaskStack[1] = predResult;
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
}
else {
activeMaskStack[1] = false;
activeMaskStackC[2] = false;
}
if( activeMaskStackC[2] == true ) {
// 0
PV0i.x = floatBitsToInt(intBitsToFloat(R2i.x) * intBitsToFloat(0x3e22f983));
PV0i.y = floatBitsToInt(intBitsToFloat(R1i.y) * intBitsToFloat(0x40e66666));
PV0i.z = floatBitsToInt(intBitsToFloat(R2i.y) * intBitsToFloat(0x3e22f983));
PV0i.w = floatBitsToInt(intBitsToFloat(R2i.z) * intBitsToFloat(0x3e22f983));
PS0i = floatBitsToInt(intBitsToFloat(R3i.x) + intBitsToFloat(R4i.z));
// 1
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(PV0i.y)) + 0.5));
PV1i.x = R123i.x;
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(PV0i.y)) + 0.5));
PV1i.y = R123i.y;
PV1i.z = floatBitsToInt(intBitsToFloat(R3i.y) + intBitsToFloat(PS0i));
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y)) + 0.5));
PV1i.w = R123i.w;
PS1i = floatBitsToInt(max(intBitsToFloat(uf_remappedPS[7].w), -(intBitsToFloat(uf_remappedPS[7].w))));
// 2
PV0i.x = floatBitsToInt(fract(intBitsToFloat(PV1i.y)));
PV0i.y = floatBitsToInt(fract(intBitsToFloat(PV1i.x)));
PV0i.z = floatBitsToInt(fract(intBitsToFloat(PV1i.w)));
R127i.w = floatBitsToInt(intBitsToFloat(PV1i.z) * intBitsToFloat(0x3e99999a));
R125i.w = floatBitsToInt(sqrt(intBitsToFloat(PS1i)));
PS0i = R125i.w;
// 3
R127i.x = floatBitsToInt((intBitsToFloat(PV0i.y) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb)));
R127i.y = floatBitsToInt((intBitsToFloat(PV0i.z) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb)));
R126i.z = R1i.x;
R126i.z = clampFI32(R126i.z);
R123i.w = floatBitsToInt((intBitsToFloat(PV0i.x) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb)));
PV1i.w = R123i.w;
R124i.w = floatBitsToInt((intBitsToFloat(0xc3020000) * intBitsToFloat(PS0i) + intBitsToFloat(0x43200000)));
PS1i = R124i.w;
// 4
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R2i.z),-0.0),vec4(intBitsToFloat(R3i.x),intBitsToFloat(R3i.y),intBitsToFloat(R4i.z),0.0)));
PV0i.x = tempi.x;
PV0i.y = tempi.x;
PV0i.z = tempi.x;
PV0i.w = tempi.x;
PS0i = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3e22f983));
// 5
PV1i.x = floatBitsToInt(intBitsToFloat(R127i.y) * intBitsToFloat(0x3e22f983));
R127i.y = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(0x3e22f983));
R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(PV0i.x)));
R0i.w = floatBitsToInt((intBitsToFloat(0xc31a0000) * intBitsToFloat(R125i.w) + intBitsToFloat(0x43200000)));
R126i.y = floatBitsToInt(sin((intBitsToFloat(PS0i))/0.1591549367));
PS1i = R126i.y;
// 6
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R9i.x),intBitsToFloat(R9i.y),intBitsToFloat(R9i.z),-0.0),vec4(intBitsToFloat(R9i.x),intBitsToFloat(R9i.y),intBitsToFloat(R9i.z),0.0)));
PV0i.x = tempi.x;
PV0i.y = tempi.x;
PV0i.z = tempi.x;
PV0i.w = tempi.x;
R126i.w = tempi.x;
PS0i = floatBitsToInt(sin((intBitsToFloat(PV1i.x))/0.1591549367));
// 7
backupReg0i = R127i.y;
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(R127i.w)) + intBitsToFloat(R127i.z)));
PV1i.x = R123i.x;
R127i.y = floatBitsToInt((intBitsToFloat(0xc2080000) * intBitsToFloat(R125i.w) + intBitsToFloat(0x42200000)));
PV1i.z = floatBitsToInt(intBitsToFloat(R126i.y) + intBitsToFloat(PS0i));
R127i.w = floatBitsToInt((intBitsToFloat(0xbfe66666) * intBitsToFloat(R125i.w) + intBitsToFloat(0x40333333)));
PS1i = floatBitsToInt(sin((intBitsToFloat(backupReg0i))/0.1591549367));
// 8
R125i.x = floatBitsToInt((intBitsToFloat(0xbd8f5c29) * intBitsToFloat(R125i.w) + intBitsToFloat(0x3d8f5c29)));
PV0i.y = floatBitsToInt(intBitsToFloat(PS1i) + intBitsToFloat(PV1i.z));
PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(R126i.w));
R126i.w = floatBitsToInt((intBitsToFloat(0xc0333333) * intBitsToFloat(R125i.w) + intBitsToFloat(0x40333333)));
tempResultf = max(0.0, intBitsToFloat(R126i.z));
tempResultf = log2(tempResultf);
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
R127i.x = floatBitsToInt(tempResultf);
PS0i = R127i.x;
// 9
R123i.x = floatBitsToInt((intBitsToFloat(PV0i.y) * 0.25 + intBitsToFloat(PV0i.z)));
PV1i.x = R123i.x;
R123i.y = floatBitsToInt((intBitsToFloat(R125i.w) * intBitsToFloat(0x3e4ccccd) + intBitsToFloat(0x3e4ccccd)));
PV1i.y = R123i.y;
R123i.z = floatBitsToInt((intBitsToFloat(0x3d4cccce) * intBitsToFloat(R125i.w) + intBitsToFloat(0x3dcccccd)));
PV1i.z = R123i.z;
PV1i.w = ((0.0 > intBitsToFloat(uf_remappedPS[7].w))?int(0xFFFFFFFF):int(0x0));
R126i.x = ((intBitsToFloat(uf_remappedPS[7].w) == 0.0)?int(0xFFFFFFFF):int(0x0));
PS1i = R126i.x;
// 10
PV0i.x = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(0x41000000));
R123i.y = ((PV1i.w == 0)?(PV1i.y):(PV1i.z));
PV0i.y = R123i.y;
R123i.z = floatBitsToInt((intBitsToFloat(PV1i.x) * intBitsToFloat(0x3f400000) + intBitsToFloat(R1i.z)));
PV0i.z = R123i.z;
PV0i.w = PV1i.x;
PV0i.w = clampFI32(PV0i.w);
R127i.z = floatBitsToInt((intBitsToFloat(0xc3480000) * intBitsToFloat(R125i.w) + intBitsToFloat(0x43960000)));
PS0i = R127i.z;
// 11
R127i.x = floatBitsToInt((intBitsToFloat(0xc36b0000) * intBitsToFloat(R125i.w) + intBitsToFloat(0x437f0000)));
R123i.y = floatBitsToInt((intBitsToFloat(PV0i.w) * intBitsToFloat(0xbeb33333) + intBitsToFloat(PV0i.z)));
PV1i.y = R123i.y;
R1i.w = ((R126i.x == 0)?(PV0i.y):(0));
R125i.z = floatBitsToInt(exp2(intBitsToFloat(PV0i.x)));
PS1i = R125i.z;
// 12
PV0i.x = floatBitsToInt(fract(intBitsToFloat(PV1i.y)));
PV0i.x = floatBitsToInt(intBitsToFloat(PV0i.x) * 2.0);
R125i.y = floatBitsToInt((intBitsToFloat(0x41600000) * intBitsToFloat(R125i.w) + intBitsToFloat(0x40c00000)));
// 13
PV1i.z = PV0i.x;
PV1i.z = clampFI32(PV1i.z);
PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.x) + -(1.0));
PV1i.w = clampFI32(PV1i.w);
// 14
PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + intBitsToFloat(PV1i.z));
// 15
R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(PV0i.y)));
PV1i.x = R126i.x;
R125i.w = PV0i.y;
R125i.w = floatBitsToInt(intBitsToFloat(R125i.w) * 2.0);
// 16
PV0i.z = floatBitsToInt(intBitsToFloat(0x40400000) * intBitsToFloat(PV1i.x));
// 17
R126i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.w)),intBitsToFloat(R126i.x)) + intBitsToFloat(PV0i.z)));
PV1i.y = R126i.y;
// 18
tempResultf = max(0.0, intBitsToFloat(PV1i.y));
tempResultf = log2(tempResultf);
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
PS0i = floatBitsToInt(tempResultf);
// 19
PV1i.w = floatBitsToInt(intBitsToFloat(PS0i) * intBitsToFloat(0x43480000));
// 20
R126i.z = floatBitsToInt(exp2(intBitsToFloat(PV1i.w)));
PS0i = R126i.z;
// 21
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.w),intBitsToFloat(PS0i)) + intBitsToFloat(R127i.w)));
PV1i.y = R123i.y;
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(PS0i)) + intBitsToFloat(R125i.x)));
PV1i.w = R123i.w;
// 22
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.w),intBitsToFloat(R126i.z)) + intBitsToFloat(R126i.w)));
PV0i.x = R123i.x;
R123i.y = floatBitsToInt((intBitsToFloat(R126i.y) * intBitsToFloat(0x3ecccccd) + intBitsToFloat(PV1i.w)));
PV0i.y = R123i.y;
R123i.z = floatBitsToInt((intBitsToFloat(R126i.y) * intBitsToFloat(0x3ecccccd) + intBitsToFloat(PV1i.y)));
PV0i.z = R123i.z;
// 23
R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(R125i.z)) + intBitsToFloat(PV0i.y)));
R123i.y = floatBitsToInt((intBitsToFloat(R126i.y) * intBitsToFloat(0x3ecccccd) + intBitsToFloat(PV0i.x)));
PV1i.y = R123i.y;
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R125i.z)) + intBitsToFloat(PV0i.z)));
PV1i.w = R123i.w;
// 24
R0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R1i.w)));
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(R125i.z)) + intBitsToFloat(PV1i.y)));
PV0i.z = R123i.z;
// 25
R0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R1i.w)));
R0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(R1i.w)));
}
activeMaskStack[1] = activeMaskStack[1] == false;
activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true;
if( activeMaskStackC[2] == true ) {
// 0
R0i.xyz = ivec3(0,0,0);
R1i.w = 0;
}
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
if( activeMaskStackC[1] == true ) {
activeMaskStack[1] = activeMaskStack[0];
activeMaskStackC[2] = activeMaskStackC[1];
// 0
predResult = (intBitsToFloat(uf_remappedPS[3].x) > 0.0);
activeMaskStack[1] = predResult;
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
}
else {
activeMaskStack[1] = false;
activeMaskStackC[2] = false;
}
if( activeMaskStackC[2] == true ) {
// 0
backupReg0i = R1i.w;
PV0i.x = floatBitsToInt(intBitsToFloat(R1i.z) * intBitsToFloat(0x40490fdb));
PV0i.x = floatBitsToInt(intBitsToFloat(PV0i.x) * 2.0);
R127i.y = R1i.x;
R127i.y = clampFI32(R127i.y);
PV0i.y = R127i.y;
PV0i.z = floatBitsToInt(intBitsToFloat(R4i.z) + -(intBitsToFloat(R9i.y)));
R127i.w = floatBitsToInt(intBitsToFloat(R2i.y) * intBitsToFloat(0x40600000));
R1i.w = floatBitsToInt((intBitsToFloat(uf_remappedPS[3].x) * intBitsToFloat(0x3f4ccccd) + intBitsToFloat(backupReg0i)));
PS0i = R1i.w;
// 1
R123i.y = floatBitsToInt((intBitsToFloat(R3i.y) * 0.5 + intBitsToFloat(PV0i.z)));
PV1i.y = R123i.y;
R123i.z = floatBitsToInt((intBitsToFloat(PV0i.x) * intBitsToFloat(0x3e22f983) + 0.5));
PV1i.z = R123i.z;
R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(PV0i.y)));
PV1i.w = R126i.w;
// 2
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(R127i.w)) + intBitsToFloat(PV1i.y)));
PV0i.x = R123i.x;
PV0i.y = floatBitsToInt(fract(intBitsToFloat(PV1i.z)));
PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PV1i.w)));
// 3
R123i.x = floatBitsToInt((intBitsToFloat(PV0i.y) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb)));
PV1i.x = R123i.x;
R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R126i.w)));
PV1i.w = floatBitsToInt(intBitsToFloat(R1i.z) + intBitsToFloat(PV0i.x));
// 4
PV0i.z = floatBitsToInt(fract(intBitsToFloat(PV1i.w)));
PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) * 2.0);
PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(0x3e22f983));
// 5
PV1i.x = PV0i.z;
PV1i.x = clampFI32(PV1i.x);
PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + -(1.0));
PV1i.y = clampFI32(PV1i.y);
PS1i = floatBitsToInt(sin((intBitsToFloat(PV0i.w))/0.1591549367));
// 6
PV0i.y = floatBitsToInt(intBitsToFloat(PS1i) + 1.0);
PV0i.y = floatBitsToInt(intBitsToFloat(PV0i.y) / 2.0);
PV0i.w = floatBitsToInt(-(intBitsToFloat(PV1i.y)) + intBitsToFloat(PV1i.x));
// 7
R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(PV0i.y)) + intBitsToFloat(R127i.y)));
PV1i.x = R127i.x;
R127i.y = PV0i.w;
R127i.y = floatBitsToInt(intBitsToFloat(R127i.y) * 2.0);
R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(PV0i.w)));
PV1i.z = R127i.z;
PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.y) + 0.5);
// 8
PV0i.x = floatBitsToInt(intBitsToFloat(0x40400000) * intBitsToFloat(PV1i.z));
R126i.y = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3df5c290));
R126i.z = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3e8a3d71));
R126i.w = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3b449ba6));
R126i.x = PV1i.x;
R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) / 2.0);
PS0i = R126i.x;
// 9
backupReg0i = R127i.x;
backupReg0i = R127i.x;
backupReg1i = R127i.z;
R127i.x = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(0x41100000));
R127i.z = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(0x40a00000));
R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.y)),intBitsToFloat(backupReg1i)) + intBitsToFloat(PV0i.x)));
PV1i.w = R123i.w;
// 10
tempResultf = max(0.0, intBitsToFloat(PV1i.w));
tempResultf = log2(tempResultf);
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
PS0i = floatBitsToInt(tempResultf);
// 11
PV1i.y = floatBitsToInt(intBitsToFloat(PS0i) * intBitsToFloat(0x40c00000));
// 12
PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.y)));
// 13
R123i.y = floatBitsToInt((intBitsToFloat(PS0i) * intBitsToFloat(0x3dcccccd) + intBitsToFloat(R126i.w)));
PV1i.y = R123i.y;
R123i.z = floatBitsToInt((intBitsToFloat(PS0i) * intBitsToFloat(0x3f19999a) + intBitsToFloat(R126i.y)));
PV1i.z = R123i.z;
R123i.w = floatBitsToInt((intBitsToFloat(PS0i) * intBitsToFloat(0x3fe66666) + intBitsToFloat(R126i.z)));
PV1i.w = R123i.w;
// 14
PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(R127i.z));
PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(R127i.x));
PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(R126i.x));
// 15
backupReg0i = R0i.y;
backupReg1i = R0i.x;
PV1i.x = floatBitsToInt(-(intBitsToFloat(R0i.z)) + intBitsToFloat(PV0i.w));
PV1i.y = floatBitsToInt(-(intBitsToFloat(backupReg0i)) + intBitsToFloat(PV0i.x));
PV1i.z = floatBitsToInt(-(intBitsToFloat(backupReg1i)) + intBitsToFloat(PV0i.y));
// 16
backupReg0i = R0i.x;
backupReg1i = R0i.y;
backupReg2i = R0i.z;
R0i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(uf_remappedPS[3].x)) + intBitsToFloat(backupReg0i)));
R0i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(uf_remappedPS[3].x)) + intBitsToFloat(backupReg1i)));
R0i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(uf_remappedPS[3].x)) + intBitsToFloat(backupReg2i)));
}
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
if( activeMaskStackC[1] == true ) {
activeMaskStack[1] = activeMaskStack[0];
activeMaskStackC[2] = activeMaskStackC[1];
// 0
predResult = (intBitsToFloat(uf_remappedPS[3].y) > 0.0);
activeMaskStack[1] = predResult;
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
}
else {
activeMaskStack[1] = false;
activeMaskStackC[2] = false;
}
if( activeMaskStackC[2] == true ) {
// 0
backupReg0i = R0i.x;
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(R2i.w)));
R127i.z = floatBitsToInt(-(intBitsToFloat(backupReg0i)));
// 1
backupReg0i = R0i.y;
PV1i.x = floatBitsToInt(-(intBitsToFloat(R0i.z)) + intBitsToFloat(PV0i.x));
PV1i.y = floatBitsToInt(-(intBitsToFloat(backupReg0i)) + intBitsToFloat(PV0i.x));
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].y), intBitsToFloat(PV0i.x)));
// 2
backupReg0i = R0i.x;
backupReg1i = R0i.y;
backupReg2i = R0i.z;
backupReg3i = R1i.w;
R0i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PV1i.w)) + intBitsToFloat(backupReg0i)));
R0i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.w)) + intBitsToFloat(backupReg1i)));
R0i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.w)) + intBitsToFloat(backupReg2i)));
R1i.w = floatBitsToInt(intBitsToFloat(backupReg3i) + intBitsToFloat(PV1i.w));
}
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
if( activeMaskStackC[1] == true ) {
activeMaskStack[1] = activeMaskStack[0];
activeMaskStackC[2] = activeMaskStackC[1];
// 0
R126i.w = R1i.w;
R126i.w = clampFI32(R126i.w);
PV0i.w = R126i.w;
// 1
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),-(intBitsToFloat(PV0i.w))) + intBitsToFloat(R5i.y)));
PV1i.x = R123i.x;
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.x),-(intBitsToFloat(PV0i.w))) + intBitsToFloat(R5i.x)));
PV1i.y = R123i.y;
R127i.z = ((intBitsToFloat(PV0i.w) > 0.0)?int(0xFFFFFFFF):int(0x0));
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.z),-(intBitsToFloat(PV0i.w))) + intBitsToFloat(R5i.z)));
PV1i.w = R123i.w;
R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.x),-(intBitsToFloat(PV0i.w))) + intBitsToFloat(R9i.x)));
PS1i = R127i.y;
// 2
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.z),intBitsToFloat(R126i.w)) + intBitsToFloat(PV1i.w)));
PV0i.x = R123i.x;
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.y),intBitsToFloat(R126i.w)) + intBitsToFloat(PV1i.x)));
PV0i.y = R123i.y;
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.x),intBitsToFloat(R126i.w)) + intBitsToFloat(PV1i.y)));
PV0i.z = R123i.z;
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.y),-(intBitsToFloat(R126i.w))) + intBitsToFloat(R9i.y)));
PV0i.w = R123i.w;
R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.z),-(intBitsToFloat(R126i.w))) + intBitsToFloat(R9i.z)));
PS0i = R127i.w;
// 3
backupReg0i = R127i.y;
R127i.x = ((R127i.z == 0)?(R5i.x):(PV0i.z));
PV1i.x = R127i.x;
R127i.y = ((R127i.z == 0)?(R9i.x):(backupReg0i));
R126i.z = ((R127i.z == 0)?(R5i.z):(PV0i.x));
PV1i.z = R126i.z;
R125i.w = ((R127i.z == 0)?(R5i.y):(PV0i.y));
PV1i.w = R125i.w;
R125i.z = ((R127i.z == 0)?(R9i.y):(PV0i.w));
PS1i = R125i.z;
// 4
PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + intBitsToFloat(uf_remappedPS[8].x));
R126i.y = ((R127i.z == 0)?(R9i.z):(R127i.w));
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.y),-(intBitsToFloat(R126i.w))) + intBitsToFloat(R4i.y)));
PV0i.z = R123i.z;
PV0i.w = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + intBitsToFloat(uf_remappedPS[8].y));
PS0i = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + intBitsToFloat(uf_remappedPS[8].z));
// 5
R5i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(uf_remappedPS[8].w)) + intBitsToFloat(R127i.x)));
R5i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(uf_remappedPS[8].w)) + intBitsToFloat(R125i.w)));
R5i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PS0i),intBitsToFloat(uf_remappedPS[8].w)) + intBitsToFloat(R126i.z)));
R2i.w = ((R127i.z == 0)?(R4i.y):(PV0i.z));
R6i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),-(intBitsToFloat(uf_remappedPS[8].w))) + intBitsToFloat(R127i.y)));
PS1i = R6i.x;
// 6
R8i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.z),-(intBitsToFloat(uf_remappedPS[8].w))) + intBitsToFloat(R125i.z)));
R7i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.y),-(intBitsToFloat(uf_remappedPS[8].w))) + intBitsToFloat(R126i.y)));
// 7
predResult = (1.0 > intBitsToFloat(uf_remappedPS[1].w));
activeMaskStack[1] = predResult;
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
}
else {
activeMaskStack[1] = false;
activeMaskStackC[2] = false;
}
if( activeMaskStackC[2] == true ) {
// 0
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(uf_remappedPS[6].x)));
R0i.y = floatBitsToInt((-(intBitsToFloat(uf_remappedPS[1].w)) * intBitsToFloat(0x40200000) + intBitsToFloat(0x40200000)));
R0i.y = clampFI32(R0i.y);
R0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(uf_remappedPS[6].x)));
PV0i.z = R0i.z;
PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(uf_remappedPS[6].x)));
// 1
R2i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(uf_remappedPS[9].z)));
R2i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(uf_remappedPS[9].z)));
R2i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(uf_remappedPS[9].z)));
R1i.w = PV0i.w;
R1i.w = floatBitsToInt(intBitsToFloat(R1i.w) / 2.0);
R1i.x = PV0i.x;
R1i.x = floatBitsToInt(intBitsToFloat(R1i.x) / 2.0);
PS1i = R1i.x;
}
if( activeMaskStackC[2] == true ) {
R0i.w = floatBitsToInt(texture(textureUnitPS1, vec3(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R2i.z))).x);
}
if( activeMaskStackC[2] == true ) {
// 0
R1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), intBitsToFloat(uf_remappedPS[9].y)));
R1i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[9].w),intBitsToFloat(R0i.w)) + intBitsToFloat(R1i.w)));
}
if( activeMaskStackC[2] == true ) {
R1i.z = floatBitsToInt(texture(textureUnitPS1, vec3(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z))).x);
}
if( activeMaskStackC[2] == true ) {
// 0
if( (intBitsToFloat(R3i.z) > intBitsToFloat(R1i.z))) discard;
tempResultf = max(0.0, intBitsToFloat(R1i.z));
tempResultf = log2(tempResultf);
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
R1i.x = floatBitsToInt(tempResultf);
PS0i = R1i.x;
}
if( activeMaskStackC[2] == true ) {
// 0
PV0i.w = floatBitsToInt(intBitsToFloat(R1i.x) * intBitsToFloat(0x3fe66666));
// 1
R127i.z = floatBitsToInt(exp2(intBitsToFloat(PV0i.w)));
PS1i = R127i.z;
// 2
R123i.x = floatBitsToInt((intBitsToFloat(0x40b1999a) * intBitsToFloat(PS1i) + intBitsToFloat(0x3ee66666)));
PV0i.x = R123i.x;
R123i.y = floatBitsToInt((intBitsToFloat(0x3dccccce) * intBitsToFloat(PS1i) + intBitsToFloat(0x3e4ccccd)));
PV0i.y = R123i.y;
// 3
backupReg0i = R5i.x;
backupReg1i = R5i.y;
R5i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.y),intBitsToFloat(PV0i.y)) + intBitsToFloat(backupReg0i)));
R5i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.y),intBitsToFloat(PV0i.x)) + intBitsToFloat(backupReg1i)));
R123i.w = floatBitsToInt((intBitsToFloat(0x41200000) * intBitsToFloat(R127i.z) + 4.0));
PV1i.w = R123i.w;
// 4
backupReg0i = R5i.z;
R5i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.y),intBitsToFloat(PV1i.w)) + intBitsToFloat(backupReg0i)));
}
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
if( activeMaskStackC[1] == true ) {
// 0
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.w),-(intBitsToFloat(uf_remappedPS[8].w))) + intBitsToFloat(R2i.w)));
PV0i.x = R123i.x;
PV0i.y = uf_remappedPS[7].z;
PV0i.z = ((intBitsToFloat(R7i.y) > 0.0)?int(0xFFFFFFFF):int(0x0));
R123i.w = ((R6i.z == 0)?(0x3d008081):(0x3d30b0b1));
PV0i.w = R123i.w;
R1i.w = floatBitsToInt(1.0);
PS0i = R1i.w;
// 1
R1i.x = PV0i.w;
R127i.y = ((PV0i.z == 0)?(0):(0x3f800000));
PV1i.y = R127i.y;
R0i.z = floatBitsToInt((intBitsToFloat(R4i.z) * 0.5 + 0.5));
PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(0x427f0000));
R1i.y = PV0i.y;
PS1i = R1i.y;
// 2
PV0i.x = ((intBitsToFloat(PV1i.y) > 0.0)?int(0xFFFFFFFF):int(0x0));
R0i.y = floatBitsToInt((intBitsToFloat(R3i.y) * 0.5 + 0.5));
PV0i.z = floatBitsToInt(floor(intBitsToFloat(PV1i.w)));
PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) * 4.0);
R2i.w = 0x3f800000;
R0i.x = floatBitsToInt((intBitsToFloat(R3i.x) * 0.5 + 0.5));
PS0i = R0i.x;
// 3
PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + 2.0);
R123i.w = ((PV0i.x == 0)?(R6i.y):(R7i.y));
PV1i.w = R123i.w;
// 4
PV0i.x = floatBitsToInt(intBitsToFloat(R6i.y) + intBitsToFloat(PV1i.y));
PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x437f0000));
// 5
R0i.w = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(0x3b808081));
PS1i = int(intBitsToFloat(PV0i.z));
// 6
PV0i.x = PS1i & 0x000000e0;
// 7
PV1i.w = PV0i.x >> 0x00000003;
// 8
PS0i = floatBitsToInt(float(PV1i.w));
// 9
PV1i.y = floatBitsToInt(intBitsToFloat(PS0i) + intBitsToFloat(0x42800000));
// 10
R123i.x = floatBitsToInt((intBitsToFloat(R127i.y) * 2.0 + intBitsToFloat(PV1i.y)));
PV0i.x = R123i.x;
// 11
R5i.w = floatBitsToInt((intBitsToFloat(PV0i.x) * intBitsToFloat(0x3b808081) + intBitsToFloat(0x3b808081)));
// 12
R4i.xyz = ivec3(R5i.x,R5i.y,R5i.z);
R4i.w = R2i.w;
// 13
R3i.xyz = ivec3(R0i.x,R0i.y,R0i.z);
R3i.w = R0i.w;
// 14
R2i.xyz = ivec3(R6i.x,R8i.y,R7i.z);
R2i.w = R5i.w;
// 15
backupReg0i = R1i.x;
backupReg1i = R1i.y;
backupReg2i = R1i.z;
backupReg3i = R1i.w;
R1i.xyz = ivec3(backupReg0i,backupReg1i,backupReg2i);
R1i.w = backupReg3i;
}
// export
passPixelColor0 = vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.w));
passPixelColor1 = vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.w));
passPixelColor3 = vec4(intBitsToFloat(R3i.x), intBitsToFloat(R3i.y), intBitsToFloat(R3i.z), intBitsToFloat(R3i.w));
passPixelColor5 = vec4(intBitsToFloat(R4i.x), intBitsToFloat(R4i.y), intBitsToFloat(R4i.z), intBitsToFloat(R4i.w));
}

View File

@ -0,0 +1,187 @@
#version 420
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
const vec3 Color = vec3($R,$G,$B);
const float Factor = $L_f;
// Ancient Armor
// shader cc51c2b5a4fce06c
uniform ivec4 uf_remappedPS[3];
uniform vec2 uf_fragCoordScale;
layout(binding = 1) uniform sampler2D textureUnitPS1;
layout(binding = 2) uniform sampler2D textureUnitPS2;
layout(binding = 3) uniform sampler2D textureUnitPS3;
layout(binding = 4) uniform sampler2D textureUnitPS4;
layout(binding = 5) uniform sampler2D textureUnitPS5;
layout(location = 0) in vec4 passParameterSem0;
layout(location = 1) in vec4 passParameterSem1;
layout(location = 2) in vec4 passParameterSem7;
layout(location = 3) in vec4 passParameterSem3;
layout(location = 4) in vec4 passParameterSem4;
layout(location = 0) out vec4 passPixelColor0;
layout(location = 1) out vec4 passPixelColor1;
layout(location = 3) out vec4 passPixelColor3;
layout(location = 5) out vec4 passPixelColor5;
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 R123f = vec4(0.0);
vec4 R125f = 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 = passParameterSem0;
R1f = passParameterSem1;
R2f = passParameterSem7;
R3f = passParameterSem3;
R4f = passParameterSem4;
R5f.xy = (texture(textureUnitPS3, R0f.xy).xy);
R1f.w = (texture(textureUnitPS2, R0f.xy).x);
R1f.xyz = (texture(textureUnitPS4, R1f.xy).xyz);
R6f.xyz = (texture(textureUnitPS5, R0f.zw).xyz);
R0f.xyz = (texture(textureUnitPS1, R0f.xy).xyz);
// 0
PV0f.x = fract(R2f.x);
R125f.y = (R5f.x * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204));
PV0f.y = R125f.y;
R127f.z = mul_nonIEEE(R3f.y, R4f.z);
PV0f.w = fract(R2f.y);
R127f.x = mul_nonIEEE(R3f.z, R4f.x);
PS0f = R127f.x;
// 1
R126f.x = (R5f.y * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204));
PV1f.y = PV0f.w + -(0.5);
PV1f.z = PV0f.x + -(0.5);
PV1f.w = mul_nonIEEE(R3f.x, R4f.y);
R127f.y = mul_nonIEEE(PV0f.y, PV0f.y);
PS1f = R127f.y;
// 2
backupReg0f = R127f.z;
R123f.x = (mul_nonIEEE(-(PV1f.z),PV1f.z) + 1.0);
R123f.x = clamp(R123f.x, 0.0, 1.0);
PV0f.x = R123f.x;
R126f.y = (mul_nonIEEE(-(R4f.z),R3f.x) + R127f.x);
R127f.z = (mul_nonIEEE(-(R4f.y),R3f.z) + backupReg0f);
R123f.w = (mul_nonIEEE(-(PV1f.y),PV1f.y) + 1.0);
R123f.w = clamp(R123f.w, 0.0, 1.0);
PV0f.w = R123f.w;
R127f.w = (mul_nonIEEE(-(R4f.x),R3f.y) + PV1f.w);
PS0f = R127f.w;
// 3
R123f.x = (mul_nonIEEE(R126f.x,R126f.x) + R127f.y);
R123f.x = clamp(R123f.x, 0.0, 1.0);
PV1f.x = R123f.x;
PV1f.y = mul_nonIEEE(R4f.w, R126f.x);
PV1f.z = mul_nonIEEE(PV0f.x, PV0f.w);
R126f.w = mul_nonIEEE(Color.r, R1f.x);
R126f.x = mul_nonIEEE(Color.g, R1f.y);
PS1f = R126f.x;
// 4
PV0f.x = mul_nonIEEE(R127f.z, PV1f.y);
PV0f.y = mul_nonIEEE(R126f.y, PV1f.y);
PV0f.z = mul_nonIEEE(R127f.w, PV1f.y);
PV0f.w = -(PV1f.x) + 1.0;
PS0f = mul_nonIEEE(PV1f.z, PV1f.z);
// 5
R123f.x = (mul_nonIEEE(R4f.y,R125f.y) + PV0f.y);
PV1f.x = R123f.x;
R123f.y = (mul_nonIEEE(R4f.x,R125f.y) + PV0f.x);
PV1f.y = R123f.y;
PV1f.z = mul_nonIEEE(R1f.w, PS0f);
R123f.w = (mul_nonIEEE(R4f.z,R125f.y) + PV0f.z);
PV1f.w = R123f.w;
PS1f = sqrt(PV0f.w);
// 6
R127f.x = (mul_nonIEEE(R3f.x,PS1f) + PV1f.y);
PV0f.x = R127f.x;
R126f.y = (mul_nonIEEE(R3f.y,PS1f) + PV1f.x);
PV0f.y = R126f.y;
R126f.z = (mul_nonIEEE(R3f.z,PS1f) + PV1f.w);
PV0f.z = R126f.z;
PV0f.w = PV1f.z * intBitsToFloat(0x427f0000);
R127f.z = mul_nonIEEE(Color.b, R1f.z);
PS0f = R127f.z;
// 7
tempf.x = dot(vec4(PV0f.x,PV0f.y,PV0f.z,-0.0),vec4(PV0f.x,PV0f.y,PV0f.z,0.0));
PV1f.x = tempf.x;
PV1f.y = tempf.x;
PV1f.z = tempf.x;
PV1f.w = tempf.x;
R125f.y = floor(PV0f.w);
R125f.y *= 4.0;
PS1f = R125f.y;
// 8
PV0f.x = mul_nonIEEE(R6f.z, R127f.z);
PV0f.y = mul_nonIEEE(R6f.y, R126f.x);
R127f.z = intBitsToFloat(0x3d008081);
PV0f.w = mul_nonIEEE(R6f.x, R126f.w);
tempResultf = 1.0 / sqrt(PV1f.x);
R127f.y = tempResultf;
R127f.y /= 2.0;
PS0f = R127f.y;
// 9
R126f.x = R125f.y + 2.0;
R6f.y = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].x) * Factor, PV0f.y);
R6f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].x) * Factor, PV0f.x);
PV1f.w = intBitsToFloat(uf_remappedPS[2].z);
R6f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].x) * Factor, PV0f.w);
PS1f = R6f.x;
// 10
R3f.x = R127f.z;
R3f.y = PV1f.w;
R1f.z = (mul_nonIEEE(R126f.z,R127f.y) + 0.5);
R3f.w = 1.0;
R1f.x = (mul_nonIEEE(R127f.x,R127f.y) + 0.5);
PS0f = R1f.x;
// 11
R1f.y = (mul_nonIEEE(R126f.y,R127f.y) + 0.5);
R6f.w = 1.0;
R1f.w = R126f.x * intBitsToFloat(0x3b808081);
PS1f = R1f.w;
// 12
R0f.w = intBitsToFloat(0x3e828283);
// 13
R7f.xyz = vec3(R6f.x,R6f.y,R6f.z);
R7f.w = R6f.w;
// 14
R6f.xyz = vec3(R1f.x,R1f.y,R1f.z);
R6f.w = R1f.w;
// 15
R5f.xyz = vec3(R0f.x,R0f.y,R0f.z);
R5f.w = R0f.w;
// 16
R4f.xyz = vec3(R3f.x,R3f.y,R3f.z);
R4f.w = R3f.w;
// export
passPixelColor0 = vec4(R4f.x, R4f.y, R4f.z, R4f.w);
passPixelColor1 = vec4(R5f.x, R5f.y, R5f.z, R5f.w);
passPixelColor3 = vec4(R6f.x, R6f.y, R6f.z, R6f.w);
passPixelColor5 = vec4(R7f.x, R7f.y, R7f.z, R7f.w);
}

View File

@ -0,0 +1,55 @@
[Definition]
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
name = Ancient Armor
path = "The Legend of Zelda: Breath of the Wild/Mods/Change Ancient Glow Color/Ancient Armor"
description = Change Ancient Amor's color and brightness. Originally it's Ancient Orange.
version = 3
[Preset]
name = Malice Red
$R = 0.85
$G = 0.029
$B = 0.15
$L_f = 1.0
[Preset]
name = Guardian Yellow
$R = 1.0
$G = 0.2
$B = 0.059
$L_f = 2.0
[Preset]
name = Guardian weapon Yellow
$R = 1.0
$G = 0.2
$B = 0.0
$L_f = 1.5
[Preset]
name = Ancient Orange
$R = 1.0
$G = 0.2
$B = 0.0006
$L_f = 1.0
[Preset]
name = Ancient weapon Orange
$R = 1.0
$G = 0.15
$B = 0.05
$L_f = 1.0
[Preset]
name = Energy Blue
$R = 0.03
$G = 0.25
$B = 1.0
$L_f = 2.0
[Preset]
name = Custom (Edit in rules.txt)
$R = 0.000
$G = 0.000
$B = 0.000
$L_f = 2.0 # Brightness scaling factor

View File

@ -0,0 +1,199 @@
#version 420
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
const vec3 Color = vec3($R,$G,$B);
const float Light = $L;
// Ancient weapons
// shader 5c4fc00fefe604eb
uniform ivec4 uf_remappedPS[3];
uniform vec2 uf_fragCoordScale;
layout(binding = 1) uniform sampler2D textureUnitPS1;
layout(binding = 2) uniform sampler2D textureUnitPS2;
layout(binding = 3) uniform sampler2D textureUnitPS3;
layout(binding = 4) uniform sampler2D textureUnitPS4;
layout(binding = 5) uniform sampler2D textureUnitPS5;
layout(location = 0) in vec4 passParameterSem0;
layout(location = 1) in vec4 passParameterSem3;
layout(location = 2) in vec4 passParameterSem4;
layout(location = 3) in vec4 passParameterSem7;
layout(location = 0) out vec4 passPixelColor0;
layout(location = 1) out vec4 passPixelColor1;
layout(location = 3) out vec4 passPixelColor3;
layout(location = 5) out vec4 passPixelColor5;
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 R122i = ivec4(0);
ivec4 R123i = ivec4(0);
ivec4 R125i = ivec4(0);
ivec4 R126i = ivec4(0);
ivec4 R127i = ivec4(0);
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 = floatBitsToInt(passParameterSem0);
R1i = floatBitsToInt(passParameterSem3);
R2i = floatBitsToInt(passParameterSem4);
R3i = floatBitsToInt(passParameterSem7);
R4i.xy = floatBitsToInt(texture(textureUnitPS3, intBitsToFloat(R0i.xy)).xy);
R6i.xy = floatBitsToInt(texture(textureUnitPS2, intBitsToFloat(R0i.xy)).xy);
R5i.xyz = floatBitsToInt(texture(textureUnitPS4, intBitsToFloat(R0i.xy)).xyz);
R7i.xyz = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.zw)).xyz);
R0i.xyz = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R0i.xy)).xyz);
// 0
R126i.x = floatBitsToInt((intBitsToFloat(R4i.x) * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204)));
PV0i.x = R126i.x;
R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(R2i.z)));
PV0i.z = floatBitsToInt(fract(intBitsToFloat(R3i.y)));
PV0i.w = floatBitsToInt(fract(intBitsToFloat(R3i.x)));
R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(R2i.x)));
PS0i = R126i.y;
// 1
PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.z) + -(0.5));
PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.w) + -(0.5));
R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(R2i.y)));
R127i.w = floatBitsToInt((intBitsToFloat(R4i.y) * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204)));
PV1i.w = R127i.w;
PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PV0i.x)));
// 2
R127i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R2i.y)),intBitsToFloat(R1i.z)) + intBitsToFloat(R127i.y)));
R127i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R2i.z)),intBitsToFloat(R1i.x)) + intBitsToFloat(R126i.y)));
R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.x)),intBitsToFloat(PV1i.x)) + 1.0));
R123i.z = clampFI32(R123i.z);
PV0i.z = R123i.z;
R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.y)),intBitsToFloat(PV1i.y)) + 1.0));
R123i.w = clampFI32(R123i.w);
PV0i.w = R123i.w;
R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(PV1i.w)) + intBitsToFloat(PS1i)));
R122i.x = clampFI32(R122i.x);
PS0i = R122i.x;
// 3
PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(R127i.w)));
PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(PV0i.z)));
PV1i.z = floatBitsToInt(intBitsToFloat(R6i.y) * intBitsToFloat(0x437f0000));
R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R2i.x)),intBitsToFloat(R1i.y)) + intBitsToFloat(R127i.z)));
PV1i.w = R123i.w;
R127i.w = floatBitsToInt(-(intBitsToFloat(PS0i)) + 1.0);
PS1i = R127i.w;
// 4
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.y)) + intBitsToFloat(R6i.y)));
R123i.x = clampFI32(R123i.x);
PV0i.x = R123i.x;
PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PV1i.x)));
PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PV1i.x)));
PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PV1i.x)));
R127i.x = int(intBitsToFloat(PV1i.z));
PS0i = R127i.x;
// 5
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.x),intBitsToFloat(R126i.x)) + intBitsToFloat(PV0i.z)));
PV1i.x = R123i.x;
PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.x), intBitsToFloat(PV0i.x)));
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y),intBitsToFloat(R126i.x)) + intBitsToFloat(PV0i.w)));
PV1i.z = R123i.z;
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.z),intBitsToFloat(R126i.x)) + intBitsToFloat(PV0i.y)));
PV1i.w = R123i.w;
PS1i = floatBitsToInt(sqrt(intBitsToFloat(R127i.w)));
// 6
R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x),intBitsToFloat(PS1i)) + intBitsToFloat(PV1i.x)));
R125i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(PS1i)) + intBitsToFloat(PV1i.z)));
R125i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.z),intBitsToFloat(PS1i)) + intBitsToFloat(PV1i.w)));
PV0i.w = R127i.x & 0x000000e0;
R127i.y = floatBitsToInt(intBitsToFloat(PV1i.y) * intBitsToFloat(0x427f0000));
PS0i = R127i.y;
// 7
R127i.x = floatBitsToInt(mul_nonIEEE(Color.g, intBitsToFloat(R5i.y)));
R126i.y = floatBitsToInt(mul_nonIEEE(Color.b, intBitsToFloat(R5i.z)));
R127i.z = PV0i.w >> 0x00000003;
R127i.w = floatBitsToInt(mul_nonIEEE(Color.r, intBitsToFloat(R5i.x)));
R126i.w = ((intBitsToFloat(R6i.y) > 0.5)?int(0xFFFFFFFF):int(0x0));
PS1i = R126i.w;
// 8
backupReg0i = R127i.y;
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R125i.x),intBitsToFloat(R125i.y),intBitsToFloat(R125i.z),-0.0),vec4(intBitsToFloat(R125i.x),intBitsToFloat(R125i.y),intBitsToFloat(R125i.z),0.0)));
PV0i.x = tempi.x;
PV0i.y = tempi.x;
PV0i.z = tempi.x;
PV0i.w = tempi.x;
R127i.y = tempi.x;
R126i.x = floatBitsToInt(floor(intBitsToFloat(backupReg0i)));
R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) * 4.0);
PS0i = R126i.x;
// 9
backupReg0i = R126i.y;
backupReg1i = R127i.z;
PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.x), intBitsToFloat(R127i.w)));
R126i.y = ((R126i.w == 0)?(0x3d008081):(0x3d20a0a1));
R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.z), intBitsToFloat(backupReg0i)));
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.y), intBitsToFloat(R127i.x)));
PS1i = floatBitsToInt(float(backupReg1i));
// 10
backupReg0i = R126i.x;
R126i.x = floatBitsToInt(intBitsToFloat(PS1i) + intBitsToFloat(0x42820000));
R7i.y = floatBitsToInt(mul_nonIEEE(Light, intBitsToFloat(PV1i.w)));
R126i.z = floatBitsToInt(intBitsToFloat(backupReg0i) + 2.0);
PV0i.w = uf_remappedPS[2].z;
R7i.x = floatBitsToInt(mul_nonIEEE(Light, intBitsToFloat(PV1i.x)));
PS0i = R7i.x;
// 11
R6i.x = R126i.y;
R6i.y = PV0i.w;
R7i.z = floatBitsToInt(mul_nonIEEE(Light, intBitsToFloat(R127i.z)));
R6i.w = floatBitsToInt(1.0);
R7i.w = 0x3f800000;
PS1i = R7i.w;
// 12
R5i.w = floatBitsToInt(intBitsToFloat(R126i.z) * intBitsToFloat(0x3b808081));
R0i.w = floatBitsToInt(intBitsToFloat(R126i.x) * intBitsToFloat(0x3b808081));
PS0i = R0i.w;
// 13
tempResultf = 1.0 / sqrt(intBitsToFloat(R127i.y));
PS1i = floatBitsToInt(tempResultf);
PS1i = floatBitsToInt(intBitsToFloat(PS1i) / 2.0);
// 14
R5i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.x),intBitsToFloat(PS1i)) + 0.5));
R5i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(PS1i)) + 0.5));
R5i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.z),intBitsToFloat(PS1i)) + 0.5));
// 15
R4i.xyz = ivec3(R7i.x,R7i.y,R7i.z);
R4i.w = R7i.w;
// 16
R3i.xyz = ivec3(R5i.x,R5i.y,R5i.z);
R3i.w = R5i.w;
// 17
R2i.xyz = ivec3(R0i.x,R0i.y,R0i.z);
R2i.w = R0i.w;
// 18
R1i.xyz = ivec3(R6i.x,R6i.y,R6i.z);
R1i.w = R6i.w;
// export
passPixelColor0 = vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.w));
passPixelColor1 = vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.w));
passPixelColor3 = vec4(intBitsToFloat(R3i.x), intBitsToFloat(R3i.y), intBitsToFloat(R3i.z), intBitsToFloat(R3i.w));
passPixelColor5 = vec4(intBitsToFloat(R4i.x), intBitsToFloat(R4i.y), intBitsToFloat(R4i.z), intBitsToFloat(R4i.w));
}

View File

@ -0,0 +1,959 @@
#version 420
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
const vec3 Color = vec3($R,$G,$B);
const float Light = $L;
// Ancient weapons when teleporting
// shader b1b149918fac0b8d
uniform ivec4 uf_remappedPS[10];
uniform vec2 uf_fragCoordScale;
layout(binding = 1) uniform sampler3D textureUnitPS1;
layout(binding = 2) uniform sampler2DArray textureUnitPS2;
layout(binding = 3) uniform sampler2D textureUnitPS3;
layout(binding = 4) uniform sampler2D textureUnitPS4;
layout(binding = 5) uniform sampler2D textureUnitPS5;
layout(binding = 6) uniform sampler2D textureUnitPS6;
layout(binding = 7) uniform sampler2D textureUnitPS7;
layout(location = 0) in vec4 passParameterSem0;
layout(location = 1) in vec4 passParameterSem2;
layout(location = 2) in vec4 passParameterSem8;
layout(location = 3) in vec4 passParameterSem4;
layout(location = 4) in vec4 passParameterSem5;
layout(location = 5) in vec4 passParameterSem7;
layout(location = 0) out vec4 passPixelColor0;
layout(location = 1) out vec4 passPixelColor1;
layout(location = 3) out vec4 passPixelColor3;
layout(location = 5) out vec4 passPixelColor5;
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 R122i = ivec4(0);
ivec4 R123i = ivec4(0);
ivec4 R124i = ivec4(0);
ivec4 R125i = ivec4(0);
ivec4 R126i = ivec4(0);
ivec4 R127i = ivec4(0);
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;
bool activeMaskStack[2];
bool activeMaskStackC[3];
activeMaskStack[0] = false;
activeMaskStackC[0] = false;
activeMaskStackC[1] = false;
activeMaskStack[0] = true;
activeMaskStackC[0] = true;
activeMaskStackC[1] = true;
vec3 cubeMapSTM;
int cubeMapFaceId;
R0i = floatBitsToInt(passParameterSem0);
R1i = floatBitsToInt(passParameterSem2);
R2i = floatBitsToInt(passParameterSem8);
R3i = floatBitsToInt(passParameterSem4);
R4i = floatBitsToInt(passParameterSem5);
R5i = floatBitsToInt(passParameterSem7);
if( activeMaskStackC[1] == true ) {
R6i.xy = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.xy)).xy);
R7i.xyz = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R0i.xy)).xyz);
R9i.xy = floatBitsToInt(texture(textureUnitPS4, intBitsToFloat(R0i.xy)).xy);
R8i.xyz = floatBitsToInt(texture(textureUnitPS7, intBitsToFloat(R0i.zw)).xyz);
R10i.xyz = floatBitsToInt(texture(textureUnitPS3, intBitsToFloat(R0i.xy)).xyz);
}
if( activeMaskStackC[1] == true ) {
activeMaskStack[1] = activeMaskStack[0];
activeMaskStackC[2] = activeMaskStackC[1];
// 0
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.x), intBitsToFloat(R4i.y)));
PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.y), intBitsToFloat(R4i.z)));
PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), intBitsToFloat(R4i.x)));
R127i.w = floatBitsToInt((intBitsToFloat(R6i.x) * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204)));
PV0i.w = R127i.w;
R127i.y = floatBitsToInt((intBitsToFloat(R6i.y) * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204)));
PS0i = R127i.y;
// 1
R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.x)),intBitsToFloat(R3i.y)) + intBitsToFloat(PV0i.x)));
PV1i.x = R123i.x;
R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.z)),intBitsToFloat(R3i.x)) + intBitsToFloat(PV0i.z)));
PV1i.y = R123i.y;
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(PV0i.w)));
R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.y)),intBitsToFloat(R3i.z)) + intBitsToFloat(PV0i.y)));
PV1i.w = R123i.w;
PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.w), intBitsToFloat(PS0i)));
// 2
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(R127i.y)) + intBitsToFloat(PV1i.z)));
R123i.x = clampFI32(R123i.x);
PV0i.x = R123i.x;
PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PS1i)));
PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(PS1i)));
PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(PS1i)));
R126i.w = floatBitsToInt(fract(intBitsToFloat(R2i.x)));
PS0i = R126i.w;
// 3
R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.y),intBitsToFloat(R127i.w)) + intBitsToFloat(PV0i.w)));
R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.z),intBitsToFloat(R127i.w)) + intBitsToFloat(PV0i.z)));
R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.x),intBitsToFloat(R127i.w)) + intBitsToFloat(PV0i.y)));
PV1i.w = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0);
R126i.x = floatBitsToInt(fract(intBitsToFloat(R2i.y)));
PS1i = R126i.x;
// 4
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R5i.y),intBitsToFloat(R5i.z),-0.0),vec4(intBitsToFloat(R5i.x),intBitsToFloat(R5i.y),intBitsToFloat(R5i.z),0.0)));
PV0i.x = tempi.x;
PV0i.y = tempi.x;
PV0i.z = tempi.x;
PV0i.w = tempi.x;
PS0i = floatBitsToInt(sqrt(intBitsToFloat(PV1i.w)));
// 5
backupReg0i = R127i.x;
R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.x),intBitsToFloat(PS0i)) + intBitsToFloat(R127i.z)));
PV1i.x = R127i.x;
R125i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.y),intBitsToFloat(PS0i)) + intBitsToFloat(backupReg0i)));
PV1i.y = R125i.y;
R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.z),intBitsToFloat(PS0i)) + intBitsToFloat(R127i.y)));
PV1i.z = R126i.z;
R127i.w = floatBitsToInt(intBitsToFloat(R126i.w) + -(0.5));
R126i.w = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x)));
PS1i = R126i.w;
// 6
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0)));
PV0i.x = tempi.x;
PV0i.y = tempi.x;
PV0i.z = tempi.x;
PV0i.w = tempi.x;
R126i.y = tempi.x;
PS0i = floatBitsToInt(intBitsToFloat(R126i.x) + -(0.5));
// 7
R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PS0i)),intBitsToFloat(PS0i)) + 1.0));
R123i.x = clampFI32(R123i.x);
PV1i.x = R123i.x;
R127i.y = floatBitsToInt(mul_nonIEEE(Color.g, intBitsToFloat(R7i.y)));
R127i.z = floatBitsToInt(mul_nonIEEE(Color.r, intBitsToFloat(R7i.x)));
R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.w)),intBitsToFloat(R127i.w)) + 1.0));
R123i.w = clampFI32(R123i.w);
PV1i.w = R123i.w;
PS1i = floatBitsToInt(1.0 / intBitsToFloat(R126i.w));
// 8
R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(PS1i)));
R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.y), intBitsToFloat(PS1i)));
PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PV1i.x)));
R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.z), intBitsToFloat(PS1i)));
PS0i = floatBitsToInt(mul_nonIEEE(Color.b, intBitsToFloat(R7i.z)));
// 9
PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.z), intBitsToFloat(PS0i)));
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(PV0i.z)) + intBitsToFloat(R9i.y)));
R123i.y = clampFI32(R123i.y);
PV1i.y = R123i.y;
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.y), intBitsToFloat(R127i.y)));
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.x), intBitsToFloat(R127i.z)));
R1i.w = 0x3f800000;
PS1i = R1i.w;
// 10
R4i.x = floatBitsToInt(mul_nonIEEE(Light, intBitsToFloat(PV1i.w)));
R4i.y = floatBitsToInt(mul_nonIEEE(Light, intBitsToFloat(PV1i.z)));
R4i.z = floatBitsToInt(mul_nonIEEE(Light, intBitsToFloat(PV1i.x)));
R3i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.x), intBitsToFloat(PV1i.y)));
R4i.w = 0;
PS0i = R4i.w;
// 11
R2i.x = floatBitsToInt(fract(intBitsToFloat(uf_remappedPS[2].w)));
R5i.w = R9i.y;
tempResultf = 1.0 / sqrt(intBitsToFloat(R126i.y));
PS1i = floatBitsToInt(tempResultf);
// 12
R5i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PS1i)));
PV0i.x = R5i.x;
R5i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.y), intBitsToFloat(PS1i)));
PV0i.y = R5i.y;
R3i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), intBitsToFloat(PS1i)));
PV0i.z = R3i.z;
// 13
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R126i.x),intBitsToFloat(R124i.y),intBitsToFloat(R127i.w),-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;
R3i.y = floatBitsToInt(-(intBitsToFloat(PV0i.z)) + 1.0);
PS1i = R3i.y;
// 14
R3i.x = floatBitsToInt(intBitsToFloat(PV1i.x) + 1.0);
R3i.x = clampFI32(R3i.x);
// 15
predResult = (intBitsToFloat(R2i.x) > 0.0);
activeMaskStack[1] = predResult;
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
}
else {
activeMaskStack[1] = false;
activeMaskStackC[2] = false;
}
if( activeMaskStackC[2] == true ) {
// 0
R0i.z = floatBitsToInt(floor(intBitsToFloat(uf_remappedPS[2].w)));
PV0i.z = R0i.z;
// 1
R0i.z = floatBitsToInt(roundEven(intBitsToFloat(PV0i.z)));
}
if( activeMaskStackC[2] == true ) {
R0i.xyz = floatBitsToInt(texture(textureUnitPS2, vec3(intBitsToFloat(R0i.x),intBitsToFloat(R0i.y),intBitsToFloat(R0i.z))).xyz);
}
if( activeMaskStackC[2] == true ) {
// 0
backupReg0i = R0i.x;
PV0i.x = floatBitsToInt(-(intBitsToFloat(R10i.y)) + intBitsToFloat(R0i.y));
PV0i.y = floatBitsToInt(-(intBitsToFloat(R10i.x)) + intBitsToFloat(backupReg0i));
PV0i.w = floatBitsToInt(-(intBitsToFloat(R10i.z)) + intBitsToFloat(R0i.z));
// 1
backupReg0i = R10i.x;
backupReg1i = R10i.y;
backupReg2i = R10i.z;
R10i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(R2i.x)) + intBitsToFloat(backupReg0i)));
R10i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R2i.x)) + intBitsToFloat(backupReg1i)));
R10i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(R2i.x)) + intBitsToFloat(backupReg2i)));
// 2
R5i.w = R4i.w;
}
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
if( activeMaskStackC[1] == true ) {
activeMaskStack[1] = activeMaskStack[0];
activeMaskStackC[2] = activeMaskStackC[1];
// 0
R5i.z = ((intBitsToFloat(uf_remappedPS[3].w) > 0.0)?int(0xFFFFFFFF):int(0x0));
// 1
predResult = (R5i.z != 0);
activeMaskStack[1] = predResult;
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
}
else {
activeMaskStack[1] = false;
activeMaskStackC[2] = false;
}
if( activeMaskStackC[2] == true ) {
// 0
R0i.x = floatBitsToInt(intBitsToFloat(R1i.x) * intBitsToFloat(0x3e99999a));
R0i.y = floatBitsToInt(intBitsToFloat(R1i.y) * intBitsToFloat(0x3e99999a));
R0i.z = floatBitsToInt(intBitsToFloat(R1i.z) * intBitsToFloat(0x3e99999a));
}
if( activeMaskStackC[2] == true ) {
R0i.w = floatBitsToInt(texture(textureUnitPS1, vec3(intBitsToFloat(R0i.x),intBitsToFloat(R0i.y),intBitsToFloat(R0i.z))).x);
}
if( activeMaskStackC[2] == true ) {
// 0
backupReg0i = R0i.w;
PV0i.x = floatBitsToInt(intBitsToFloat(R10i.z) * intBitsToFloat(0x3dea4a8c));
PV0i.w = floatBitsToInt(-(intBitsToFloat(backupReg0i)) + 1.0);
tempResultf = max(0.0, intBitsToFloat(R3i.x));
tempResultf = log2(tempResultf);
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
R126i.z = floatBitsToInt(tempResultf);
PS0i = R126i.z;
// 1
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R10i.x),intBitsToFloat(R10i.y),intBitsToFloat(PV0i.x),-0.0),vec4(intBitsToFloat(0x3e99096c),intBitsToFloat(0x3f162b6b),1.0,0.0)));
PV1i.x = tempi.x;
PV1i.y = tempi.x;
PV1i.z = tempi.x;
PV1i.w = tempi.x;
R127i.z = tempi.x;
tempResultf = max(0.0, intBitsToFloat(PV0i.w));
tempResultf = log2(tempResultf);
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
PS1i = floatBitsToInt(tempResultf);
// 2
R127i.x = floatBitsToInt((0.5 * intBitsToFloat(PV1i.x) + intBitsToFloat(0x3dcccccd)));
PV0i.x = R127i.x;
PV0i.y = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3fa66666));
R125i.z = floatBitsToInt((intBitsToFloat(0x3f19999a) * intBitsToFloat(PV1i.x) + intBitsToFloat(0x3e4ccccd)));
// 3
backupReg0i = R127i.z;
PV1i.y = floatBitsToInt(intBitsToFloat(R126i.z) * intBitsToFloat(0x40200000));
R127i.z = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + intBitsToFloat(0x3e23d70a));
R127i.w = floatBitsToInt((intBitsToFloat(0x3f266666) * intBitsToFloat(backupReg0i) + intBitsToFloat(0x3eb33333)));
PV1i.w = R127i.w;
PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.y)));
// 4
PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + 0.25);
PV0i.y = floatBitsToInt(-(intBitsToFloat(R125i.z)) + intBitsToFloat(0x3e851eb8));
PV0i.w = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3e4ccccd));
PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.y)));
PS0i = floatBitsToInt(intBitsToFloat(PS0i) / 2.0);
// 5
PV1i.x = floatBitsToInt(intBitsToFloat(PS0i) + intBitsToFloat(PV0i.w));
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.w)) + intBitsToFloat(R127i.w)));
PV1i.y = R123i.y;
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.w)) + intBitsToFloat(R125i.z)));
PV1i.z = R123i.z;
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PV0i.w)) + intBitsToFloat(R127i.x)));
PV1i.w = R123i.w;
R6i.w = 0x3e99999a;
PS1i = R6i.w;
// 6
R127i.y = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(PV1i.x));
R127i.y = clampFI32(R127i.y);
PV0i.y = R127i.y;
PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(PV1i.x));
PV0i.z = clampFI32(PV0i.z);
PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(PV1i.x));
PV0i.w = clampFI32(PV0i.w);
// 7
PV1i.x = floatBitsToInt(-(intBitsToFloat(R10i.x)) + intBitsToFloat(PV0i.w));
PV1i.y = floatBitsToInt(-(intBitsToFloat(R4i.x)) + intBitsToFloat(PV0i.w));
PV1i.z = floatBitsToInt(-(intBitsToFloat(R10i.z)) + intBitsToFloat(PV0i.y));
PV1i.w = floatBitsToInt(-(intBitsToFloat(R10i.y)) + intBitsToFloat(PV0i.z));
R127i.x = floatBitsToInt(-(intBitsToFloat(R4i.y)) + intBitsToFloat(PV0i.z));
PS1i = R127i.x;
// 8
backupReg0i = R10i.x;
backupReg1i = R10i.y;
backupReg2i = R10i.z;
backupReg3i = R4i.x;
R10i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(uf_remappedPS[3].w)) + intBitsToFloat(backupReg0i)));
R10i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(uf_remappedPS[3].w)) + intBitsToFloat(backupReg1i)));
R10i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(uf_remappedPS[3].w)) + intBitsToFloat(backupReg2i)));
PV0i.w = floatBitsToInt(-(intBitsToFloat(R4i.z)) + intBitsToFloat(R127i.y));
R4i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(uf_remappedPS[3].w)) + intBitsToFloat(backupReg3i)));
PS0i = R4i.x;
// 9
backupReg0i = R4i.y;
backupReg1i = R4i.z;
R4i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(uf_remappedPS[3].w)) + intBitsToFloat(backupReg0i)));
R4i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(uf_remappedPS[3].w)) + intBitsToFloat(backupReg1i)));
// 10
R3i.w = R1i.w;
// 11
R5i.w = R1i.w;
// 12
R4i.w = R1i.w;
}
activeMaskStack[1] = activeMaskStack[1] == false;
activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true;
if( activeMaskStackC[2] == true ) {
// 0
R6i.w = R4i.w;
}
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
if( activeMaskStackC[1] == true ) {
activeMaskStack[1] = activeMaskStack[0];
activeMaskStackC[2] = activeMaskStackC[1];
// 0
predResult = (intBitsToFloat(uf_remappedPS[3].x) > 0.0);
activeMaskStack[1] = predResult;
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
}
else {
activeMaskStack[1] = false;
activeMaskStackC[2] = false;
}
if( activeMaskStackC[2] == true ) {
// 0
PS0i = floatBitsToInt(1.0 / intBitsToFloat(uf_remappedPS[3].y));
// 1
PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(PS0i)));
R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(PS0i)));
PV1i.y = R127i.y;
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(PS0i)));
// 2
R0i.x = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(0x40666666));
R0i.y = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x40666666));
R0i.z = floatBitsToInt(intBitsToFloat(PV1i.y) * intBitsToFloat(0x40666666));
R2i.w = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(0x3f3851ec));
R2i.y = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3f3851ec));
PS0i = R2i.y;
// 3
R2i.z = floatBitsToInt(intBitsToFloat(R127i.y) * intBitsToFloat(0x3f3851ec));
}
if( activeMaskStackC[2] == true ) {
R0i.z = floatBitsToInt(texture(textureUnitPS1, vec3(intBitsToFloat(R0i.x),intBitsToFloat(R0i.y),intBitsToFloat(R0i.z))).x);
R2i.y = floatBitsToInt(texture(textureUnitPS1, vec3(intBitsToFloat(R2i.w),intBitsToFloat(R2i.y),intBitsToFloat(R2i.z))).x);
}
if( activeMaskStackC[2] == true ) {
// 0
backupReg0i = R0i.z;
PV0i.z = floatBitsToInt(-(intBitsToFloat(backupReg0i)) + intBitsToFloat(R2i.y));
// 1
R123i.y = floatBitsToInt((intBitsToFloat(PV0i.z) * intBitsToFloat(0x3f333333) + intBitsToFloat(R0i.z)));
PV1i.y = R123i.y;
// 2
PV0i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedPS[3].x)) + intBitsToFloat(PV1i.y));
// 3
R127i.w = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(0x41a00000));
R127i.w = clampFI32(R127i.w);
PV1i.w = R127i.w;
// 4
backupReg0i = R10i.x;
backupReg1i = R10i.y;
backupReg2i = R10i.z;
backupReg3i = R4i.x;
R10i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.w)));
R10i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(PV1i.w)));
R10i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg2i), intBitsToFloat(PV1i.w)));
R4i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg3i), intBitsToFloat(PV1i.w)));
PS0i = R4i.x;
// 5
backupReg0i = R4i.y;
backupReg1i = R4i.z;
R4i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R127i.w)));
R4i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(R127i.w)));
}
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
if( activeMaskStackC[1] == true ) {
activeMaskStack[1] = activeMaskStack[0];
activeMaskStackC[2] = activeMaskStackC[1];
// 0
R0i.y = floatBitsToInt(intBitsToFloat(uf_remappedPS[4].x) * intBitsToFloat(0xbd088889));
// 1
R0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[5].y), intBitsToFloat(uf_remappedPS[6].x)));
// 2
predResult = (intBitsToFloat(uf_remappedPS[7].w) != 0.0);
activeMaskStack[1] = predResult;
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
}
else {
activeMaskStack[1] = false;
activeMaskStackC[2] = false;
}
if( activeMaskStackC[2] == true ) {
// 0
backupReg0i = R0i.x;
PV0i.x = floatBitsToInt(intBitsToFloat(R1i.x) * intBitsToFloat(0x3e22f983));
PV0i.y = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(0x40e66666));
PV0i.z = floatBitsToInt(intBitsToFloat(R1i.y) * intBitsToFloat(0x3e22f983));
PV0i.w = floatBitsToInt(intBitsToFloat(R1i.z) * intBitsToFloat(0x3e22f983));
PS0i = floatBitsToInt(intBitsToFloat(R5i.x) + intBitsToFloat(R3i.z));
// 1
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(PV0i.y)) + 0.5));
PV1i.x = R123i.x;
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(PV0i.y)) + 0.5));
PV1i.y = R123i.y;
PV1i.z = floatBitsToInt(intBitsToFloat(R5i.y) + intBitsToFloat(PS0i));
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y)) + 0.5));
PV1i.w = R123i.w;
PS1i = floatBitsToInt(max(intBitsToFloat(uf_remappedPS[7].w), -(intBitsToFloat(uf_remappedPS[7].w))));
// 2
PV0i.x = floatBitsToInt(fract(intBitsToFloat(PV1i.y)));
PV0i.y = floatBitsToInt(fract(intBitsToFloat(PV1i.x)));
PV0i.z = floatBitsToInt(fract(intBitsToFloat(PV1i.w)));
R127i.w = floatBitsToInt(intBitsToFloat(PV1i.z) * intBitsToFloat(0x3e99999a));
R125i.w = floatBitsToInt(sqrt(intBitsToFloat(PS1i)));
PS0i = R125i.w;
// 3
R127i.x = floatBitsToInt((intBitsToFloat(PV0i.y) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb)));
R127i.y = floatBitsToInt((intBitsToFloat(PV0i.z) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb)));
R126i.z = R3i.y;
R126i.z = clampFI32(R126i.z);
R123i.w = floatBitsToInt((intBitsToFloat(PV0i.x) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb)));
PV1i.w = R123i.w;
R124i.w = floatBitsToInt((intBitsToFloat(0xc3020000) * intBitsToFloat(PS0i) + intBitsToFloat(0x43200000)));
PS1i = R124i.w;
// 4
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z),-0.0),vec4(intBitsToFloat(R5i.x),intBitsToFloat(R5i.y),intBitsToFloat(R3i.z),0.0)));
PV0i.x = tempi.x;
PV0i.y = tempi.x;
PV0i.z = tempi.x;
PV0i.w = tempi.x;
PS0i = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3e22f983));
// 5
backupReg0i = R0i.x;
PV1i.x = floatBitsToInt(intBitsToFloat(R127i.y) * intBitsToFloat(0x3e22f983));
R127i.y = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(0x3e22f983));
R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV0i.x)));
R0i.w = floatBitsToInt((intBitsToFloat(0xc31a0000) * intBitsToFloat(R125i.w) + intBitsToFloat(0x43200000)));
R126i.y = floatBitsToInt(sin((intBitsToFloat(PS0i))/0.1591549367));
PS1i = R126i.y;
// 6
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R10i.x),intBitsToFloat(R10i.y),intBitsToFloat(R10i.z),-0.0),vec4(intBitsToFloat(R10i.x),intBitsToFloat(R10i.y),intBitsToFloat(R10i.z),0.0)));
PV0i.x = tempi.x;
PV0i.y = tempi.x;
PV0i.z = tempi.x;
PV0i.w = tempi.x;
R126i.w = tempi.x;
PS0i = floatBitsToInt(sin((intBitsToFloat(PV1i.x))/0.1591549367));
// 7
backupReg0i = R127i.y;
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.x),intBitsToFloat(R127i.w)) + intBitsToFloat(R127i.z)));
PV1i.x = R123i.x;
R127i.y = floatBitsToInt((intBitsToFloat(0xc2080000) * intBitsToFloat(R125i.w) + intBitsToFloat(0x42200000)));
PV1i.z = floatBitsToInt(intBitsToFloat(R126i.y) + intBitsToFloat(PS0i));
R127i.w = floatBitsToInt((intBitsToFloat(0xbfe66666) * intBitsToFloat(R125i.w) + intBitsToFloat(0x40333333)));
PS1i = floatBitsToInt(sin((intBitsToFloat(backupReg0i))/0.1591549367));
// 8
R125i.x = floatBitsToInt((intBitsToFloat(0xbd8f5c29) * intBitsToFloat(R125i.w) + intBitsToFloat(0x3d8f5c29)));
PV0i.y = floatBitsToInt(intBitsToFloat(PS1i) + intBitsToFloat(PV1i.z));
PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(R126i.w));
R126i.w = floatBitsToInt((intBitsToFloat(0xc0333333) * intBitsToFloat(R125i.w) + intBitsToFloat(0x40333333)));
tempResultf = max(0.0, intBitsToFloat(R126i.z));
tempResultf = log2(tempResultf);
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
R127i.x = floatBitsToInt(tempResultf);
PS0i = R127i.x;
// 9
R123i.x = floatBitsToInt((intBitsToFloat(PV0i.y) * 0.25 + intBitsToFloat(PV0i.z)));
PV1i.x = R123i.x;
R123i.y = floatBitsToInt((intBitsToFloat(R125i.w) * intBitsToFloat(0x3e4ccccd) + intBitsToFloat(0x3e4ccccd)));
PV1i.y = R123i.y;
R123i.z = floatBitsToInt((intBitsToFloat(0x3d4cccce) * intBitsToFloat(R125i.w) + intBitsToFloat(0x3dcccccd)));
PV1i.z = R123i.z;
PV1i.w = ((0.0 > intBitsToFloat(uf_remappedPS[7].w))?int(0xFFFFFFFF):int(0x0));
R126i.x = ((intBitsToFloat(uf_remappedPS[7].w) == 0.0)?int(0xFFFFFFFF):int(0x0));
PS1i = R126i.x;
// 10
PV0i.x = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(0x41000000));
R123i.y = ((PV1i.w == 0)?(PV1i.y):(PV1i.z));
PV0i.y = R123i.y;
R123i.z = floatBitsToInt((intBitsToFloat(PV1i.x) * intBitsToFloat(0x3f400000) + intBitsToFloat(R0i.y)));
PV0i.z = R123i.z;
PV0i.w = PV1i.x;
PV0i.w = clampFI32(PV0i.w);
R127i.z = floatBitsToInt((intBitsToFloat(0xc3480000) * intBitsToFloat(R125i.w) + intBitsToFloat(0x43960000)));
PS0i = R127i.z;
// 11
R127i.x = floatBitsToInt((intBitsToFloat(0xc36b0000) * intBitsToFloat(R125i.w) + intBitsToFloat(0x437f0000)));
R123i.y = floatBitsToInt((intBitsToFloat(PV0i.w) * intBitsToFloat(0xbeb33333) + intBitsToFloat(PV0i.z)));
PV1i.y = R123i.y;
R1i.w = ((R126i.x == 0)?(PV0i.y):(0));
R125i.z = floatBitsToInt(exp2(intBitsToFloat(PV0i.x)));
PS1i = R125i.z;
// 12
PV0i.x = floatBitsToInt(fract(intBitsToFloat(PV1i.y)));
PV0i.x = floatBitsToInt(intBitsToFloat(PV0i.x) * 2.0);
R125i.y = floatBitsToInt((intBitsToFloat(0x41600000) * intBitsToFloat(R125i.w) + intBitsToFloat(0x40c00000)));
// 13
PV1i.z = PV0i.x;
PV1i.z = clampFI32(PV1i.z);
PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.x) + -(1.0));
PV1i.w = clampFI32(PV1i.w);
// 14
PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + intBitsToFloat(PV1i.z));
// 15
R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(PV0i.y)));
PV1i.x = R126i.x;
R125i.w = PV0i.y;
R125i.w = floatBitsToInt(intBitsToFloat(R125i.w) * 2.0);
// 16
PV0i.z = floatBitsToInt(intBitsToFloat(0x40400000) * intBitsToFloat(PV1i.x));
// 17
R126i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.w)),intBitsToFloat(R126i.x)) + intBitsToFloat(PV0i.z)));
PV1i.y = R126i.y;
// 18
tempResultf = max(0.0, intBitsToFloat(PV1i.y));
tempResultf = log2(tempResultf);
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
PS0i = floatBitsToInt(tempResultf);
// 19
PV1i.w = floatBitsToInt(intBitsToFloat(PS0i) * intBitsToFloat(0x43480000));
// 20
R126i.z = floatBitsToInt(exp2(intBitsToFloat(PV1i.w)));
PS0i = R126i.z;
// 21
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.w),intBitsToFloat(PS0i)) + intBitsToFloat(R127i.w)));
PV1i.y = R123i.y;
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(PS0i)) + intBitsToFloat(R125i.x)));
PV1i.w = R123i.w;
// 22
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.w),intBitsToFloat(R126i.z)) + intBitsToFloat(R126i.w)));
PV0i.x = R123i.x;
R123i.y = floatBitsToInt((intBitsToFloat(R126i.y) * intBitsToFloat(0x3ecccccd) + intBitsToFloat(PV1i.w)));
PV0i.y = R123i.y;
R123i.z = floatBitsToInt((intBitsToFloat(R126i.y) * intBitsToFloat(0x3ecccccd) + intBitsToFloat(PV1i.y)));
PV0i.z = R123i.z;
// 23
R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(R125i.z)) + intBitsToFloat(PV0i.y)));
R123i.y = floatBitsToInt((intBitsToFloat(R126i.y) * intBitsToFloat(0x3ecccccd) + intBitsToFloat(PV0i.x)));
PV1i.y = R123i.y;
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R125i.z)) + intBitsToFloat(PV0i.z)));
PV1i.w = R123i.w;
// 24
R2i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R1i.w)));
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(R125i.z)) + intBitsToFloat(PV1i.y)));
PV0i.z = R123i.z;
// 25
R2i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R1i.w)));
R2i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(R1i.w)));
}
activeMaskStack[1] = activeMaskStack[1] == false;
activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true;
if( activeMaskStackC[2] == true ) {
// 0
R2i.xyz = ivec3(0,0,0);
R1i.w = 0;
}
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
if( activeMaskStackC[1] == true ) {
activeMaskStack[1] = activeMaskStack[0];
activeMaskStackC[2] = activeMaskStackC[1];
// 0
predResult = (intBitsToFloat(uf_remappedPS[2].x) > 0.0);
activeMaskStack[1] = predResult;
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
}
else {
activeMaskStack[1] = false;
activeMaskStackC[2] = false;
}
if( activeMaskStackC[2] == true ) {
// 0
backupReg0i = R1i.w;
PV0i.x = floatBitsToInt(intBitsToFloat(R0i.y) * intBitsToFloat(0x40490fdb));
PV0i.x = floatBitsToInt(intBitsToFloat(PV0i.x) * 2.0);
PV0i.z = floatBitsToInt(intBitsToFloat(R3i.z) + -(intBitsToFloat(R10i.y)));
R127i.w = floatBitsToInt(intBitsToFloat(R1i.y) * intBitsToFloat(0x40600000));
R1i.w = floatBitsToInt((intBitsToFloat(uf_remappedPS[2].x) * intBitsToFloat(0x3f4ccccd) + intBitsToFloat(backupReg0i)));
PS0i = R1i.w;
// 1
R127i.x = R3i.y;
R127i.x = clampFI32(R127i.x);
PV1i.x = R127i.x;
R123i.y = floatBitsToInt((intBitsToFloat(R5i.y) * 0.5 + intBitsToFloat(PV0i.z)));
PV1i.y = R123i.y;
R123i.z = floatBitsToInt((intBitsToFloat(PV0i.x) * intBitsToFloat(0x3e22f983) + 0.5));
PV1i.z = R123i.z;
// 2
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.x),intBitsToFloat(R127i.w)) + intBitsToFloat(PV1i.y)));
PV0i.x = R123i.x;
PV0i.y = floatBitsToInt(fract(intBitsToFloat(PV1i.z)));
R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(PV1i.x)));
PV0i.w = R127i.w;
// 3
R123i.x = floatBitsToInt((intBitsToFloat(PV0i.y) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb)));
PV1i.x = R123i.x;
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PV0i.w)));
PV1i.w = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(PV0i.x));
// 4
R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(R127i.w)));
PV0i.z = floatBitsToInt(fract(intBitsToFloat(PV1i.w)));
PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) * 2.0);
PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(0x3e22f983));
// 5
PV1i.x = PV0i.z;
PV1i.x = clampFI32(PV1i.x);
PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + -(1.0));
PV1i.y = clampFI32(PV1i.y);
PS1i = floatBitsToInt(sin((intBitsToFloat(PV0i.w))/0.1591549367));
// 6
PV0i.y = floatBitsToInt(intBitsToFloat(PS1i) + 1.0);
PV0i.y = floatBitsToInt(intBitsToFloat(PV0i.y) / 2.0);
PV0i.w = floatBitsToInt(-(intBitsToFloat(PV1i.y)) + intBitsToFloat(PV1i.x));
// 7
R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(PV0i.y)) + intBitsToFloat(R127i.y)));
PV1i.x = R127i.x;
R127i.y = PV0i.w;
R127i.y = floatBitsToInt(intBitsToFloat(R127i.y) * 2.0);
R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(PV0i.w)));
PV1i.z = R127i.z;
PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.y) + 0.5);
// 8
PV0i.x = floatBitsToInt(intBitsToFloat(0x40400000) * intBitsToFloat(PV1i.z));
R126i.y = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3df5c290));
R126i.z = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3e8a3d71));
R127i.w = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3b449ba6));
R126i.x = PV1i.x;
R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) / 2.0);
PS0i = R126i.x;
// 9
backupReg0i = R127i.x;
backupReg0i = R127i.x;
backupReg1i = R127i.z;
R127i.x = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(0x41100000));
R127i.z = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(0x40a00000));
R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.y)),intBitsToFloat(backupReg1i)) + intBitsToFloat(PV0i.x)));
PV1i.w = R123i.w;
// 10
tempResultf = max(0.0, intBitsToFloat(PV1i.w));
tempResultf = log2(tempResultf);
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
PS0i = floatBitsToInt(tempResultf);
// 11
PV1i.y = floatBitsToInt(intBitsToFloat(PS0i) * intBitsToFloat(0x40c00000));
// 12
PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.y)));
// 13
R123i.y = floatBitsToInt((intBitsToFloat(PS0i) * intBitsToFloat(0x3dcccccd) + intBitsToFloat(R127i.w)));
PV1i.y = R123i.y;
R123i.z = floatBitsToInt((intBitsToFloat(PS0i) * intBitsToFloat(0x3f19999a) + intBitsToFloat(R126i.y)));
PV1i.z = R123i.z;
R123i.w = floatBitsToInt((intBitsToFloat(PS0i) * intBitsToFloat(0x3fe66666) + intBitsToFloat(R126i.z)));
PV1i.w = R123i.w;
// 14
PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(R127i.z));
PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(R127i.x));
PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(R126i.x));
// 15
PV1i.x = floatBitsToInt(-(intBitsToFloat(R2i.z)) + intBitsToFloat(PV0i.w));
PV1i.y = floatBitsToInt(-(intBitsToFloat(R2i.y)) + intBitsToFloat(PV0i.x));
PV1i.z = floatBitsToInt(-(intBitsToFloat(R2i.x)) + intBitsToFloat(PV0i.y));
// 16
backupReg0i = R2i.x;
backupReg1i = R2i.y;
backupReg2i = R2i.z;
R2i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(uf_remappedPS[2].x)) + intBitsToFloat(backupReg0i)));
R2i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(uf_remappedPS[2].x)) + intBitsToFloat(backupReg1i)));
R2i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(uf_remappedPS[2].x)) + intBitsToFloat(backupReg2i)));
}
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
if( activeMaskStackC[1] == true ) {
activeMaskStack[1] = activeMaskStack[0];
activeMaskStackC[2] = activeMaskStackC[1];
// 0
predResult = (intBitsToFloat(uf_remappedPS[2].y) > 0.0);
activeMaskStack[1] = predResult;
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
}
else {
activeMaskStack[1] = false;
activeMaskStackC[2] = false;
}
if( activeMaskStackC[2] == true ) {
// 0
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.x), intBitsToFloat(R3i.x)));
R127i.z = floatBitsToInt(-(intBitsToFloat(R2i.x)));
// 1
PV1i.x = floatBitsToInt(-(intBitsToFloat(R2i.z)) + intBitsToFloat(PV0i.x));
PV1i.y = floatBitsToInt(-(intBitsToFloat(R2i.y)) + intBitsToFloat(PV0i.x));
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].y), intBitsToFloat(PV0i.x)));
// 2
backupReg0i = R2i.x;
backupReg1i = R2i.y;
backupReg2i = R2i.z;
backupReg3i = R1i.w;
R2i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PV1i.w)) + intBitsToFloat(backupReg0i)));
R2i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.w)) + intBitsToFloat(backupReg1i)));
R2i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.w)) + intBitsToFloat(backupReg2i)));
R1i.w = floatBitsToInt(intBitsToFloat(backupReg3i) + intBitsToFloat(PV1i.w));
}
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
if( activeMaskStackC[1] == true ) {
activeMaskStack[1] = activeMaskStack[0];
activeMaskStackC[2] = activeMaskStackC[1];
// 0
R127i.z = R1i.w;
R127i.z = clampFI32(R127i.z);
PV0i.z = R127i.z;
// 1
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.y),-(intBitsToFloat(PV0i.z))) + intBitsToFloat(R4i.y)));
PV1i.x = R123i.x;
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.x),-(intBitsToFloat(PV0i.z))) + intBitsToFloat(R4i.x)));
PV1i.y = R123i.y;
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.z),-(intBitsToFloat(PV0i.z))) + intBitsToFloat(R4i.z)));
PV1i.z = R123i.z;
R127i.w = ((intBitsToFloat(PV0i.z) > 0.0)?int(0xFFFFFFFF):int(0x0));
PV1i.w = R127i.w;
R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.x),-(intBitsToFloat(PV0i.z))) + intBitsToFloat(R10i.x)));
PS1i = R122i.x;
// 2
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.z),intBitsToFloat(R127i.z)) + intBitsToFloat(PV1i.z)));
PV0i.x = R123i.x;
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y),intBitsToFloat(R127i.z)) + intBitsToFloat(PV1i.x)));
PV0i.y = R123i.y;
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.y),-(intBitsToFloat(R127i.z))) + intBitsToFloat(R10i.y)));
PV0i.z = R123i.z;
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.x),intBitsToFloat(R127i.z)) + intBitsToFloat(PV1i.y)));
PV0i.w = R123i.w;
R125i.z = ((PV1i.w == 0)?(R10i.x):(PS1i));
PS0i = R125i.z;
// 3
R127i.x = ((R127i.w == 0)?(R4i.x):(PV0i.w));
PV1i.x = R127i.x;
R127i.y = ((R127i.w == 0)?(R10i.y):(PV0i.z));
R126i.z = ((R127i.w == 0)?(R4i.z):(PV0i.x));
PV1i.z = R126i.z;
R126i.w = ((R127i.w == 0)?(R4i.y):(PV0i.y));
PV1i.w = R126i.w;
R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.z),-(intBitsToFloat(R127i.z))) + intBitsToFloat(R10i.z)));
PS1i = R122i.x;
// 4
PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + intBitsToFloat(uf_remappedPS[8].x));
R126i.y = ((R127i.w == 0)?(R10i.z):(PS1i));
PV0i.z = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + intBitsToFloat(uf_remappedPS[8].y));
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.w),-(intBitsToFloat(R127i.z))) + intBitsToFloat(R3i.w)));
PV0i.w = R123i.w;
PS0i = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + intBitsToFloat(uf_remappedPS[8].z));
// 5
R4i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(uf_remappedPS[8].w)) + intBitsToFloat(R127i.x)));
R4i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(uf_remappedPS[8].w)) + intBitsToFloat(R126i.w)));
R0i.z = ((R127i.w == 0)?(R3i.w):(PV0i.w));
PV1i.z = R0i.z;
R4i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PS0i),intBitsToFloat(uf_remappedPS[8].w)) + intBitsToFloat(R126i.z)));
PS1i = R4i.z;
// 6
R6i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.z),-(intBitsToFloat(uf_remappedPS[8].w))) + intBitsToFloat(R125i.z)));
R6i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),-(intBitsToFloat(uf_remappedPS[8].w))) + intBitsToFloat(R127i.y)));
R6i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.y),-(intBitsToFloat(uf_remappedPS[8].w))) + intBitsToFloat(R126i.y)));
PS0i = R6i.z;
// 7
predResult = (1.0 > intBitsToFloat(uf_remappedPS[5].w));
activeMaskStack[1] = predResult;
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
}
else {
activeMaskStack[1] = false;
activeMaskStackC[2] = false;
}
if( activeMaskStackC[2] == true ) {
// 0
R0i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedPS[5].w)) + 1.0);
PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(uf_remappedPS[6].x)));
PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(uf_remappedPS[6].x)));
R1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(uf_remappedPS[6].x)));
PV0i.w = R1i.w;
// 1
R1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(uf_remappedPS[9].z)));
R1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(uf_remappedPS[9].z)));
R1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(uf_remappedPS[9].z)));
R0i.w = PV0i.z;
R0i.w = floatBitsToInt(intBitsToFloat(R0i.w) / 2.0);
R2i.x = PV0i.y;
R2i.x = floatBitsToInt(intBitsToFloat(R2i.x) / 2.0);
PS1i = R2i.x;
}
if( activeMaskStackC[2] == true ) {
R1i.x = floatBitsToInt(texture(textureUnitPS1, vec3(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z))).x);
}
if( activeMaskStackC[2] == true ) {
// 0
backupReg0i = R0i.x;
R0i.x = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(0xbe19999a));
R2i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), intBitsToFloat(uf_remappedPS[9].y)));
R2i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[9].w),intBitsToFloat(R1i.x)) + intBitsToFloat(R0i.w)));
}
if( activeMaskStackC[2] == true ) {
R0i.w = floatBitsToInt(texture(textureUnitPS1, vec3(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R2i.z))).x);
}
if( activeMaskStackC[2] == true ) {
// 0
backupReg0i = R0i.w;
R2i.z = floatBitsToInt((-(intBitsToFloat(uf_remappedPS[5].w)) * intBitsToFloat(0x40200000) + intBitsToFloat(0x40200000)));
R2i.z = clampFI32(R2i.z);
PV0i.w = floatBitsToInt(intBitsToFloat(R0i.x) * intBitsToFloat(0x3f969696));
PV0i.w = clampFI32(PV0i.w);
tempResultf = max(0.0, intBitsToFloat(backupReg0i));
tempResultf = log2(tempResultf);
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
PS0i = floatBitsToInt(tempResultf);
// 1
if( (intBitsToFloat(PV0i.w) > intBitsToFloat(R0i.w))) discard;
R0i.w = floatBitsToInt(intBitsToFloat(PS0i) * intBitsToFloat(0x3fe66666));
}
if( activeMaskStackC[2] == true ) {
// 0
R127i.z = floatBitsToInt(exp2(intBitsToFloat(R0i.w)));
PS0i = R127i.z;
// 1
R123i.x = floatBitsToInt((intBitsToFloat(0x40b1999a) * intBitsToFloat(PS0i) + intBitsToFloat(0x3ee66666)));
PV1i.x = R123i.x;
R123i.y = floatBitsToInt((intBitsToFloat(0x3dccccce) * intBitsToFloat(PS0i) + intBitsToFloat(0x3e4ccccd)));
PV1i.y = R123i.y;
// 2
backupReg0i = R4i.x;
backupReg1i = R4i.y;
R4i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.z),intBitsToFloat(PV1i.y)) + intBitsToFloat(backupReg0i)));
R4i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.z),intBitsToFloat(PV1i.x)) + intBitsToFloat(backupReg1i)));
R123i.w = floatBitsToInt((intBitsToFloat(0x41200000) * intBitsToFloat(R127i.z) + 4.0));
PV0i.w = R123i.w;
// 3
backupReg0i = R4i.z;
R4i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.z),intBitsToFloat(PV0i.w)) + intBitsToFloat(backupReg0i)));
}
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
if( activeMaskStackC[1] == true ) {
// 0
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.z),-(intBitsToFloat(uf_remappedPS[8].w))) + intBitsToFloat(R0i.z)));
PV0i.x = R123i.x;
PV0i.y = ((intBitsToFloat(R5i.w) > 0.5)?int(0xFFFFFFFF):int(0x0));
PV0i.z = ((intBitsToFloat(R6i.w) > 0.0)?int(0xFFFFFFFF):int(0x0));
R127i.w = uf_remappedPS[7].z;
R1i.w = floatBitsToInt(1.0);
PS0i = R1i.w;
// 1
R123i.x = ((PV0i.y == 0)?(0x3d008081):(0x3d20a0a1));
PV1i.x = R123i.x;
R127i.y = ((PV0i.z == 0)?(0):(0x3f800000));
PV1i.y = R127i.y;
R0i.z = floatBitsToInt((intBitsToFloat(R3i.z) * 0.5 + 0.5));
PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(0x427f0000));
R0i.x = floatBitsToInt((intBitsToFloat(R5i.x) * 0.5 + 0.5));
PS1i = R0i.x;
// 2
PV0i.x = ((intBitsToFloat(PV1i.y) > 0.0)?int(0xFFFFFFFF):int(0x0));
R0i.y = floatBitsToInt((intBitsToFloat(R5i.y) * 0.5 + 0.5));
PV0i.z = floatBitsToInt(floor(intBitsToFloat(PV1i.w)));
PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) * 4.0);
R123i.w = ((R5i.z == 0)?(PV1i.x):(0x3d30b0b1));
PV0i.w = R123i.w;
R2i.w = 0x3f800000;
PS0i = R2i.w;
// 3
R1i.x = PV0i.w;
PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + 2.0);
R123i.w = ((PV0i.x == 0)?(R5i.w):(R6i.w));
PV1i.w = R123i.w;
R1i.y = R127i.w;
PS1i = R1i.y;
// 4
PV0i.x = floatBitsToInt(intBitsToFloat(R4i.w) + intBitsToFloat(PV1i.y));
PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x437f0000));
// 5
R0i.w = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(0x3b808081));
PS1i = int(intBitsToFloat(PV0i.z));
// 6
PV0i.x = PS1i & 0x000000e0;
// 7
PV1i.w = PV0i.x >> 0x00000003;
// 8
PS0i = floatBitsToInt(float(PV1i.w));
// 9
PV1i.y = floatBitsToInt(intBitsToFloat(PS0i) + intBitsToFloat(0x42800000));
// 10
R123i.x = floatBitsToInt((intBitsToFloat(R127i.y) * 2.0 + intBitsToFloat(PV1i.y)));
PV0i.x = R123i.x;
// 11
R5i.w = floatBitsToInt((intBitsToFloat(PV0i.x) * intBitsToFloat(0x3b808081) + intBitsToFloat(0x3b808081)));
// 12
backupReg0i = R4i.x;
backupReg1i = R4i.y;
backupReg2i = R4i.z;
R4i.xyz = ivec3(backupReg0i,backupReg1i,backupReg2i);
R4i.w = R2i.w;
// 13
R3i.xyz = ivec3(R0i.x,R0i.y,R0i.z);
R3i.w = R0i.w;
// 14
R2i.xyz = ivec3(R6i.x,R6i.y,R6i.z);
R2i.w = R5i.w;
// 15
backupReg0i = R1i.x;
backupReg1i = R1i.y;
backupReg2i = R1i.z;
backupReg3i = R1i.w;
R1i.xyz = ivec3(backupReg0i,backupReg1i,backupReg2i);
R1i.w = backupReg3i;
}
// export
passPixelColor0 = vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.w));
passPixelColor1 = vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.w));
passPixelColor3 = vec4(intBitsToFloat(R3i.x), intBitsToFloat(R3i.y), intBitsToFloat(R3i.z), intBitsToFloat(R3i.w));
passPixelColor5 = vec4(intBitsToFloat(R4i.x), intBitsToFloat(R4i.y), intBitsToFloat(R4i.z), intBitsToFloat(R4i.w));
}

View File

@ -0,0 +1,55 @@
[Definition]
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
name = Ancient weapons
path = "The Legend of Zelda: Breath of the Wild/Mods/Change Ancient Glow Color/Ancient weapons"
description = Change Ancient weapons 's color and brightness. Originally it varies. Ancient Orange's Brightness is changed to Bow's.
version = 3
[Preset]
name = Malice Red
$R = 0.85
$G = 0.029
$B = 0.15
$L = 20.0
[Preset]
name = Guardian Yellow
$R = 1.0
$G = 0.2
$B = 0.059
$L = 40.0
[Preset]
name = Guardian weapon Yellow
$R = 1.0
$G = 0.2
$B = 0.0
$L = 29.576
[Preset]
name = Ancient Orange
$R = 1.0
$G = 0.2
$B = 0.0006
$L = 11.525
[Preset]
name = Ancient weapon Orange
$R = 1.0
$G = 0.15
$B = 0.05
$L = 20.0
[Preset]
name = Energy Blue
$R = 0.03
$G = 0.25
$B = 1.0
$L = 40.0
[Preset]
name = Custom (Edit in rules.txt)
$R = 0.000
$G = 0.000
$B = 0.000
$L = 40.0 # Brightness, can't scale because original unnormalized color use L=1

View File

@ -0,0 +1,204 @@
#version 420
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
const vec3 Color = vec3($R,$G,$B);
const float Factor = $L_f;
// Decayed Guardian
// shader 85d00659937443d5
uniform ivec4 uf_remappedPS[3];
uniform vec2 uf_fragCoordScale;
layout(binding = 3) uniform sampler2D textureUnitPS3;
layout(binding = 4) uniform sampler2D textureUnitPS4;
layout(binding = 5) uniform sampler2D textureUnitPS5;
layout(binding = 6) uniform sampler2D textureUnitPS6;
layout(binding = 7) uniform sampler2D textureUnitPS7;
layout(binding = 8) uniform sampler2D textureUnitPS8;
layout(location = 0) in vec4 passParameterSem0;
layout(location = 1) in vec4 passParameterSem1;
layout(location = 2) in vec4 passParameterSem6;
layout(location = 3) in vec4 passParameterSem3;
layout(location = 4) in vec4 passParameterSem4;
layout(location = 5) in vec4 passParameterSem5;
layout(location = 0) out vec4 passPixelColor0;
layout(location = 1) out vec4 passPixelColor1;
layout(location = 3) out vec4 passPixelColor3;
layout(location = 5) out vec4 passPixelColor5;
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 R12f = 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);
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 = passParameterSem0;
R1f = passParameterSem1;
R2f = passParameterSem6;
R3f = passParameterSem3;
R4f = passParameterSem4;
R5f = passParameterSem5;
R8f.xyz = (texture(textureUnitPS5, R0f.xy).xyz);
R7f.xyz = (texture(textureUnitPS6, R0f.xy).xyz);
R6f.xyz = (texture(textureUnitPS7, R0f.zw).xyz);
R1f.xyz = (texture(textureUnitPS8, R1f.xy).xyz);
R1f.w = (texture(textureUnitPS4, R0f.xy).x);
R0f.xyz = (texture(textureUnitPS3, R0f.xy).xyz);
// 0
PV0f.x = mul_nonIEEE(R3f.y, R4f.z);
R126f.y = (R8f.x * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204));
PV0f.y = R126f.y;
PV0f.z = mul_nonIEEE(R3f.z, R4f.x);
PV0f.w = mul_nonIEEE(R3f.x, R4f.y);
R127f.x = (R8f.y * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204));
PS0f = R127f.x;
// 1
R126f.x = (mul_nonIEEE(-(R4f.z),R3f.x) + PV0f.z);
R127f.y = (mul_nonIEEE(-(R4f.y),R3f.z) + PV0f.x);
PV1f.z = mul_nonIEEE(PV0f.y, PV0f.y);
R127f.w = (mul_nonIEEE(-(R4f.x),R3f.y) + PV0f.w);
R127f.z = mul_nonIEEE(R4f.w, PS0f);
PS1f = R127f.z;
// 2
backupReg0f = R127f.x;
backupReg0f = R127f.x;
R127f.x = mul_nonIEEE(R6f.x, R1f.x);
R125f.y = mul_nonIEEE(R6f.y, R1f.y);
R126f.z = mul_nonIEEE(R6f.z, R1f.z);
R123f.w = (mul_nonIEEE(backupReg0f,backupReg0f) + PV1f.z);
R123f.w = clamp(R123f.w, 0.0, 1.0);
PV0f.w = R123f.w;
R124f.z = mul_nonIEEE(Color.g, R7f.y);
PS0f = R124f.z;
// 3
backupReg0f = R127f.y;
R125f.x = mul_nonIEEE(Color.b, R7f.z);
R127f.y = -(PV0f.w) + 1.0;
PV1f.z = mul_nonIEEE(backupReg0f, R127f.z);
R125f.w = mul_nonIEEE(Color.r, R7f.x);
PS1f = mul_nonIEEE(R126f.x, R127f.z);
// 4
PV0f.x = mul_nonIEEE(R127f.w, R127f.z);
R123f.y = (mul_nonIEEE(-(R2f.z),intBitsToFloat(uf_remappedPS[1].z)) + -(intBitsToFloat(uf_remappedPS[1].y)));
R123f.y = clamp(R123f.y, 0.0, 1.0);
PV0f.y = R123f.y;
R127f.z = (mul_nonIEEE(R4f.x,R126f.y) + PV1f.z)/2.0;
R127f.w = (mul_nonIEEE(R4f.y,R126f.y) + PS1f)/2.0;
R124f.y = mul_nonIEEE(R127f.x, intBitsToFloat(uf_remappedPS[1].x) * Factor);
PS0f = R124f.y;
// 5
backupReg0f = R127f.y;
R126f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].w), PV0f.y);
R127f.y = (mul_nonIEEE(R4f.z,R126f.y) + PV0f.x)/2.0;
R125f.z = mul_nonIEEE(Color.g, R124f.z);
R126f.w = mul_nonIEEE(Color.r, R125f.w);
R127f.x = sqrt(backupReg0f);
R127f.x /= 2.0;
PS1f = R127f.x;
// 6
backupReg0f = R126f.z;
R124f.x = mul_nonIEEE(R125f.y, intBitsToFloat(uf_remappedPS[1].x) * Factor);
R125f.y = mul_nonIEEE(Color.b, R125f.x);
R126f.z = intBitsToFloat(0x427f0000) * R1f.w;
R124f.w = mul_nonIEEE(backupReg0f, intBitsToFloat(uf_remappedPS[1].x) * Factor);
R126f.y = intBitsToFloat(0x427f0000) * R8f.z;
PS0f = R126f.y;
// 7
backupReg0f = R127f.x;
backupReg0f = R127f.x;
backupReg1f = R3f.y;
backupReg0f = R127f.x;
R127f.x = (mul_nonIEEE(R3f.x,backupReg0f) + R127f.z);
R3f.y = (mul_nonIEEE(R3f.z,backupReg0f) + R127f.y);
R127f.z = (mul_nonIEEE(backupReg1f,backupReg0f) + R127f.w);
R127f.w = mul_nonIEEE(R126f.x, R126f.w);
R127f.y = mul_nonIEEE(R126f.x, R125f.z);
PS1f = R127f.y;
// 8
backupReg0f = R126f.x;
backupReg1f = R124f.z;
R126f.x = mul_nonIEEE(backupReg0f, R125f.y);
R125f.y = mul_nonIEEE(R125f.x, R124f.w);
R124f.z = mul_nonIEEE(backupReg1f, R124f.x);
PV0f.w = mul_nonIEEE(R125f.w, R124f.y);
R125f.w = intBitsToFloat(0x3c808081);
PS0f = R125f.w;
// 9
backupReg0f = R126f.y;
R125f.x = floor(R126f.z);
R125f.x *= 4.0;
R126f.y = floor(backupReg0f);
R126f.y *= 4.0;
R126f.z = intBitsToFloat(uf_remappedPS[2].z);
R4f.w = 1.0;
R1f.x = (mul_nonIEEE(R127f.w,R124f.y) + PV0f.w);
PS1f = R1f.x;
// 10
R4f.x = R125f.w;
R1f.y = (mul_nonIEEE(R127f.y,R124f.x) + R124f.z);
R1f.z = (mul_nonIEEE(R126f.x,R124f.w) + R125f.y);
R1f.w = 1.0;
R8f.y = mul_nonIEEE(R5f.x, R0f.y);
PS0f = R8f.y;
// 11
R8f.x = mul_nonIEEE(R5f.x, R0f.x);
R4f.y = R126f.z;
R8f.z = mul_nonIEEE(R5f.x, R0f.z);
R0f.w = (R126f.y * intBitsToFloat(0x3b808081) + intBitsToFloat(0x3b808081));
R0f.x = R127f.x + 0.5;
PS1f = R0f.x;
// 12
R0f.y = R127f.z + 0.5;
R0f.z = R3f.y + 0.5;
R8f.w = (R125f.x * intBitsToFloat(0x3b808081) + intBitsToFloat(0x3b808081));
// 13
R12f.xyz = vec3(R1f.x,R1f.y,R1f.z);
R12f.w = R1f.w;
// 14
R11f.xyz = vec3(R0f.x,R0f.y,R0f.z);
R11f.w = R0f.w;
// 15
R10f.xyz = vec3(R8f.x,R8f.y,R8f.z);
R10f.w = R8f.w;
// 16
R9f.xyz = vec3(R4f.x,R4f.y,R4f.z);
R9f.w = R4f.w;
// export
passPixelColor0 = vec4(R9f.x, R9f.y, R9f.z, R9f.w);
passPixelColor1 = vec4(R10f.x, R10f.y, R10f.z, R10f.w);
passPixelColor3 = vec4(R11f.x, R11f.y, R11f.z, R11f.w);
passPixelColor5 = vec4(R12f.x, R12f.y, R12f.z, R12f.w);
}

View File

@ -0,0 +1,55 @@
[Definition]
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
name = Decayed Guardian
path = "The Legend of Zelda: Breath of the Wild/Mods/Change Ancient Glow Color/Decayed Guardian"
description = Change Decayed Guardian (including Stalkers with weathered appearance)'s color. Originally it's Malice Red.
version = 3
[Preset]
name = Malice Red
$R = 0.85
$G = 0.029
$B = 0.15
$L_f = 1.0
[Preset]
name = Guardian Yellow
$R = 1.0
$G = 0.2
$B = 0.059
$L_f = 1.0
[Preset]
name = Guardian weapon Yellow
$R = 1.0
$G = 0.2
$B = 0.0
$L_f = 1.0
[Preset]
name = Ancient Orange
$R = 1.0
$G = 0.2
$B = 0.0006
$L_f = 1.0
[Preset]
name = Ancient weapon Orange
$R = 1.0
$G = 0.15
$B = 0.05
$L_f = 1.0
[Preset]
name = Energy Blue
$R = 0.03
$G = 0.25
$B = 1.0
$L_f = 1.0
[Preset]
name = Custom (Edit in rules.txt)
$R = 0.000
$G = 0.000
$B = 0.000
$L_f = 1.0

View File

@ -0,0 +1,978 @@
#version 420
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
const vec3 Color = vec3($R,$G,$B);
const float Factor = $L_f;
// Guardian weapons when teleporting
// shader 83573681c1fcb0ac
uniform ivec4 uf_remappedPS[10];
uniform vec2 uf_fragCoordScale;
layout(binding = 1) uniform sampler3D textureUnitPS1;
layout(binding = 2) uniform sampler2DArray textureUnitPS2;
layout(binding = 3) uniform sampler2D textureUnitPS3;
layout(binding = 4) uniform sampler2D textureUnitPS4;
layout(binding = 5) uniform sampler2D textureUnitPS5;
layout(binding = 6) uniform sampler2D textureUnitPS6;
layout(binding = 7) uniform sampler2D textureUnitPS7;
layout(binding = 8) uniform sampler2D textureUnitPS8;
layout(location = 0) in vec4 passParameterSem0;
layout(location = 1) in vec4 passParameterSem1;
layout(location = 2) in vec4 passParameterSem2;
layout(location = 3) in vec4 passParameterSem4;
layout(location = 4) in vec4 passParameterSem5;
layout(location = 5) in vec4 passParameterSem7;
layout(location = 6) in vec4 passParameterSem8;
layout(location = 0) out vec4 passPixelColor0;
layout(location = 1) out vec4 passPixelColor1;
layout(location = 3) out vec4 passPixelColor3;
layout(location = 5) out vec4 passPixelColor5;
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 R122i = ivec4(0);
ivec4 R123i = ivec4(0);
ivec4 R124i = ivec4(0);
ivec4 R125i = ivec4(0);
ivec4 R126i = ivec4(0);
ivec4 R127i = ivec4(0);
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;
bool activeMaskStack[2];
bool activeMaskStackC[3];
activeMaskStack[0] = false;
activeMaskStackC[0] = false;
activeMaskStackC[1] = false;
activeMaskStack[0] = true;
activeMaskStackC[0] = true;
activeMaskStackC[1] = true;
vec3 cubeMapSTM;
int cubeMapFaceId;
R0i = floatBitsToInt(passParameterSem0);
R1i = floatBitsToInt(passParameterSem1);
R2i = floatBitsToInt(passParameterSem2);
R3i = floatBitsToInt(passParameterSem4);
R4i = floatBitsToInt(passParameterSem5);
R5i = floatBitsToInt(passParameterSem7);
R6i = floatBitsToInt(passParameterSem8);
if( activeMaskStackC[1] == true ) {
R7i.xy = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.xy)).xy);
R9i.xyz = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R0i.xy)).xyz);
R8i.xyz = floatBitsToInt(texture(textureUnitPS7, intBitsToFloat(R0i.zw)).xyz);
R1i.xyz = floatBitsToInt(texture(textureUnitPS8, intBitsToFloat(R1i.xy)).xyz);
R1i.w = floatBitsToInt(texture(textureUnitPS4, intBitsToFloat(R0i.xy)).x);
R10i.xyz = floatBitsToInt(texture(textureUnitPS3, intBitsToFloat(R0i.xy)).xyz);
}
if( activeMaskStackC[1] == true ) {
activeMaskStack[1] = activeMaskStack[0];
activeMaskStackC[2] = activeMaskStackC[1];
// 0
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), intBitsToFloat(R4i.x)));
PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.x), intBitsToFloat(R4i.y)));
PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.y), intBitsToFloat(R4i.z)));
R127i.w = floatBitsToInt((intBitsToFloat(R7i.x) * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204)));
PV0i.w = R127i.w;
R127i.z = floatBitsToInt((intBitsToFloat(R7i.y) * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204)));
PS0i = R127i.z;
// 1
R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.x)),intBitsToFloat(R3i.y)) + intBitsToFloat(PV0i.y)));
PV1i.x = R123i.x;
PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(PV0i.w)));
R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.z)),intBitsToFloat(R3i.x)) + intBitsToFloat(PV0i.x)));
PV1i.z = R123i.z;
R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.y)),intBitsToFloat(R3i.z)) + intBitsToFloat(PV0i.z)));
PV1i.w = R123i.w;
PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.w), intBitsToFloat(PS0i)));
// 2
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R127i.z)) + intBitsToFloat(PV1i.y)));
R123i.x = clampFI32(R123i.x);
PV0i.x = R123i.x;
PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PS1i)));
PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(PS1i)));
PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(PS1i)));
R126i.x = floatBitsToInt(fract(intBitsToFloat(R6i.x)));
PS0i = R126i.x;
// 3
R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.y),intBitsToFloat(R127i.w)) + intBitsToFloat(PV0i.w)));
R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.x),intBitsToFloat(R127i.w)) + intBitsToFloat(PV0i.y)));
R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.z),intBitsToFloat(R127i.w)) + intBitsToFloat(PV0i.z)));
PV1i.w = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0);
R127i.w = floatBitsToInt(fract(intBitsToFloat(R6i.y)));
PS1i = R127i.w;
// 4
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R5i.y),intBitsToFloat(R5i.z),-0.0),vec4(intBitsToFloat(R5i.x),intBitsToFloat(R5i.y),intBitsToFloat(R5i.z),0.0)));
PV0i.x = tempi.x;
PV0i.y = tempi.x;
PV0i.z = tempi.x;
PV0i.w = tempi.x;
PS0i = floatBitsToInt(sqrt(intBitsToFloat(PV1i.w)));
// 5
backupReg0i = R127i.x;
R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.x),intBitsToFloat(PS0i)) + intBitsToFloat(R127i.y)));
PV1i.x = R127i.x;
R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.y),intBitsToFloat(PS0i)) + intBitsToFloat(backupReg0i)));
PV1i.y = R126i.y;
R125i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.z),intBitsToFloat(PS0i)) + intBitsToFloat(R127i.z)));
PV1i.z = R125i.z;
R126i.w = floatBitsToInt(intBitsToFloat(R126i.x) + -(0.5));
R127i.z = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x)));
PS1i = R127i.z;
// 6
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0)));
PV0i.x = tempi.x;
PV0i.y = tempi.x;
PV0i.z = tempi.x;
PV0i.w = tempi.x;
R126i.z = tempi.x;
R127i.y = floatBitsToInt(intBitsToFloat(R127i.w) + -(0.5));
PS0i = R127i.y;
// 7
backupReg0i = R127i.z;
R126i.x = floatBitsToInt(mul_nonIEEE(Color.r, intBitsToFloat(R9i.x)));
R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.y), intBitsToFloat(R1i.y)));
R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.x), intBitsToFloat(R1i.x)));
R125i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.z), intBitsToFloat(R1i.z)));
R127i.w = floatBitsToInt(1.0 / intBitsToFloat(backupReg0i));
PS1i = R127i.w;
// 8
R125i.x = floatBitsToInt(mul_nonIEEE(Color.b, intBitsToFloat(R9i.z)));
R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R126i.w)),intBitsToFloat(R126i.w)) + 1.0));
R123i.y = clampFI32(R123i.y);
PV0i.y = R123i.y;
R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.y)),intBitsToFloat(R127i.y)) + 1.0));
R123i.z = clampFI32(R123i.z);
PV0i.z = R123i.z;
R4i.w = floatBitsToInt(mul_nonIEEE(Color.g, intBitsToFloat(R9i.y)));
tempResultf = 1.0 / sqrt(intBitsToFloat(R126i.z));
R126i.w = floatBitsToInt(tempResultf);
PS0i = R126i.w;
// 9
backupReg0i = R127i.w;
backupReg1i = R5i.z;
backupReg0i = R127i.w;
R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R5i.z)),intBitsToFloat(uf_remappedPS[1].z)) + -(intBitsToFloat(uf_remappedPS[1].y))));
R123i.x = clampFI32(R123i.x);
PV1i.x = R123i.x;
R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(R127i.w)));
R5i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(PV0i.z)));
R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.y), intBitsToFloat(backupReg0i)));
R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(backupReg0i)));
PS1i = R126i.z;
// 10
backupReg0i = R126i.y;
R3i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(R126i.w)));
R126i.y = floatBitsToInt(mul_nonIEEE(Color.r, intBitsToFloat(R126i.x)));
R124i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].w), intBitsToFloat(PV1i.x)));
R124i.w = floatBitsToInt(mul_nonIEEE(Color.g, intBitsToFloat(R4i.w)));
R4i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R126i.w)));
PS0i = R4i.y;
// 11
backupReg0i = R125i.y;
R127i.x = floatBitsToInt(mul_nonIEEE(Color.b, intBitsToFloat(R125i.x)));
R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(uf_remappedPS[1].x) * Factor));
R4i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(R126i.w)));
PV1i.z = R4i.z;
R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(uf_remappedPS[1].x) * Factor));
R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.w), intBitsToFloat(uf_remappedPS[1].x) * Factor));
PS1i = R124i.y;
// 12
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.y),intBitsToFloat(R127i.w),intBitsToFloat(R126i.z),-0.0),vec4(intBitsToFloat(R3i.x),intBitsToFloat(R4i.y),intBitsToFloat(PV1i.z),0.0)));
PV0i.x = tempi.x;
PV0i.y = tempi.x;
PV0i.z = tempi.x;
PV0i.w = tempi.x;
R127i.y = tempi.x;
R127i.w = floatBitsToInt(-(intBitsToFloat(uf_remappedPS[2].w)) + intBitsToFloat(0x3f59999a));
PS0i = R127i.w;
// 13
backupReg0i = R124i.z;
backupReg1i = R127i.x;
backupReg0i = R124i.z;
R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.z), intBitsToFloat(R124i.w)));
PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(R125i.y)));
R124i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(backupReg1i)));
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R126i.y)));
R124i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.w), intBitsToFloat(R126i.w)));
PS1i = R124i.w;
// 14
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(R124i.y)));
PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.z), intBitsToFloat(R5i.z)));
R3i.z = floatBitsToInt(intBitsToFloat(R127i.w) * intBitsToFloat(0x3f969696));
R3i.z = clampFI32(R3i.z);
R5i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(R125i.y)) + intBitsToFloat(PV1i.y)));
PS0i = R5i.x;
// 15
R5i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(R126i.w)) + intBitsToFloat(R124i.w)));
R5i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.z),intBitsToFloat(R124i.y)) + intBitsToFloat(PV0i.x)));
R6i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), intBitsToFloat(PV0i.y)));
PS1i = R6i.y;
// 16
R7i.y = 0x3f800000;
R6i.z = floatBitsToInt(-(intBitsToFloat(R4i.z)) + 1.0);
R8i.y = 0;
PS0i = R8i.y;
// 17
R3i.y = floatBitsToInt(intBitsToFloat(R127i.y) + 1.0);
R3i.y = clampFI32(R3i.y);
R1i.y = floatBitsToInt(fract(intBitsToFloat(uf_remappedPS[3].w)));
PS1i = R1i.y;
// 18
predResult = (intBitsToFloat(R1i.y) > 0.0);
activeMaskStack[1] = predResult;
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
}
else {
activeMaskStack[1] = false;
activeMaskStackC[2] = false;
}
if( activeMaskStackC[2] == true ) {
// 0
R0i.z = floatBitsToInt(floor(intBitsToFloat(uf_remappedPS[3].w)));
PV0i.z = R0i.z;
// 1
R0i.z = floatBitsToInt(roundEven(intBitsToFloat(PV0i.z)));
}
if( activeMaskStackC[2] == true ) {
R0i.xyz = floatBitsToInt(texture(textureUnitPS2, vec3(intBitsToFloat(R0i.x),intBitsToFloat(R0i.y),intBitsToFloat(R0i.z))).xyz);
}
if( activeMaskStackC[2] == true ) {
// 0
backupReg0i = R0i.x;
PV0i.x = floatBitsToInt(-(intBitsToFloat(R10i.y)) + intBitsToFloat(R0i.y));
PV0i.y = floatBitsToInt(-(intBitsToFloat(R10i.x)) + intBitsToFloat(backupReg0i));
PV0i.w = floatBitsToInt(-(intBitsToFloat(R10i.z)) + intBitsToFloat(R0i.z));
// 1
backupReg0i = R10i.x;
backupReg1i = R10i.y;
backupReg2i = R10i.z;
R10i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(R1i.y)) + intBitsToFloat(backupReg0i)));
R10i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R1i.y)) + intBitsToFloat(backupReg1i)));
R10i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(R1i.y)) + intBitsToFloat(backupReg2i)));
}
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
if( activeMaskStackC[1] == true ) {
activeMaskStack[1] = activeMaskStack[0];
activeMaskStackC[2] = activeMaskStackC[1];
// 0
R4i.x = ((intBitsToFloat(uf_remappedPS[4].w) > 0.0)?int(0xFFFFFFFF):int(0x0));
// 1
predResult = (R4i.x != 0);
activeMaskStack[1] = predResult;
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
}
else {
activeMaskStack[1] = false;
activeMaskStackC[2] = false;
}
if( activeMaskStackC[2] == true ) {
// 0
R0i.x = floatBitsToInt(intBitsToFloat(R2i.x) * intBitsToFloat(0x3e99999a));
R0i.y = floatBitsToInt(intBitsToFloat(R2i.y) * intBitsToFloat(0x3e99999a));
R0i.z = floatBitsToInt(intBitsToFloat(R2i.z) * intBitsToFloat(0x3e99999a));
}
if( activeMaskStackC[2] == true ) {
R0i.z = floatBitsToInt(texture(textureUnitPS1, vec3(intBitsToFloat(R0i.x),intBitsToFloat(R0i.y),intBitsToFloat(R0i.z))).x);
}
if( activeMaskStackC[2] == true ) {
// 0
PV0i.x = floatBitsToInt(intBitsToFloat(R10i.z) * intBitsToFloat(0x3dea4a8c));
PV0i.y = floatBitsToInt(-(intBitsToFloat(R0i.z)) + 1.0);
tempResultf = max(0.0, intBitsToFloat(R3i.y));
tempResultf = log2(tempResultf);
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
R126i.w = floatBitsToInt(tempResultf);
PS0i = R126i.w;
// 1
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R10i.x),intBitsToFloat(R10i.y),intBitsToFloat(PV0i.x),-0.0),vec4(intBitsToFloat(0x3e99096c),intBitsToFloat(0x3f162b6b),1.0,0.0)));
PV1i.x = tempi.x;
PV1i.y = tempi.x;
PV1i.z = tempi.x;
PV1i.w = tempi.x;
R127i.w = tempi.x;
tempResultf = max(0.0, intBitsToFloat(PV0i.y));
tempResultf = log2(tempResultf);
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
PS1i = floatBitsToInt(tempResultf);
// 2
R127i.x = floatBitsToInt((0.5 * intBitsToFloat(PV1i.x) + intBitsToFloat(0x3dcccccd)));
PV0i.x = R127i.x;
R127i.y = floatBitsToInt((intBitsToFloat(0x3f19999a) * intBitsToFloat(PV1i.x) + intBitsToFloat(0x3e4ccccd)));
PV0i.z = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3fa66666));
// 3
R126i.y = floatBitsToInt((intBitsToFloat(0x3f266666) * intBitsToFloat(R127i.w) + intBitsToFloat(0x3eb33333)));
PV1i.y = R126i.y;
PV1i.z = floatBitsToInt(intBitsToFloat(R126i.w) * intBitsToFloat(0x40200000));
R127i.w = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + intBitsToFloat(0x3e23d70a));
PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.z)));
// 4
PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.y)) + 0.25);
PV0i.y = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3e4ccccd));
PV0i.z = floatBitsToInt(-(intBitsToFloat(R127i.y)) + intBitsToFloat(0x3e851eb8));
PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.z)));
PS0i = floatBitsToInt(intBitsToFloat(PS0i) / 2.0);
// 5
PV1i.x = floatBitsToInt(intBitsToFloat(PS0i) + intBitsToFloat(PV0i.y));
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.w),intBitsToFloat(PV0i.y)) + intBitsToFloat(R127i.x)));
PV1i.y = R123i.y;
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y)) + intBitsToFloat(R126i.y)));
PV1i.z = R123i.z;
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(PV0i.y)) + intBitsToFloat(R127i.y)));
PV1i.w = R123i.w;
R8i.y = 0x3e99999a;
PS1i = R8i.y;
// 6
PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(PV1i.x));
PV0i.y = clampFI32(PV0i.y);
R127i.z = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(PV1i.x));
R127i.z = clampFI32(R127i.z);
PV0i.z = R127i.z;
PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(PV1i.x));
PV0i.w = clampFI32(PV0i.w);
// 7
PV1i.x = floatBitsToInt(-(intBitsToFloat(R10i.x)) + intBitsToFloat(PV0i.y));
PV1i.y = floatBitsToInt(-(intBitsToFloat(R5i.x)) + intBitsToFloat(PV0i.y));
PV1i.z = floatBitsToInt(-(intBitsToFloat(R10i.z)) + intBitsToFloat(PV0i.z));
PV1i.w = floatBitsToInt(-(intBitsToFloat(R10i.y)) + intBitsToFloat(PV0i.w));
R127i.x = floatBitsToInt(-(intBitsToFloat(R5i.y)) + intBitsToFloat(PV0i.w));
PS1i = R127i.x;
// 8
backupReg0i = R10i.x;
backupReg1i = R10i.y;
backupReg2i = R10i.z;
backupReg3i = R5i.x;
R10i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(uf_remappedPS[4].w)) + intBitsToFloat(backupReg0i)));
R10i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(uf_remappedPS[4].w)) + intBitsToFloat(backupReg1i)));
R10i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(uf_remappedPS[4].w)) + intBitsToFloat(backupReg2i)));
PV0i.w = floatBitsToInt(-(intBitsToFloat(R5i.z)) + intBitsToFloat(R127i.z));
R5i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(uf_remappedPS[4].w)) + intBitsToFloat(backupReg3i)));
PS0i = R5i.x;
// 9
backupReg0i = R5i.y;
backupReg1i = R5i.z;
R5i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(uf_remappedPS[4].w)) + intBitsToFloat(backupReg0i)));
R5i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(uf_remappedPS[4].w)) + intBitsToFloat(backupReg1i)));
// 10
R6i.y = R7i.y;
}
activeMaskStack[1] = activeMaskStack[1] == false;
activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true;
if( activeMaskStackC[2] == true ) {
// 0
R7i.y = R8i.y;
}
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
if( activeMaskStackC[1] == true ) {
activeMaskStack[1] = activeMaskStack[0];
activeMaskStackC[2] = activeMaskStackC[1];
// 0
predResult = (intBitsToFloat(uf_remappedPS[4].x) > 0.0);
activeMaskStack[1] = predResult;
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
}
else {
activeMaskStack[1] = false;
activeMaskStackC[2] = false;
}
if( activeMaskStackC[2] == true ) {
// 0
PS0i = floatBitsToInt(1.0 / intBitsToFloat(uf_remappedPS[4].y));
// 1
R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(PS0i)));
PV1i.x = R127i.x;
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(PS0i)));
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(PS0i)));
// 2
R0i.x = floatBitsToInt(intBitsToFloat(PV1i.z) * intBitsToFloat(0x40666666));
R0i.y = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x40666666));
R0i.z = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(0x40666666));
R1i.w = floatBitsToInt(intBitsToFloat(PV1i.z) * intBitsToFloat(0x3f3851ec));
R1i.y = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3f3851ec));
PS0i = R1i.y;
// 3
R1i.z = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(0x3f3851ec));
}
if( activeMaskStackC[2] == true ) {
R0i.y = floatBitsToInt(texture(textureUnitPS1, vec3(intBitsToFloat(R0i.x),intBitsToFloat(R0i.y),intBitsToFloat(R0i.z))).x);
R0i.x = floatBitsToInt(texture(textureUnitPS1, vec3(intBitsToFloat(R1i.w),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z))).x);
}
if( activeMaskStackC[2] == true ) {
// 0
PV0i.z = floatBitsToInt(-(intBitsToFloat(R0i.y)) + intBitsToFloat(R0i.x));
// 1
R123i.y = floatBitsToInt((intBitsToFloat(PV0i.z) * intBitsToFloat(0x3f333333) + intBitsToFloat(R0i.y)));
PV1i.y = R123i.y;
// 2
PV0i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedPS[4].x)) + intBitsToFloat(PV1i.y));
// 3
R127i.w = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(0x41a00000));
R127i.w = clampFI32(R127i.w);
PV1i.w = R127i.w;
// 4
backupReg0i = R10i.x;
backupReg1i = R10i.y;
backupReg2i = R10i.z;
backupReg3i = R5i.x;
R10i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.w)));
R10i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(PV1i.w)));
R10i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg2i), intBitsToFloat(PV1i.w)));
R5i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg3i), intBitsToFloat(PV1i.w)));
PS0i = R5i.x;
// 5
backupReg0i = R5i.y;
backupReg1i = R5i.z;
R5i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R127i.w)));
R5i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(R127i.w)));
}
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
if( activeMaskStackC[1] == true ) {
activeMaskStack[1] = activeMaskStack[0];
activeMaskStackC[2] = activeMaskStackC[1];
// 0
R1i.x = floatBitsToInt(intBitsToFloat(uf_remappedPS[5].x) * intBitsToFloat(0xbd088889));
// 1
R1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].y), intBitsToFloat(uf_remappedPS[6].x)));
// 2
predResult = (intBitsToFloat(uf_remappedPS[7].w) != 0.0);
activeMaskStack[1] = predResult;
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
}
else {
activeMaskStack[1] = false;
activeMaskStackC[2] = false;
}
if( activeMaskStackC[2] == true ) {
// 0
PV0i.x = floatBitsToInt(intBitsToFloat(R2i.x) * intBitsToFloat(0x3e22f983));
PV0i.y = floatBitsToInt(intBitsToFloat(R1i.w) * intBitsToFloat(0x40e66666));
PV0i.z = floatBitsToInt(intBitsToFloat(R2i.y) * intBitsToFloat(0x3e22f983));
PV0i.w = floatBitsToInt(intBitsToFloat(R2i.z) * intBitsToFloat(0x3e22f983));
PS0i = floatBitsToInt(intBitsToFloat(R3i.x) + intBitsToFloat(R4i.z));
// 1
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(PV0i.y)) + 0.5));
PV1i.x = R123i.x;
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(PV0i.y)) + 0.5));
PV1i.y = R123i.y;
PV1i.z = floatBitsToInt(intBitsToFloat(R4i.y) + intBitsToFloat(PS0i));
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y)) + 0.5));
PV1i.w = R123i.w;
PS1i = floatBitsToInt(max(intBitsToFloat(uf_remappedPS[7].w), -(intBitsToFloat(uf_remappedPS[7].w))));
// 2
PV0i.x = floatBitsToInt(fract(intBitsToFloat(PV1i.y)));
PV0i.y = floatBitsToInt(fract(intBitsToFloat(PV1i.x)));
PV0i.z = floatBitsToInt(fract(intBitsToFloat(PV1i.w)));
R127i.w = floatBitsToInt(intBitsToFloat(PV1i.z) * intBitsToFloat(0x3e99999a));
R125i.w = floatBitsToInt(sqrt(intBitsToFloat(PS1i)));
PS0i = R125i.w;
// 3
R127i.x = floatBitsToInt((intBitsToFloat(PV0i.y) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb)));
R127i.y = floatBitsToInt((intBitsToFloat(PV0i.z) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb)));
R126i.z = R6i.z;
R126i.z = clampFI32(R126i.z);
R123i.w = floatBitsToInt((intBitsToFloat(PV0i.x) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb)));
PV1i.w = R123i.w;
R124i.w = floatBitsToInt((intBitsToFloat(0xc3020000) * intBitsToFloat(PS0i) + intBitsToFloat(0x43200000)));
PS1i = R124i.w;
// 4
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R2i.z),-0.0),vec4(intBitsToFloat(R3i.x),intBitsToFloat(R4i.y),intBitsToFloat(R4i.z),0.0)));
PV0i.x = tempi.x;
PV0i.y = tempi.x;
PV0i.z = tempi.x;
PV0i.w = tempi.x;
PS0i = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3e22f983));
// 5
PV1i.x = floatBitsToInt(intBitsToFloat(R127i.y) * intBitsToFloat(0x3e22f983));
R127i.y = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(0x3e22f983));
R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), intBitsToFloat(PV0i.x)));
R0i.w = floatBitsToInt((intBitsToFloat(0xc31a0000) * intBitsToFloat(R125i.w) + intBitsToFloat(0x43200000)));
R126i.y = floatBitsToInt(sin((intBitsToFloat(PS0i))/0.1591549367));
PS1i = R126i.y;
// 6
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R10i.x),intBitsToFloat(R10i.y),intBitsToFloat(R10i.z),-0.0),vec4(intBitsToFloat(R10i.x),intBitsToFloat(R10i.y),intBitsToFloat(R10i.z),0.0)));
PV0i.x = tempi.x;
PV0i.y = tempi.x;
PV0i.z = tempi.x;
PV0i.w = tempi.x;
R126i.w = tempi.x;
PS0i = floatBitsToInt(sin((intBitsToFloat(PV1i.x))/0.1591549367));
// 7
backupReg0i = R127i.y;
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.w),intBitsToFloat(R127i.w)) + intBitsToFloat(R127i.z)));
PV1i.x = R123i.x;
R127i.y = floatBitsToInt((intBitsToFloat(0xc2080000) * intBitsToFloat(R125i.w) + intBitsToFloat(0x42200000)));
PV1i.z = floatBitsToInt(intBitsToFloat(R126i.y) + intBitsToFloat(PS0i));
R127i.w = floatBitsToInt((intBitsToFloat(0xbfe66666) * intBitsToFloat(R125i.w) + intBitsToFloat(0x40333333)));
PS1i = floatBitsToInt(sin((intBitsToFloat(backupReg0i))/0.1591549367));
// 8
R125i.x = floatBitsToInt((intBitsToFloat(0xbd8f5c29) * intBitsToFloat(R125i.w) + intBitsToFloat(0x3d8f5c29)));
PV0i.y = floatBitsToInt(intBitsToFloat(PS1i) + intBitsToFloat(PV1i.z));
PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(R126i.w));
R126i.w = floatBitsToInt((intBitsToFloat(0xc0333333) * intBitsToFloat(R125i.w) + intBitsToFloat(0x40333333)));
tempResultf = max(0.0, intBitsToFloat(R126i.z));
tempResultf = log2(tempResultf);
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
R127i.x = floatBitsToInt(tempResultf);
PS0i = R127i.x;
// 9
R123i.x = floatBitsToInt((intBitsToFloat(PV0i.y) * 0.25 + intBitsToFloat(PV0i.z)));
PV1i.x = R123i.x;
R123i.y = floatBitsToInt((intBitsToFloat(R125i.w) * intBitsToFloat(0x3e4ccccd) + intBitsToFloat(0x3e4ccccd)));
PV1i.y = R123i.y;
R123i.z = floatBitsToInt((intBitsToFloat(0x3d4cccce) * intBitsToFloat(R125i.w) + intBitsToFloat(0x3dcccccd)));
PV1i.z = R123i.z;
PV1i.w = ((0.0 > intBitsToFloat(uf_remappedPS[7].w))?int(0xFFFFFFFF):int(0x0));
R126i.x = ((intBitsToFloat(uf_remappedPS[7].w) == 0.0)?int(0xFFFFFFFF):int(0x0));
PS1i = R126i.x;
// 10
PV0i.x = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(0x41000000));
R123i.y = ((PV1i.w == 0)?(PV1i.y):(PV1i.z));
PV0i.y = R123i.y;
R123i.z = floatBitsToInt((intBitsToFloat(PV1i.x) * intBitsToFloat(0x3f400000) + intBitsToFloat(R1i.x)));
PV0i.z = R123i.z;
PV0i.w = PV1i.x;
PV0i.w = clampFI32(PV0i.w);
R127i.z = floatBitsToInt((intBitsToFloat(0xc3480000) * intBitsToFloat(R125i.w) + intBitsToFloat(0x43960000)));
PS0i = R127i.z;
// 11
R127i.x = floatBitsToInt((intBitsToFloat(0xc36b0000) * intBitsToFloat(R125i.w) + intBitsToFloat(0x437f0000)));
R123i.y = floatBitsToInt((intBitsToFloat(PV0i.w) * intBitsToFloat(0xbeb33333) + intBitsToFloat(PV0i.z)));
PV1i.y = R123i.y;
R2i.w = ((R126i.x == 0)?(PV0i.y):(0));
R125i.z = floatBitsToInt(exp2(intBitsToFloat(PV0i.x)));
PS1i = R125i.z;
// 12
PV0i.x = floatBitsToInt(fract(intBitsToFloat(PV1i.y)));
PV0i.x = floatBitsToInt(intBitsToFloat(PV0i.x) * 2.0);
R125i.y = floatBitsToInt((intBitsToFloat(0x41600000) * intBitsToFloat(R125i.w) + intBitsToFloat(0x40c00000)));
// 13
PV1i.z = PV0i.x;
PV1i.z = clampFI32(PV1i.z);
PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.x) + -(1.0));
PV1i.w = clampFI32(PV1i.w);
// 14
PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + intBitsToFloat(PV1i.z));
// 15
R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(PV0i.y)));
PV1i.x = R126i.x;
R125i.w = PV0i.y;
R125i.w = floatBitsToInt(intBitsToFloat(R125i.w) * 2.0);
// 16
PV0i.z = floatBitsToInt(intBitsToFloat(0x40400000) * intBitsToFloat(PV1i.x));
// 17
R126i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.w)),intBitsToFloat(R126i.x)) + intBitsToFloat(PV0i.z)));
PV1i.y = R126i.y;
// 18
tempResultf = max(0.0, intBitsToFloat(PV1i.y));
tempResultf = log2(tempResultf);
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
PS0i = floatBitsToInt(tempResultf);
// 19
PV1i.w = floatBitsToInt(intBitsToFloat(PS0i) * intBitsToFloat(0x43480000));
// 20
R126i.z = floatBitsToInt(exp2(intBitsToFloat(PV1i.w)));
PS0i = R126i.z;
// 21
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.w),intBitsToFloat(PS0i)) + intBitsToFloat(R127i.w)));
PV1i.y = R123i.y;
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(PS0i)) + intBitsToFloat(R125i.x)));
PV1i.w = R123i.w;
// 22
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.w),intBitsToFloat(R126i.z)) + intBitsToFloat(R126i.w)));
PV0i.x = R123i.x;
R123i.y = floatBitsToInt((intBitsToFloat(R126i.y) * intBitsToFloat(0x3ecccccd) + intBitsToFloat(PV1i.w)));
PV0i.y = R123i.y;
R123i.z = floatBitsToInt((intBitsToFloat(R126i.y) * intBitsToFloat(0x3ecccccd) + intBitsToFloat(PV1i.y)));
PV0i.z = R123i.z;
// 23
R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(R125i.z)) + intBitsToFloat(PV0i.y)));
R123i.y = floatBitsToInt((intBitsToFloat(R126i.y) * intBitsToFloat(0x3ecccccd) + intBitsToFloat(PV0i.x)));
PV1i.y = R123i.y;
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R125i.z)) + intBitsToFloat(PV0i.z)));
PV1i.w = R123i.w;
// 24
R0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R2i.w)));
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(R125i.z)) + intBitsToFloat(PV1i.y)));
PV0i.z = R123i.z;
// 25
R0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R2i.w)));
R0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(R2i.w)));
}
activeMaskStack[1] = activeMaskStack[1] == false;
activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true;
if( activeMaskStackC[2] == true ) {
// 0
R0i.xyz = ivec3(0,0,0);
R2i.w = 0;
}
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
if( activeMaskStackC[1] == true ) {
activeMaskStack[1] = activeMaskStack[0];
activeMaskStackC[2] = activeMaskStackC[1];
// 0
predResult = (intBitsToFloat(uf_remappedPS[3].x) > 0.0);
activeMaskStack[1] = predResult;
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
}
else {
activeMaskStack[1] = false;
activeMaskStackC[2] = false;
}
if( activeMaskStackC[2] == true ) {
// 0
backupReg0i = R2i.w;
PV0i.x = floatBitsToInt(intBitsToFloat(R1i.x) * intBitsToFloat(0x40490fdb));
PV0i.x = floatBitsToInt(intBitsToFloat(PV0i.x) * 2.0);
R127i.y = R6i.z;
R127i.y = clampFI32(R127i.y);
PV0i.y = R127i.y;
PV0i.z = floatBitsToInt(intBitsToFloat(R4i.z) + -(intBitsToFloat(R10i.y)));
R127i.w = floatBitsToInt(intBitsToFloat(R2i.y) * intBitsToFloat(0x40600000));
R2i.w = floatBitsToInt((intBitsToFloat(uf_remappedPS[3].x) * intBitsToFloat(0x3f4ccccd) + intBitsToFloat(backupReg0i)));
PS0i = R2i.w;
// 1
R123i.y = floatBitsToInt((intBitsToFloat(R4i.y) * 0.5 + intBitsToFloat(PV0i.z)));
PV1i.y = R123i.y;
R123i.z = floatBitsToInt((intBitsToFloat(PV0i.x) * intBitsToFloat(0x3e22f983) + 0.5));
PV1i.z = R123i.z;
R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(PV0i.y)));
PV1i.w = R126i.w;
// 2
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.w),intBitsToFloat(R127i.w)) + intBitsToFloat(PV1i.y)));
PV0i.x = R123i.x;
PV0i.y = floatBitsToInt(fract(intBitsToFloat(PV1i.z)));
PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PV1i.w)));
// 3
R123i.x = floatBitsToInt((intBitsToFloat(PV0i.y) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb)));
PV1i.x = R123i.x;
R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R126i.w)));
PV1i.w = floatBitsToInt(intBitsToFloat(R1i.x) + intBitsToFloat(PV0i.x));
// 4
PV0i.z = floatBitsToInt(fract(intBitsToFloat(PV1i.w)));
PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) * 2.0);
PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(0x3e22f983));
// 5
PV1i.x = PV0i.z;
PV1i.x = clampFI32(PV1i.x);
PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + -(1.0));
PV1i.y = clampFI32(PV1i.y);
PS1i = floatBitsToInt(sin((intBitsToFloat(PV0i.w))/0.1591549367));
// 6
PV0i.y = floatBitsToInt(intBitsToFloat(PS1i) + 1.0);
PV0i.y = floatBitsToInt(intBitsToFloat(PV0i.y) / 2.0);
PV0i.w = floatBitsToInt(-(intBitsToFloat(PV1i.y)) + intBitsToFloat(PV1i.x));
// 7
R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(PV0i.y)) + intBitsToFloat(R127i.y)));
PV1i.x = R127i.x;
R127i.y = PV0i.w;
R127i.y = floatBitsToInt(intBitsToFloat(R127i.y) * 2.0);
R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(PV0i.w)));
PV1i.z = R127i.z;
PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.y) + 0.5);
// 8
PV0i.x = floatBitsToInt(intBitsToFloat(0x40400000) * intBitsToFloat(PV1i.z));
R126i.y = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3df5c290));
R126i.z = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3e8a3d71));
R126i.w = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3b449ba6));
R126i.x = PV1i.x;
R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) / 2.0);
PS0i = R126i.x;
// 9
backupReg0i = R127i.x;
backupReg0i = R127i.x;
backupReg1i = R127i.z;
R127i.x = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(0x41100000));
R127i.z = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(0x40a00000));
R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.y)),intBitsToFloat(backupReg1i)) + intBitsToFloat(PV0i.x)));
PV1i.w = R123i.w;
// 10
tempResultf = max(0.0, intBitsToFloat(PV1i.w));
tempResultf = log2(tempResultf);
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
PS0i = floatBitsToInt(tempResultf);
// 11
PV1i.y = floatBitsToInt(intBitsToFloat(PS0i) * intBitsToFloat(0x40c00000));
// 12
PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.y)));
// 13
R123i.y = floatBitsToInt((intBitsToFloat(PS0i) * intBitsToFloat(0x3dcccccd) + intBitsToFloat(R126i.w)));
PV1i.y = R123i.y;
R123i.z = floatBitsToInt((intBitsToFloat(PS0i) * intBitsToFloat(0x3f19999a) + intBitsToFloat(R126i.y)));
PV1i.z = R123i.z;
R123i.w = floatBitsToInt((intBitsToFloat(PS0i) * intBitsToFloat(0x3fe66666) + intBitsToFloat(R126i.z)));
PV1i.w = R123i.w;
// 14
PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(R127i.z));
PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(R127i.x));
PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(R126i.x));
// 15
backupReg0i = R0i.y;
backupReg1i = R0i.x;
PV1i.x = floatBitsToInt(-(intBitsToFloat(R0i.z)) + intBitsToFloat(PV0i.w));
PV1i.y = floatBitsToInt(-(intBitsToFloat(backupReg0i)) + intBitsToFloat(PV0i.x));
PV1i.z = floatBitsToInt(-(intBitsToFloat(backupReg1i)) + intBitsToFloat(PV0i.y));
// 16
backupReg0i = R0i.x;
backupReg1i = R0i.y;
backupReg2i = R0i.z;
R0i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(uf_remappedPS[3].x)) + intBitsToFloat(backupReg0i)));
R0i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(uf_remappedPS[3].x)) + intBitsToFloat(backupReg1i)));
R0i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(uf_remappedPS[3].x)) + intBitsToFloat(backupReg2i)));
}
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
if( activeMaskStackC[1] == true ) {
activeMaskStack[1] = activeMaskStack[0];
activeMaskStackC[2] = activeMaskStackC[1];
// 0
predResult = (intBitsToFloat(uf_remappedPS[3].y) > 0.0);
activeMaskStack[1] = predResult;
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
}
else {
activeMaskStack[1] = false;
activeMaskStackC[2] = false;
}
if( activeMaskStackC[2] == true ) {
// 0
backupReg0i = R0i.x;
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.y), intBitsToFloat(R3i.y)));
R127i.z = floatBitsToInt(-(intBitsToFloat(backupReg0i)));
// 1
backupReg0i = R0i.y;
PV1i.x = floatBitsToInt(-(intBitsToFloat(R0i.z)) + intBitsToFloat(PV0i.x));
PV1i.y = floatBitsToInt(-(intBitsToFloat(backupReg0i)) + intBitsToFloat(PV0i.x));
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].y), intBitsToFloat(PV0i.x)));
// 2
backupReg0i = R0i.x;
backupReg1i = R0i.y;
backupReg2i = R0i.z;
backupReg3i = R2i.w;
R0i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PV1i.w)) + intBitsToFloat(backupReg0i)));
R0i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.w)) + intBitsToFloat(backupReg1i)));
R0i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.w)) + intBitsToFloat(backupReg2i)));
R2i.w = floatBitsToInt(intBitsToFloat(backupReg3i) + intBitsToFloat(PV1i.w));
}
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
if( activeMaskStackC[1] == true ) {
activeMaskStack[1] = activeMaskStack[0];
activeMaskStackC[2] = activeMaskStackC[1];
// 0
R127i.y = R2i.w;
R127i.y = clampFI32(R127i.y);
PV0i.y = R127i.y;
// 1
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),-(intBitsToFloat(PV0i.y))) + intBitsToFloat(R5i.y)));
PV1i.x = R123i.x;
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.z),-(intBitsToFloat(PV0i.y))) + intBitsToFloat(R5i.z)));
PV1i.y = R123i.y;
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.x),-(intBitsToFloat(PV0i.y))) + intBitsToFloat(R5i.x)));
PV1i.z = R123i.z;
R127i.w = ((intBitsToFloat(PV0i.y) > 0.0)?int(0xFFFFFFFF):int(0x0));
PV1i.w = R127i.w;
R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.x),-(intBitsToFloat(PV0i.y))) + intBitsToFloat(R10i.x)));
PS1i = R122i.x;
// 2
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.z),intBitsToFloat(R127i.y)) + intBitsToFloat(PV1i.y)));
PV0i.x = R123i.x;
R126i.y = ((PV1i.w == 0)?(R10i.x):(PS1i));
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.y),intBitsToFloat(R127i.y)) + intBitsToFloat(PV1i.x)));
PV0i.z = R123i.z;
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.x),intBitsToFloat(R127i.y)) + intBitsToFloat(PV1i.z)));
PV0i.w = R123i.w;
R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.y),-(intBitsToFloat(R127i.y))) + intBitsToFloat(R10i.y)));
PS0i = R122i.x;
// 3
R127i.x = ((R127i.w == 0)?(R5i.x):(PV0i.w));
PV1i.x = R127i.x;
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.z),-(intBitsToFloat(R127i.y))) + intBitsToFloat(R10i.z)));
PV1i.y = R123i.y;
R127i.z = ((R127i.w == 0)?(R5i.z):(PV0i.x));
PV1i.z = R127i.z;
R126i.w = ((R127i.w == 0)?(R5i.y):(PV0i.z));
PV1i.w = R126i.w;
R125i.w = ((R127i.w == 0)?(R10i.y):(PS0i));
PS1i = R125i.w;
// 4
PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + intBitsToFloat(uf_remappedPS[8].y));
PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + intBitsToFloat(uf_remappedPS[8].x));
R126i.z = ((R127i.w == 0)?(R10i.z):(PV1i.y));
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),-(intBitsToFloat(R127i.y))) + intBitsToFloat(R6i.y)));
PV0i.w = R123i.w;
PS0i = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + intBitsToFloat(uf_remappedPS[8].z));
// 5
R5i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(uf_remappedPS[8].w)) + intBitsToFloat(R127i.x)));
R3i.y = ((R127i.w == 0)?(R6i.y):(PV0i.w));
R5i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PS0i),intBitsToFloat(uf_remappedPS[8].w)) + intBitsToFloat(R127i.z)));
R5i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(uf_remappedPS[8].w)) + intBitsToFloat(R126i.w)));
PS1i = R5i.y;
// 6
R6i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.y),-(intBitsToFloat(uf_remappedPS[8].w))) + intBitsToFloat(R126i.y)));
R6i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.w),-(intBitsToFloat(uf_remappedPS[8].w))) + intBitsToFloat(R125i.w)));
R6i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),-(intBitsToFloat(uf_remappedPS[8].w))) + intBitsToFloat(R126i.z)));
// 7
predResult = (1.0 > intBitsToFloat(uf_remappedPS[2].w));
activeMaskStack[1] = predResult;
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
}
else {
activeMaskStack[1] = false;
activeMaskStackC[2] = false;
}
if( activeMaskStackC[2] == true ) {
// 0
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(uf_remappedPS[6].x)));
R0i.y = floatBitsToInt((-(intBitsToFloat(uf_remappedPS[2].w)) * intBitsToFloat(0x40200000) + intBitsToFloat(0x40200000)));
R0i.y = clampFI32(R0i.y);
R0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(uf_remappedPS[6].x)));
PV0i.z = R0i.z;
PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(uf_remappedPS[6].x)));
// 1
R2i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(uf_remappedPS[9].z)));
R2i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(uf_remappedPS[9].z)));
R2i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(uf_remappedPS[9].z)));
R1i.w = PV0i.w;
R1i.w = floatBitsToInt(intBitsToFloat(R1i.w) / 2.0);
R1i.x = PV0i.x;
R1i.x = floatBitsToInt(intBitsToFloat(R1i.x) / 2.0);
PS1i = R1i.x;
}
if( activeMaskStackC[2] == true ) {
R0i.w = floatBitsToInt(texture(textureUnitPS1, vec3(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R2i.z))).x);
}
if( activeMaskStackC[2] == true ) {
// 0
R1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), intBitsToFloat(uf_remappedPS[9].y)));
R1i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[9].w),intBitsToFloat(R0i.w)) + intBitsToFloat(R1i.w)));
}
if( activeMaskStackC[2] == true ) {
R1i.z = floatBitsToInt(texture(textureUnitPS1, vec3(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z))).x);
}
if( activeMaskStackC[2] == true ) {
// 0
if( (intBitsToFloat(R3i.z) > intBitsToFloat(R1i.z))) discard;
tempResultf = max(0.0, intBitsToFloat(R1i.z));
tempResultf = log2(tempResultf);
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
R1i.x = floatBitsToInt(tempResultf);
PS0i = R1i.x;
}
if( activeMaskStackC[2] == true ) {
// 0
PV0i.w = floatBitsToInt(intBitsToFloat(R1i.x) * intBitsToFloat(0x3fe66666));
// 1
R127i.z = floatBitsToInt(exp2(intBitsToFloat(PV0i.w)));
PS1i = R127i.z;
// 2
R123i.x = floatBitsToInt((intBitsToFloat(0x40b1999a) * intBitsToFloat(PS1i) + intBitsToFloat(0x3ee66666)));
PV0i.x = R123i.x;
R123i.y = floatBitsToInt((intBitsToFloat(0x3dccccce) * intBitsToFloat(PS1i) + intBitsToFloat(0x3e4ccccd)));
PV0i.y = R123i.y;
// 3
backupReg0i = R5i.x;
backupReg1i = R5i.y;
R5i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.y),intBitsToFloat(PV0i.y)) + intBitsToFloat(backupReg0i)));
R5i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.y),intBitsToFloat(PV0i.x)) + intBitsToFloat(backupReg1i)));
R123i.w = floatBitsToInt((intBitsToFloat(0x41200000) * intBitsToFloat(R127i.z) + 4.0));
PV1i.w = R123i.w;
// 4
backupReg0i = R5i.z;
R5i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.y),intBitsToFloat(PV1i.w)) + intBitsToFloat(backupReg0i)));
}
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
if( activeMaskStackC[1] == true ) {
// 0
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.y),-(intBitsToFloat(uf_remappedPS[8].w))) + intBitsToFloat(R3i.y)));
PV0i.x = R123i.x;
PV0i.y = uf_remappedPS[7].z;
PV0i.z = ((intBitsToFloat(R8i.y) > 0.0)?int(0xFFFFFFFF):int(0x0));
R123i.w = ((R4i.x == 0)?(0x3d008081):(0x3d30b0b1));
PV0i.w = R123i.w;
R1i.w = floatBitsToInt(1.0);
PS0i = R1i.w;
// 1
R1i.x = PV0i.w;
R127i.y = ((PV0i.z == 0)?(0):(0x3f800000));
PV1i.y = R127i.y;
R0i.z = floatBitsToInt((intBitsToFloat(R4i.z) * 0.5 + 0.5));
PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(0x427f0000));
R1i.y = PV0i.y;
PS1i = R1i.y;
// 2
PV0i.x = ((intBitsToFloat(PV1i.y) > 0.0)?int(0xFFFFFFFF):int(0x0));
R0i.y = floatBitsToInt((intBitsToFloat(R4i.y) * 0.5 + 0.5));
PV0i.z = floatBitsToInt(floor(intBitsToFloat(PV1i.w)));
PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) * 4.0);
R2i.w = 0x3f800000;
R0i.x = floatBitsToInt((intBitsToFloat(R3i.x) * 0.5 + 0.5));
PS0i = R0i.x;
// 3
PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + 2.0);
R123i.w = ((PV0i.x == 0)?(R7i.y):(R8i.y));
PV1i.w = R123i.w;
// 4
PV0i.x = floatBitsToInt(intBitsToFloat(R7i.y) + intBitsToFloat(PV1i.y));
PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x437f0000));
// 5
R0i.w = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(0x3b808081));
PS1i = int(intBitsToFloat(PV0i.z));
// 6
PV0i.x = PS1i & 0x000000e0;
// 7
PV1i.w = PV0i.x >> 0x00000003;
// 8
PS0i = floatBitsToInt(float(PV1i.w));
// 9
PV1i.y = floatBitsToInt(intBitsToFloat(PS0i) + intBitsToFloat(0x42c00000));
// 10
R123i.x = floatBitsToInt((intBitsToFloat(R127i.y) * 2.0 + intBitsToFloat(PV1i.y)));
PV0i.x = R123i.x;
// 11
R5i.w = floatBitsToInt((intBitsToFloat(PV0i.x) * intBitsToFloat(0x3b808081) + intBitsToFloat(0x3b808081)));
// 12
R4i.xyz = ivec3(R5i.x,R5i.y,R5i.z);
R4i.w = R2i.w;
// 13
R3i.xyz = ivec3(R0i.x,R0i.y,R0i.z);
R3i.w = R0i.w;
// 14
R2i.xyz = ivec3(R6i.x,R6i.y,R6i.z);
R2i.w = R5i.w;
// 15
backupReg0i = R1i.x;
backupReg1i = R1i.y;
backupReg2i = R1i.z;
backupReg3i = R1i.w;
R1i.xyz = ivec3(backupReg0i,backupReg1i,backupReg2i);
R1i.w = backupReg3i;
}
// export
passPixelColor0 = vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.w));
passPixelColor1 = vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.w));
passPixelColor3 = vec4(intBitsToFloat(R3i.x), intBitsToFloat(R3i.y), intBitsToFloat(R3i.z), intBitsToFloat(R3i.w));
passPixelColor5 = vec4(intBitsToFloat(R4i.x), intBitsToFloat(R4i.y), intBitsToFloat(R4i.z), intBitsToFloat(R4i.w));
}

View File

@ -0,0 +1,223 @@
#version 420
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
const vec3 Color = vec3($R,$G,$B);
const float Factor = $L_f;
// Guardian Stalker + Scout + Guardian weapons
// shader 91b6e09da2ff63cc
uniform ivec4 uf_remappedPS[3];
uniform vec2 uf_fragCoordScale;
layout(binding = 1) uniform sampler2D textureUnitPS1;
layout(binding = 2) uniform sampler2D textureUnitPS2;
layout(binding = 3) uniform sampler2D textureUnitPS3;
layout(binding = 4) uniform sampler2D textureUnitPS4;
layout(binding = 5) uniform sampler2D textureUnitPS5;
layout(binding = 6) uniform sampler2D textureUnitPS6;
layout(location = 0) in vec4 passParameterSem0;
layout(location = 1) in vec4 passParameterSem1;
layout(location = 2) in vec4 passParameterSem7;
layout(location = 3) in vec4 passParameterSem3;
layout(location = 4) in vec4 passParameterSem4;
layout(location = 5) in vec4 passParameterSem6;
layout(location = 0) out vec4 passPixelColor0;
layout(location = 1) out vec4 passPixelColor1;
layout(location = 3) out vec4 passPixelColor3;
layout(location = 5) out vec4 passPixelColor5;
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 R122f = 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);
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 = passParameterSem0;
R1f = passParameterSem1;
R2f = passParameterSem7;
R3f = passParameterSem3;
R4f = passParameterSem4;
R5f = passParameterSem6;
R5f.xy = (texture(textureUnitPS3, R0f.xy).xy);
R1f.w = (texture(textureUnitPS2, R0f.xy).x);
R7f.xyz = (texture(textureUnitPS4, R0f.xy).xyz);
R6f.xyz = (texture(textureUnitPS5, R0f.zw).xyz);
R1f.xyz = (texture(textureUnitPS6, R1f.xy).xyz);
R0f.xyz = (texture(textureUnitPS1, R0f.xy).xyz);
// 0
PV0f.x = fract(R2f.x);
R126f.y = (R5f.x * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204));
PV0f.y = R126f.y;
R127f.z = mul_nonIEEE(R3f.y, R4f.z);
PV0f.w = fract(R2f.y);
R126f.z = mul_nonIEEE(R3f.z, R4f.x);
PS0f = R126f.z;
// 1
PV1f.x = mul_nonIEEE(R3f.x, R4f.y);
PV1f.y = PV0f.w + -(0.5);
PV1f.z = PV0f.x + -(0.5);
R127f.w = (R5f.y * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204));
PV1f.w = R127f.w;
PS1f = mul_nonIEEE(PV0f.y, PV0f.y);
// 2
R123f.x = (mul_nonIEEE(-(PV1f.z),PV1f.z) + 1.0);
R123f.x = clamp(R123f.x, 0.0, 1.0);
PV0f.x = R123f.x;
R127f.y = (mul_nonIEEE(-(R4f.y),R3f.z) + R127f.z);
R127f.z = (mul_nonIEEE(-(R4f.x),R3f.y) + PV1f.x);
R123f.w = (mul_nonIEEE(-(PV1f.y),PV1f.y) + 1.0);
R123f.w = clamp(R123f.w, 0.0, 1.0);
PV0f.w = R123f.w;
R122f.x = (mul_nonIEEE(PV1f.w,PV1f.w) + PS1f);
R122f.x = clamp(R122f.x, 0.0, 1.0);
PS0f = R122f.x;
// 3
PV1f.x = -(PS0f) + 1.0;
PV1f.y = mul_nonIEEE(R4f.w, R127f.w);
PV1f.z = mul_nonIEEE(PV0f.x, PV0f.w);
R123f.w = (mul_nonIEEE(-(R4f.z),R3f.x) + R126f.z);
PV1f.w = R123f.w;
R125f.z = mul_nonIEEE(R6f.x, R1f.x);
PS1f = R125f.z;
// 4
PV0f.x = mul_nonIEEE(R127f.y, PV1f.y);
PV0f.y = mul_nonIEEE(PV1f.z, PV1f.z);
PV0f.z = mul_nonIEEE(R127f.z, PV1f.y);
PV0f.w = mul_nonIEEE(PV1f.w, PV1f.y);
R127f.z = sqrt(PV1f.x);
PS0f = R127f.z;
// 5
R123f.x = (mul_nonIEEE(R4f.y,R126f.y) + PV0f.w);
PV1f.x = R123f.x;
R123f.y = (mul_nonIEEE(R4f.x,R126f.y) + PV0f.x);
PV1f.y = R123f.y;
R126f.z = mul_nonIEEE(R1f.w, PV0f.y);
R123f.w = (mul_nonIEEE(R4f.z,R126f.y) + PV0f.z);
PV1f.w = R123f.w;
R126f.y = mul_nonIEEE(R6f.z, R1f.z);
PS1f = R126f.y;
// 6
R124f.x = (mul_nonIEEE(R3f.x,R127f.z) + PV1f.y);
R124f.y = (mul_nonIEEE(R3f.y,R127f.z) + PV1f.x);
R1f.z = (mul_nonIEEE(R3f.z,R127f.z) + PV1f.w);
R127f.w = mul_nonIEEE(R6f.y, R1f.y);
R126f.w = mul_nonIEEE(Color.r, R7f.x);
PS0f = R126f.w;
// 7
R127f.x = mul_nonIEEE(Color.r, PS0f);
R127f.y = mul_nonIEEE(Color.g, R7f.y);
PV1f.z = R126f.z * intBitsToFloat(0x427f0000);
R125f.w = mul_nonIEEE(Color.b, R7f.z);
R124f.z = intBitsToFloat(0x3d008081);
PS1f = R124f.z;
// 8
R123f.x = (mul_nonIEEE(-(R5f.z),intBitsToFloat(uf_remappedPS[1].z)) + -(intBitsToFloat(uf_remappedPS[1].y)));
R123f.x = clamp(R123f.x, 0.0, 1.0);
PV0f.x = R123f.x;
R125f.y = mul_nonIEEE(R125f.z, intBitsToFloat(uf_remappedPS[1].x) * Factor);
PV0f.y = R125f.y;
R127f.z = mul_nonIEEE(R127f.w, intBitsToFloat(uf_remappedPS[1].x) * Factor);
PV0f.z = R127f.z;
R127f.w = mul_nonIEEE(R126f.y, intBitsToFloat(uf_remappedPS[1].x) * Factor);
PV0f.w = R127f.w;
R126f.y = floor(PV1f.z);
R126f.y *= 4.0;
PS0f = R126f.y;
// 9
backupReg0f = R126f.w;
R126f.x = mul_nonIEEE(R127f.y, PV0f.z);
PV1f.y = mul_nonIEEE(Color.g, R127f.y);
R125f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].w), PV0f.x);
PV1f.z = R125f.z;
R126f.w = mul_nonIEEE(backupReg0f, PV0f.y);
R125f.x = mul_nonIEEE(R125f.w, PV0f.w);
PS1f = R125f.x;
// 10
backupReg0f = R126f.y;
PV0f.x = mul_nonIEEE(Color.b, R125f.w);
R126f.y = mul_nonIEEE(PV1f.z, R127f.x);
R126f.z = mul_nonIEEE(PV1f.z, PV1f.y);
R125f.w = intBitsToFloat(uf_remappedPS[2].z);
R127f.x = backupReg0f + 2.0;
PS0f = R127f.x;
// 11
backupReg0f = R125f.z;
tempf.x = dot(vec4(R124f.x,R124f.y,R1f.z,-0.0),vec4(R124f.x,R124f.y,R1f.z,0.0));
PV1f.x = tempf.x;
PV1f.y = tempf.x;
PV1f.z = tempf.x;
PV1f.w = tempf.x;
R125f.z = tempf.x;
PS1f = mul_nonIEEE(backupReg0f, PV0f.x);
// 12
R5f.x = (mul_nonIEEE(R126f.y,R125f.y) + R126f.w);
R5f.y = (mul_nonIEEE(R126f.z,R127f.z) + R126f.x);
R5f.z = (mul_nonIEEE(PS1f,R127f.w) + R125f.x);
R1f.w = 1.0;
R1f.x = R124f.z;
PS0f = R1f.x;
// 13
R1f.y = R125f.w;
R5f.w = 1.0;
R7f.w = R127f.x * intBitsToFloat(0x3b808081);
PS1f = R7f.w;
// 14
R0f.w = intBitsToFloat(0x3ec2c2c4);
tempResultf = 1.0 / sqrt(R125f.z);
PS0f = tempResultf;
PS0f /= 2.0;
// 15
R7f.x = (mul_nonIEEE(R124f.x,PS0f) + 0.5);
R7f.y = (mul_nonIEEE(R124f.y,PS0f) + 0.5);
R7f.z = (mul_nonIEEE(R1f.z,PS0f) + 0.5);
// 16
backupReg0f = R5f.x;
backupReg1f = R5f.y;
backupReg2f = R5f.z;
backupReg3f = R5f.w;
R5f.xyz = vec3(backupReg0f,backupReg1f,backupReg2f);
R5f.w = backupReg3f;
// 17
R4f.xyz = vec3(R7f.x,R7f.y,R7f.z);
R4f.w = R7f.w;
// 18
R3f.xyz = vec3(R0f.x,R0f.y,R0f.z);
R3f.w = R0f.w;
// 19
R2f.xyz = vec3(R1f.x,R1f.y,R1f.z);
R2f.w = R1f.w;
// export
passPixelColor0 = vec4(R2f.x, R2f.y, R2f.z, R2f.w);
passPixelColor1 = vec4(R3f.x, R3f.y, R3f.z, R3f.w);
passPixelColor3 = vec4(R4f.x, R4f.y, R4f.z, R4f.w);
passPixelColor5 = vec4(R5f.x, R5f.y, R5f.z, R5f.w);
}

View File

@ -0,0 +1,55 @@
[Definition]
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
name = Guardian Stalker & Guardian Scout & The top Half of Guardian weapons
path = "The Legend of Zelda: Breath of the Wild/Mods/Change Ancient Glow Color/Guardian Stalker & Scout & Guardian weapons"
description = Change Guardian Stalker, Scout, Guardian weapons's color. Originally it depends on whether it's corrupted by malice, or the state of the Guardian Scout.
version = 3
[Preset]
name = Malice Red
$R = 0.85
$G = 0.029
$B = 0.15
$L_f = 1.0
[Preset]
name = Guardian Yellow
$R = 1.0
$G = 0.2
$B = 0.059
$L_f = 1.0
[Preset]
name = Guardian weapon Yellow
$R = 1.0
$G = 0.2
$B = 0.0
$L_f = 1.0
[Preset]
name = Ancient Orange
$R = 1.0
$G = 0.2
$B = 0.0006
$L_f = 1.0
[Preset]
name = Ancient weapon Orange
$R = 1.0
$G = 0.15
$B = 0.05
$L_f = 1.0
[Preset]
name = Energy Blue
$R = 0.03
$G = 0.25
$B = 1.0
$L_f = 1.0
[Preset]
name = Custom (Edit in rules.txt)
$R = 0.000
$G = 0.000
$B = 0.000
$L_f = 1.0

View File

@ -0,0 +1,304 @@
#version 420
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
const vec3 Color = vec3($R,$G,$B);
const float Factor = $L_f;
// Guardian Turret + Skywatcher
// shader 133297c9a66bfc98
uniform ivec4 uf_remappedPS[5];
uniform vec2 uf_fragCoordScale;
layout(binding = 1) uniform sampler2D textureUnitPS1;
layout(binding = 2) uniform sampler2D textureUnitPS2;
layout(binding = 3) uniform sampler2D textureUnitPS3;
layout(binding = 4) uniform sampler2D textureUnitPS4;
layout(binding = 5) uniform sampler2D textureUnitPS5;
layout(binding = 6) uniform sampler2D textureUnitPS6;
layout(location = 0) in vec4 passParameterSem0;
layout(location = 1) in vec4 passParameterSem1;
layout(location = 2) in vec4 passParameterSem7;
layout(location = 3) in vec4 passParameterSem3;
layout(location = 4) in vec4 passParameterSem4;
layout(location = 5) in vec4 passParameterSem6;
layout(location = 0) out vec4 passPixelColor0;
layout(location = 1) out vec4 passPixelColor1;
layout(location = 3) out vec4 passPixelColor3;
layout(location = 5) out vec4 passPixelColor5;
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 R122i = ivec4(0);
ivec4 R123i = ivec4(0);
ivec4 R124i = ivec4(0);
ivec4 R125i = ivec4(0);
ivec4 R126i = ivec4(0);
ivec4 R127i = ivec4(0);
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 = floatBitsToInt(passParameterSem0);
R1i = floatBitsToInt(passParameterSem1);
R2i = floatBitsToInt(passParameterSem7);
R3i = floatBitsToInt(passParameterSem3);
R4i = floatBitsToInt(passParameterSem4);
R5i = floatBitsToInt(passParameterSem6);
R6i.xy = floatBitsToInt(texture(textureUnitPS3, intBitsToFloat(R0i.xy)).xy);
R9i.xy = floatBitsToInt(texture(textureUnitPS2, intBitsToFloat(R0i.xy)).xy);
R2i.w = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R1i.zw)).w);
R8i.xyz = floatBitsToInt(texture(textureUnitPS4, intBitsToFloat(R0i.xy)).xyz);
R7i.xyz = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.zw)).xyz);
R1i.xyz = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R1i.xy)).xyz);
R0i.xyz = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R0i.xy)).xyz);
// 0
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.x), intBitsToFloat(R4i.y)));
PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), intBitsToFloat(R4i.x)));
R127i.z = floatBitsToInt((intBitsToFloat(R6i.x) * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204)));
PV0i.z = R127i.z;
PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.y), intBitsToFloat(R4i.z)));
R127i.y = floatBitsToInt((intBitsToFloat(R6i.y) * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204)));
PS0i = R127i.y;
// 1
PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(PV0i.z)));
R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.x)),intBitsToFloat(R3i.y)) + intBitsToFloat(PV0i.x)));
PV1i.y = R123i.y;
R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.y)),intBitsToFloat(R3i.z)) + intBitsToFloat(PV0i.w)));
PV1i.z = R123i.z;
R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.z)),intBitsToFloat(R3i.x)) + intBitsToFloat(PV0i.y)));
PV1i.w = R123i.w;
PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.w), intBitsToFloat(PS0i)));
// 2
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(PS1i)));
PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(PS1i)));
PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PS1i)));
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(R127i.y)) + intBitsToFloat(PV1i.x)));
R123i.w = clampFI32(R123i.w);
PV0i.w = R123i.w;
R126i.x = floatBitsToInt(fract(intBitsToFloat(R2i.x)));
PS0i = R126i.x;
// 3
R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.x),intBitsToFloat(R127i.z)) + intBitsToFloat(PV0i.x)));
R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.z),intBitsToFloat(R127i.z)) + intBitsToFloat(PV0i.y)));
PV1i.z = floatBitsToInt(-(intBitsToFloat(PV0i.w)) + 1.0);
R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.y),intBitsToFloat(R127i.z)) + intBitsToFloat(PV0i.z)));
R127i.z = floatBitsToInt(fract(intBitsToFloat(R2i.y)));
PS1i = R127i.z;
// 4
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R5i.y),intBitsToFloat(R5i.z),-0.0),vec4(intBitsToFloat(R5i.x),intBitsToFloat(R5i.y),intBitsToFloat(R5i.z),0.0)));
PV0i.x = tempi.x;
PV0i.y = tempi.x;
PV0i.z = tempi.x;
PV0i.w = tempi.x;
PS0i = floatBitsToInt(sqrt(intBitsToFloat(PV1i.z)));
// 5
backupReg0i = R127i.x;
backupReg1i = R127i.y;
R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.x),intBitsToFloat(PS0i)) + intBitsToFloat(backupReg0i)));
PV1i.x = R127i.x;
R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.y),intBitsToFloat(PS0i)) + intBitsToFloat(R127i.w)));
PV1i.y = R127i.y;
R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.z),intBitsToFloat(PS0i)) + intBitsToFloat(backupReg1i)));
PV1i.z = R126i.z;
R127i.w = floatBitsToInt(intBitsToFloat(R126i.x) + -(0.5));
PS1i = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x)));
// 6
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0)));
PV0i.x = tempi.x;
PV0i.y = tempi.x;
PV0i.z = tempi.x;
PV0i.w = tempi.x;
PS0i = floatBitsToInt(1.0 / intBitsToFloat(PS1i));
// 7
R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(PS0i)));
PV1i.y = floatBitsToInt(intBitsToFloat(R127i.z) + -(0.5));
R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.y), intBitsToFloat(PS0i)));
R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.z), intBitsToFloat(PS0i)));
tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.x));
PS1i = floatBitsToInt(tempResultf);
// 8
R3i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PS1i)));
PV0i.x = R3i.x;
R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PS1i)));
PV0i.y = R3i.y;
R3i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), intBitsToFloat(PS1i)));
PV0i.z = R3i.z;
R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.w)),intBitsToFloat(R127i.w)) + 1.0));
R123i.w = clampFI32(R123i.w);
PV0i.w = R123i.w;
R122i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.y)),intBitsToFloat(PV1i.y)) + 1.0));
R122i.x = clampFI32(R122i.x);
PS0i = R122i.x;
// 9
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R126i.x),intBitsToFloat(R127i.z),intBitsToFloat(R126i.w),-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;
PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(PS0i)));
// 10
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PS1i),intBitsToFloat(PS1i)) + intBitsToFloat(R9i.y)));
R123i.x = clampFI32(R123i.x);
PV0i.x = R123i.x;
PV0i.y = floatBitsToInt(intBitsToFloat(R9i.y) * intBitsToFloat(0x437f0000));
PV0i.z = floatBitsToInt(intBitsToFloat(R2i.w) + -(1.0));
PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.x) + 1.0);
PV0i.w = clampFI32(PV0i.w);
R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.x), intBitsToFloat(R1i.x)));
PS0i = R127i.y;
// 11
R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.y), intBitsToFloat(R1i.y)));
R126i.y = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(PV0i.z));
PV1i.y = R126i.y;
R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.z), intBitsToFloat(R1i.z)));
R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.x), intBitsToFloat(PV0i.x)));
PS1i = int(intBitsToFloat(PV0i.y));
// 12
R127i.x = floatBitsToInt(mul_nonIEEE(Color.r, intBitsToFloat(R8i.x)));
R125i.y = PS1i & 0x000000e0;
R126i.z = floatBitsToInt(mul_nonIEEE(Color.g, intBitsToFloat(R8i.y)));
R127i.w = floatBitsToInt(mul_nonIEEE(Color.b, intBitsToFloat(R8i.z)));
R125i.x = floatBitsToInt(intBitsToFloat(R8i.x) + intBitsToFloat(PV1i.y));
PS0i = R125i.x;
// 13
backupReg0i = R126i.x;
R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(uf_remappedPS[1].x) * Factor));
R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(uf_remappedPS[1].x) * Factor));
R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(uf_remappedPS[1].x) * Factor));
R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R5i.z)),intBitsToFloat(uf_remappedPS[1].z)) + -(intBitsToFloat(uf_remappedPS[1].y))));
R123i.w = clampFI32(R123i.w);
PV1i.w = R123i.w;
R125i.w = floatBitsToInt(intBitsToFloat(R8i.y) + intBitsToFloat(R126i.y));
PS1i = R125i.w;
// 14
backupReg0i = R126i.y;
backupReg1i = R126i.w;
PV0i.x = floatBitsToInt(mul_nonIEEE(Color.r, intBitsToFloat(R127i.x)));
R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].w), intBitsToFloat(PV1i.w)));
PV0i.y = R126i.y;
PV0i.z = floatBitsToInt(mul_nonIEEE(Color.g, intBitsToFloat(R126i.z)));
R126i.w = floatBitsToInt(intBitsToFloat(R8i.z) + intBitsToFloat(backupReg0i));
R127i.y = floatBitsToInt(intBitsToFloat(backupReg1i) * intBitsToFloat(0x427f0000));
PS0i = R127i.y;
// 15
backupReg0i = R125i.y;
backupReg1i = R127i.x;
R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(PV0i.x)));
R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(PV0i.z)));
R127i.z = backupReg0i >> 0x00000003;
PV1i.w = floatBitsToInt(mul_nonIEEE(Color.b, intBitsToFloat(R127i.w)));
R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(R126i.x)));
PS1i = R124i.x;
// 16
backupReg0i = R125i.x;
backupReg1i = R126i.y;
backupReg2i = R126i.z;
backupReg3i = R127i.w;
R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].x), intBitsToFloat(backupReg0i)));
R125i.x = clampFI32(R125i.x);
R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(PV1i.w)));
R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg2i), intBitsToFloat(R124i.y)));
R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg3i), intBitsToFloat(R125i.z)));
R8i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].x), intBitsToFloat(R125i.w)));
R8i.x = clampFI32(R8i.x);
PS0i = R8i.x;
// 17
backupReg0i = R127i.x;
backupReg1i = R9i.y;
backupReg2i = R127i.z;
R127i.x = floatBitsToInt(floor(intBitsToFloat(R127i.y)));
R127i.x = floatBitsToInt(intBitsToFloat(R127i.x) * 4.0);
R9i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R126i.x)) + intBitsToFloat(R124i.x)));
R127i.z = ((intBitsToFloat(backupReg1i) > 0.5)?int(0xFFFFFFFF):int(0x0));
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].x), intBitsToFloat(R126i.w)));
PV1i.w = clampFI32(PV1i.w);
R127i.y = floatBitsToInt(float(backupReg2i));
PS1i = R127i.y;
// 18
backupReg0i = R125i.x;
backupReg1i = R126i.y;
R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(R124i.y)) + intBitsToFloat(R126i.z)));
R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].y), intBitsToFloat(R8i.x)));
PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].x), intBitsToFloat(backupReg0i)));
R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg1i),intBitsToFloat(R125i.z)) + intBitsToFloat(R127i.w)));
R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].z), intBitsToFloat(PV1i.w)));
PS0i = R127i.w;
// 19
backupReg0i = R127i.z;
backupReg1i = R9i.y;
R8i.x = floatBitsToInt(intBitsToFloat(R127i.x) + 2.0);
R9i.y = floatBitsToInt(intBitsToFloat(R127i.y) + intBitsToFloat(0x42c20000));
R127i.z = uf_remappedPS[4].z;
R125i.w = ((backupReg0i == 0)?(0x3d008081):(0x3d20a0a1));
R5i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].y),intBitsToFloat(PV0i.z)) + intBitsToFloat(backupReg1i)));
PS1i = R5i.x;
// 20
R1i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R0i.x)),intBitsToFloat(uf_remappedPS[2].x)) + intBitsToFloat(R0i.x)));
R1i.x = clampFI32(R1i.x);
R5i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].y),intBitsToFloat(R126i.y)) + intBitsToFloat(R125i.x)));
R5i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].y),intBitsToFloat(R127i.w)) + intBitsToFloat(R126i.w)));
R7i.w = floatBitsToInt(1.0);
R1i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R0i.y)),intBitsToFloat(uf_remappedPS[2].x)) + intBitsToFloat(R0i.y)));
R1i.y = clampFI32(R1i.y);
PS0i = R1i.y;
// 21
R7i.x = R125i.w;
R7i.y = R127i.z;
R1i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R0i.z)),intBitsToFloat(uf_remappedPS[2].x)) + intBitsToFloat(R0i.z)));
R1i.z = clampFI32(R1i.z);
R5i.w = 0x3f800000;
R0i.x = floatBitsToInt((intBitsToFloat(R3i.x) * 0.5 + 0.5));
PS1i = R0i.x;
// 0
R0i.y = floatBitsToInt((intBitsToFloat(R3i.y) * 0.5 + 0.5));
R0i.z = floatBitsToInt((intBitsToFloat(R3i.z) * 0.5 + 0.5));
R0i.w = floatBitsToInt(intBitsToFloat(R8i.x) * intBitsToFloat(0x3b808081));
R1i.w = floatBitsToInt(intBitsToFloat(R9i.y) * intBitsToFloat(0x3b808081));
PS0i = R1i.w;
// 1
backupReg0i = R5i.x;
backupReg1i = R5i.y;
backupReg2i = R5i.z;
backupReg3i = R5i.w;
R5i.xyz = ivec3(backupReg0i,backupReg1i,backupReg2i);
R5i.w = backupReg3i;
// 2
R4i.xyz = ivec3(R0i.x,R0i.y,R0i.z);
R4i.w = R0i.w;
// 3
R3i.xyz = ivec3(R1i.x,R1i.y,R1i.z);
R3i.w = R1i.w;
// 4
R2i.xyz = ivec3(R7i.x,R7i.y,R7i.z);
R2i.w = R7i.w;
// export
passPixelColor0 = vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.w));
passPixelColor1 = vec4(intBitsToFloat(R3i.x), intBitsToFloat(R3i.y), intBitsToFloat(R3i.z), intBitsToFloat(R3i.w));
passPixelColor3 = vec4(intBitsToFloat(R4i.x), intBitsToFloat(R4i.y), intBitsToFloat(R4i.z), intBitsToFloat(R4i.w));
passPixelColor5 = vec4(intBitsToFloat(R5i.x), intBitsToFloat(R5i.y), intBitsToFloat(R5i.z), intBitsToFloat(R5i.w));
}

View File

@ -0,0 +1,55 @@
[Definition]
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
name = Guardian Turret & Skywatcher
path = "The Legend of Zelda: Breath of the Wild/Mods/Change Ancient Glow Color/Guardian Turret & Skywatcher"
description = Change Guardian Turret, Skywatcher's color. Originally it depends on whether it's corrupted by malice or not.
version = 3
[Preset]
name = Malice Red
$R = 0.85
$G = 0.029
$B = 0.15
$L_f = 1.0
[Preset]
name = Guardian Yellow
$R = 1.0
$G = 0.2
$B = 0.059
$L_f = 1.0
[Preset]
name = Guardian weapon Yellow
$R = 1.0
$G = 0.2
$B = 0.0
$L_f = 1.0
[Preset]
name = Ancient Orange
$R = 1.0
$G = 0.2
$B = 0.0006
$L_f = 1.0
[Preset]
name = Ancient weapon Orange
$R = 1.0
$G = 0.15
$B = 0.05
$L_f = 1.0
[Preset]
name = Energy Blue
$R = 0.03
$G = 0.25
$B = 1.0
$L_f = 1.0
[Preset]
name = Custom (Edit in rules.txt)
$R = 0.000
$G = 0.000
$B = 0.000
$L_f = 1.0

View File

@ -0,0 +1,11 @@
# Top half of the Guardian weapon is drawed with Scout shader while the bottom half is Skywatcher shader.
# Generally color is between 0-1 which is then multiplied by brightness (So Guardian can turn on/off)
# Guardian 50 (changing), Ancient armor 20, Ancient bow about 11
# Exception: Ancient sword, shield (20.0, 3.0, 1.0) use un-normalized color, with brightness being 1.0
# Equals to (1.0, 0.15, 0.05) with brightness 20
# Game control color & brightness with a uniform, so they can vary between objects (and through time) drawn with the same shader. It's hard to do this in Gfx pack.
# In theory You can add if condition to check for game's uniform value so you can change the color of a specific object without affecting others.
# Try converting custom color from gamma encoded to linear (color/255)^2.2 if it look slightly off in game.

View File

@ -1,8 +1,8 @@
[Definition]
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
name = "Pro+ HUD"
path = "The Legend of Zelda: Breath of the Wild/Mods/Pro+ HUD"
description = Removes the rest of the HUD that isn't removed by Pro.
name = "Remove all HUD elements"
path = "The Legend of Zelda: Breath of the Wild/Mods/HUD Remover (Pro HUD+)"
description = Hides the rest of the HUD that isn't removed by the Pro mod for e.g. screenshots.
version = 3
[TextureRedefine] # Disable Hearts

View File

@ -1,7 +1,7 @@
[Definition]
titleIds = 00050000101ECF00,00050000101F4A00
name = 60FPS
path = "Buddy and Me/Mods/60FPS"
path = "Buddy & Me/Mods/60FPS"
description = Important: This patches the gameplay to be in 60FPS. Getting under 60FPS will slow down the game's speed.
version = 3

View File

@ -5,16 +5,13 @@ moduleMatches = 0xB87B357B
_FrameRate = 0x100A151C
# Code Cave
CodeCaveSize = 0x0c # = Last used instruction + 0x04 (4xINSTRUCTIONS in HEX)
# Set 60fps
# Load 60 into f0 register
_60fps = 0x00000000
0x00000000 = lis r12,_FrameRate@h
0x00000004 = lfs f0,_FrameRate@l(r12)
0x00000008 = blr
0x021de6c8 = bla _60fps

View File

@ -1,4 +1,4 @@
[deusex60Ver0]
[DeusEx60Ver0]
moduleMatches = 0x4C83AF19
0x0234EA10 = li r3,1 #GX2SetSwapInterval

View File

@ -295,6 +295,7 @@ $gameWidth = 1280
$gameHeight = 720
$heightfix = 0
# All 720p textures:
# - 0x001=World Lighting Red8
# - 0x005=Link and Objects Depth
@ -312,7 +313,7 @@ $heightfix = 0
width = 1280
height = 720
formats = 0x001,0x005,0x007,0x019,0x01a,0x41a,0x80e,0x806,0x816,0x820
formatsExcluded = 0x008 # Game Load Opening Background Image
# formatsExcluded = 0x008 # Game Load Opening Background Image
tileModesExcluded = 0x001 # For Video Playback
overwriteWidth = ($width/$gameWidth)* 1280
overwriteHeight = ($height/$gameHeight)* 720
@ -322,7 +323,7 @@ overwriteHeight = ($height/$gameHeight)* 720
width = 864
height = 480
formats = 0x019
formatsExcluded = 0x034 # Exclude 0x034 which is used for large album thumbnails
# formatsExcluded = 0x034 # Exclude 0x034 which is used for large album thumbnails
overwriteWidth = ($width/$gameWidth)* 864
overwriteHeight = ($height/$gameHeight)* 480
@ -331,7 +332,7 @@ overwriteHeight = ($height/$gameHeight)* 480
width = 854
height = 480
formats = 0x019
formatsExcluded = 0x034 # Exclude 0x034 which is used for large album thumbnails
# formatsExcluded = 0x034 # Exclude 0x034 which is used for large album thumbnails
overwriteWidth = ($width/$gameWidth)* 854
overwriteHeight = ($height/$gameHeight)* 480
@ -350,7 +351,7 @@ overwriteHeight = ($height/$gameHeight)* 480
width = 640
height = 368
formats = 0x001,0x005,0x007,0x019,0x01a,0x80e,0x806,0x816,0x820,0x41a
formatsExcluded = 0x431 # Exclude 0x431 which is used for adventure log images
# formatsExcluded = 0x431 # Exclude 0x431 which is used for adventure log images
overwriteWidth = ($width/$gameWidth) * 640
overwriteHeight = (($height/$gameHeight) * 368) + $heightfix
@ -359,7 +360,7 @@ overwriteHeight = (($height/$gameHeight) * 368) + $heightfix
width = 640
height = 360
formats = 0x001,0x005,0x007,0x019,0x01a,0x80e,0x806,0x816,0x820,0x41a
formatsExcluded = 0x431
# formatsExcluded = 0x431
tileModesExcluded = 0x001 # For Video Playback
overwriteWidth = ($width/$gameWidth) * 640
overwriteHeight = ($height/$gameHeight) * 360
@ -412,21 +413,21 @@ formats = 0x001,0x005,0x007,0x806,0x80e,0x816
overwriteWidth = ($width/$gameWidth) * 160
overwriteHeight = ($height/$gameHeight) * 90
# Required 1/10 resolution
[TextureRedefine]
width = 128
height = 80
formats = 0x005,0x007,0x019,0x01a,0x80e,0x816,0x806,0x820,0x41a
overwriteWidth = ($width/$gameWidth) * 128
overwriteHeight = ($height/$gameHeight) * 80
# Required 1/10 resolution
[TextureRedefine]
width = 120
height = 75
formats = 0x005,0x007,0x019,0x01a,0x80e,0x816,0x806,0x820,0x41a
overwriteWidth = ($width/$gameWidth) * 120
overwriteHeight = ($height/$gameHeight) * 75
# 1/10 resolution; Break 960x540 background: ambient light, bloom
#
# [TextureRedefine]
# width = 128
# height = 80
# formats = 0x005,0x007,0x019,0x01a,0x80e,0x816,0x806,0x820,0x41a
# overwriteWidth = ($width/$gameWidth) * 128
# overwriteHeight = ($height/$gameHeight) * 80
#
# [TextureRedefine]
# width = 120
# height = 75
# formats = 0x005,0x007,0x019,0x01a,0x80e,0x816,0x806,0x820,0x41a
# overwriteWidth = ($width/$gameWidth) * 120
# overwriteHeight = ($height/$gameHeight) * 75
# Required Fogs and Dust
[TextureRedefine]
@ -522,7 +523,7 @@ tilemodes = 4
overwriteWidth = ($width/$gameWidth) * 64
overwriteHeight = ($height/$gameHeight) * 32
[TextureRedefine]
[TextureRedefine] # catches cubemap! 32x32, 16x16
width = 32
height = 16
depth = 1
@ -717,3 +718,109 @@ formats = 0x019
overwriteFormat = 0x01f
overwriteWidth = ($width/$gameWidth) * 110
overwriteHeight = ($height/$gameHeight) * 720
# Fix texture cache's mismatch warnings
[TextureRedefine] # 1280x720; Map: travel confirm menu background blur
width = 1280
height = 288
depth = 1
formats = 0x19
tilemodes = 4
overwriteWidth = ($width/$gameWidth) * 1280
overwriteHeight = ($height/$gameHeight) * 288
[TextureRedefine] # same as above
width = 1280
height = 278
depth = 1
formats = 0x19
tilemodes = 4
overwriteWidth = ($width/$gameWidth) * 1280
overwriteHeight = ($height/$gameHeight) * 278
[TextureRedefine] # 640x360 mip 1; Scope dof close-up depth
width = 512
height = 256
depth = 1
formats = 0x1
tilemodes = 4
overwriteWidth = ($width/$gameWidth) * 512
overwriteHeight = ($height/$gameHeight) * 256
[TextureRedefine] # 640x360 mip 2; same as above
width = 256
height = 128
depth = 1
formats = 0x1
tilemodes = 4
overwriteWidth = ($width/$gameWidth) * 256
overwriteHeight = ($height/$gameHeight) * 128
# Uncomment if HUD setting is Pro
# [TextureRedefine] # 640x360 mip 3; Designated level for dof processing. breaks sound wave HUD
# width = 128
# height = 64
# depth = 1
# formats = 0x1
# tilemodes = 4
# overwriteWidth = ($width/$gameWidth) * 128
# overwriteHeight = ($height/$gameHeight) * 64
[TextureRedefine] # 320x180; Blur on center piece of the map. not used at the moment of the capture
width = 293
height = 185
depth = 1
formats = 0x1a
tilemodes = 4
overwriteWidth = ($width/$gameWidth) * 293
overwriteHeight = ($height/$gameHeight) * 185
# [TextureRedefine] # 128x64; Fix sound HUD, breaks icons and teleport strips
# width = 64
# height = 64
# depth = 1
# formats = 0x1
# tilemodes = 4
# overwriteWidth = ($width/$gameWidth) * 64
# overwriteHeight = ($height/$gameHeight) * 64
# Resize letters box: Subtitle
[TextureRedefine]
width = 512
height = 96
depth = 1
formats = 0x1a
tilemodes = 4
overwriteWidth = ($width/$gameWidth) * 512
overwriteHeight = ($height/$gameHeight) * 96
[TextureRedefine]
width = 500
height = 94
depth = 1
formats = 0x1a
tilemodes = 4
overwriteWidth = ($width/$gameWidth) * 500
overwriteHeight = ($height/$gameHeight) * 94
# Resize letters box: pop up message
[TextureRedefine]
width = 480
height = 32
depth = 1
formats = 0x1a
tilemodes = 4
overwriteWidth = ($width/$gameWidth) * 480
overwriteHeight = ($height/$gameHeight) * 32
[TextureRedefine]
width = 464
height = 28
depth = 1
formats = 0x1a
tilemodes = 4
overwriteWidth = ($width/$gameWidth) * 464
overwriteHeight = ($height/$gameHeight) * 28

View File

@ -0,0 +1,92 @@
#version 420
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#extension GL_ARB_shading_language_packing : enable
// shader 161904c2816b059d
// Used for: Horizontal & Vertical Bloom Blur Pass
float resScale = ($width/$gameWidth);
uniform ivec4 uf_remappedVS[5];
uniform vec2 uf_windowSpaceToClipSpaceTransform;
layout(location = 0) in uvec4 attrDataSem0;
layout(location = 1) in uvec4 attrDataSem8;
out gl_PerVertex
{
vec4 gl_Position;
float gl_PointSize;
};
layout(location = 0) out vec4 passParameterSem129;
layout(location = 1) out vec4 passParameterSem130;
layout(location = 2) out vec4 passParameterSem131;
layout(location = 3) out vec4 passParameterSem132;
layout(location = 4) 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){return mix(0.0, a*b, (a != 0.0) && (b != 0.0));}
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);
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.xy = attrDataSem8.xy;
attrDecoder.xy = (attrDecoder.xy>>24)|((attrDecoder.xy>>8)&0xFF00)|((attrDecoder.xy<<8)&0xFF0000)|((attrDecoder.xy<<24));
attrDecoder.z = 0;
attrDecoder.w = 0;
R1f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(floatBitsToInt(0.0)), intBitsToFloat(floatBitsToInt(1.0)));
// 0
R0f.xyz = vec3(R1f.x,R1f.y,R1f.y) + vec3(intBitsToFloat(uf_remappedVS[0].x),intBitsToFloat(uf_remappedVS[0].y),intBitsToFloat(uf_remappedVS[0].z));
R0f.w = R1f.x + intBitsToFloat(uf_remappedVS[0].w)/resScale;
// 1
R3f.xyz = vec3(R1f.x,R1f.y,R1f.y) + vec3(intBitsToFloat(uf_remappedVS[1].x),intBitsToFloat(uf_remappedVS[1].y),intBitsToFloat(uf_remappedVS[1].z));
R3f.w = R1f.x + intBitsToFloat(uf_remappedVS[1].w)/resScale;
// 2
R4f.xyz = vec3(R1f.x,R1f.y,R1f.y) + vec3(intBitsToFloat(uf_remappedVS[2].x),intBitsToFloat(uf_remappedVS[2].y),intBitsToFloat(uf_remappedVS[2].z));
R4f.w = R1f.x + intBitsToFloat(uf_remappedVS[2].w)/resScale;
// 3
R5f.xyz = vec3(R1f.x,R1f.y,R1f.y) + vec3(intBitsToFloat(uf_remappedVS[3].x),intBitsToFloat(uf_remappedVS[3].y),intBitsToFloat(uf_remappedVS[3].z));
R5f.w = R1f.x + intBitsToFloat(uf_remappedVS[3].w)/resScale;
// 4
backupReg0f = R1f.x;
backupReg1f = R1f.y;
backupReg1f = R1f.y;
backupReg0f = R1f.x;
R1f.xyz = vec3(backupReg0f,backupReg1f,backupReg1f) + vec3(intBitsToFloat(uf_remappedVS[4].x),intBitsToFloat(uf_remappedVS[4].y),intBitsToFloat(uf_remappedVS[4].z));
R1f.w = backupReg0f + intBitsToFloat(uf_remappedVS[4].w)/resScale;
// export
gl_Position = vec4(R2f.x, R2f.y, R2f.z, R2f.w);
// export
passParameterSem129 = vec4(R0f.x, R0f.y, R0f.z, R0f.w);
// export
passParameterSem130 = vec4(R3f.x, R3f.y, R3f.z, R3f.w);
// export
passParameterSem131 = vec4(R4f.x, R4f.y, R4f.z, R4f.w);
// export
passParameterSem132 = vec4(R5f.x, R5f.y, R5f.z, R5f.w);
// export
passParameterSem133 = vec4(R1f.x, R1f.y, R1f.z, R1f.w);
// 0
}

View File

@ -0,0 +1,108 @@
#version 420
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
// shader 888e5d95da8037e2
// Used for: Horizontal & Vertical Blur Pass
float resScale = ($width/$gameWidth);
uniform ivec4 uf_remappedPS[1];
uniform vec2 uf_fragCoordScale;
layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0x15c36000 res 320x180x1 dim 1 tm: 4 format 0810 compSel: 0 1 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 0
layout(location = 0) in vec4 passParameterSem129;
layout(location = 0) out vec4 passPixelColor0;
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 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 = passParameterSem129;
R3f.xy = (texture(textureUnitPS0, R0f.xy).xy);
// 0
R1f.x = (-(intBitsToFloat(uf_remappedPS[0].z)/resScale) * 2.0 + R0f.x);
R1f.y = (-(intBitsToFloat(uf_remappedPS[0].w)/resScale) * 2.0 + R0f.y);
R0f.z = R0f.x + -(intBitsToFloat(uf_remappedPS[0].z)/resScale);
R0f.w = R0f.y + -(intBitsToFloat(uf_remappedPS[0].w)/resScale);
R2f.x = R0f.x + intBitsToFloat(uf_remappedPS[0].z)/resScale;
PS0f = R2f.x;
// 1
R2f.y = R0f.y + intBitsToFloat(uf_remappedPS[0].w)/resScale;
R4f.z = 0.0;
R1f.w = R3f.y + -(R3f.y);
R4f.y = R3f.y;
PS1f = R4f.y;
R0f.xy = (texture(textureUnitPS0, R1f.xy).xy);
R1f.xy = (texture(textureUnitPS0, R0f.zw).xy);
R2f.xy = (texture(textureUnitPS0, R2f.xy).xy);
// 0
PV0f.x = mul_nonIEEE(R1f.w, R1f.w);
PV0f.z = -(R3f.y) + R0f.y;
PV0f.w = -(R3f.y) + R1f.y;
// 1
PV1f.x = -(R3f.y) + R2f.y;
PV1f.y = mul_nonIEEE(PV0f.z, PV0f.z);
PV1f.z = mul_nonIEEE(PV0f.w, PV0f.w);
PV1f.w = PV0f.x * intBitsToFloat(0x38d1b717);
PV1f.w = clamp(PV1f.w, 0.0, 1.0);
// 2
PV0f.x = PV1f.y * intBitsToFloat(0x38d1b717);
PV0f.x = clamp(PV0f.x, 0.0, 1.0);
PV0f.y = PV1f.z * intBitsToFloat(0x38d1b717);
PV0f.y = clamp(PV0f.y, 0.0, 1.0);
PV0f.z = mul_nonIEEE(PV1f.x, PV1f.x);
PV0f.w = -(PV1f.w) + 1.0;
// 3
PV1f.x = -(PV0f.y) + 1.0;
PV1f.y = PV0f.z * intBitsToFloat(0x38d1b717);
PV1f.y = clamp(PV1f.y, 0.0, 1.0);
R126f.z = PV0f.w + intBitsToFloat(0x3e4ccccd);
PV1f.w = -(PV0f.x) + 1.0;
// 4
PV0f.x = -(PV1f.y) + 1.0;
R127f.z = PV1f.w + intBitsToFloat(0x3e4ccccd);
PV0f.z = R127f.z;
PV0f.w = PV1f.x + intBitsToFloat(0x3e4ccccd);
// 5
R127f.x = PV0f.x + intBitsToFloat(0x3e4ccccd);
PV1f.y = mul_nonIEEE(R1f.x, PV0f.w);
PV1f.z = PV0f.z + PV0f.w;
// 6
R123f.x = (mul_nonIEEE(R0f.x,R127f.z) + PV1f.y);
PV0f.x = R123f.x;
PV0f.z = PV1f.z + R126f.z;
// 7
PV1f.x = PV0f.z + R127f.x;
R123f.w = (mul_nonIEEE(R3f.x,R126f.z) + PV0f.x);
PV1f.w = R123f.w;
// 8
R123f.y = (mul_nonIEEE(R2f.x,R127f.x) + PV1f.w);
PV0f.y = R123f.y;
PS0f = 1.0 / PV1f.x;
// 9
R4f.x = PV0f.y * PS0f;
// export
passPixelColor0 = vec4(R4f.x, R4f.y, R4f.z, R4f.z);
}

View File

@ -0,0 +1,144 @@
[Definition]
titleIds = 0005000010177600,0005000010177700,0005000010197d00
name = Resolution
path = "Devil's Third/Graphics/Resolution"
description = Changes the resolution of the game.
version = 3
[Preset]
name = 1280x720 (Default)
$width = 1280
$height = 720
$gameWidth = 1280
$gameHeight = 720
// Performance
[Preset]
name = 320x180
$width = 320
$height = 180
$gameWidth = 1280
$gameHeight = 720
[Preset]
name = 640x360
$width = 640
$height = 360
$gameWidth = 1280
$gameHeight = 720
[Preset]
name = 960x540
$width = 960
$height = 540
$gameWidth = 1280
$gameHeight = 720
// Common HD Resolutions
[Preset]
name = 1600x900
$width = 1600
$height = 900
$gameWidth = 1280
$gameHeight = 720
[Preset]
name = 1920x1080
$width = 1920
$height = 1080
$gameWidth = 1280
$gameHeight = 720
[Preset]
name = 2560x1440
$width = 2560
$height = 1440
$gameWidth = 1280
$gameHeight = 720
[Preset]
name = 3200x1800
$width = 3200
$height = 1800
$gameWidth = 1280
$gameHeight = 720
[Preset]
name = 3840x2160
$width = 3840
$height = 2160
$gameWidth = 1280
$gameHeight = 720
[Preset]
name = 5120x2880
$width = 5120
$height = 2880
$gameWidth = 1280
$gameHeight = 720
[TextureRedefine]
width = 1280
height = 720
formats = 0x011,0x820,0x01a,0x41a
tileModesExcluded = 0x1
overwriteWidth = ($width/$gameWidth) * 1280
overwriteHeight = ($height/$gameHeight) * 720
[TextureRedefine]
width = 864
height = 480
formats = 0x820
overwriteWidth = ($width/$gameWidth) * 864
overwriteHeight = ($height/$gameHeight) * 480
# Blur
[TextureRedefine]
width = 320
height = 180
formats = 0x810,0x820
overwriteWidth = ($width/$gameWidth) * 320
overwriteHeight = ($height/$gameHeight) * 180
[TextureRedefine]
width = 320
height = 192
formats = 0x810
overwriteWidth = ($width/$gameWidth) * 320
overwriteHeight = ($height/$gameHeight) * 192
# Bloom
[TextureRedefine]
width = 640
height = 368
formats = 0x820
overwriteWidth = ($width/$gameWidth) * 640
overwriteHeight = ($height/$gameHeight) * 368
[TextureRedefine]
width = 640
height = 360
formats = 0x820
tileModesExcluded = 0x1
overwriteWidth = ($width/$gameWidth) * 640
overwriteHeight = ($height/$gameHeight) * 360
# Bloom looked broken from my testing (not using the tiled rendering fix or whatever it's called), but it might be a shader that didn't get upscaled correctly.
[TextureRedefine]
width = 352
height = 192
formats = 0x820
overwriteWidth = ($width/$gameWidth) * 352
overwriteHeight = ($height/$gameHeight) * 192
[TextureRedefine]
width = 322
height = 182
formats = 0x820
overwriteWidth = ($width/$gameWidth) * 322
overwriteHeight = ($height/$gameHeight) * 182

View File

@ -83,7 +83,7 @@
"Devils Third":
nativeRes: 720
compatLink: "http://compat.cemu.info/wiki/Devil%27s_Third"
version: 2
version: 3
"Donkey Kong Country: Tropical Freeze":
nativeRes: 720
compatLink: "http://compat.cemu.info/wiki/Donkey_Kong_Country:_Tropical_Freeze"