diff --git a/Enhancements/NewSuperMarioBrosU_FancyFX/rules.txt b/Enhancements/NewSuperMarioBrosU_FancyFX/rules.txt deleted file mode 100644 index 38917b46..00000000 --- a/Enhancements/NewSuperMarioBrosU_FancyFX/rules.txt +++ /dev/null @@ -1,43 +0,0 @@ -[Definition] -titleIds = 0005000010101D00,0005000010101E00,000500001014B700,000500001014B800,0005000010101C00,0005000010142300,0005000010142400,0005000010142200 -name = Resolution -path = "New Super Mario Bros. U/Enhancements/Fancy FX" #and luigi -description = Pretty blur, de-band sky, re-align cinematic etc, maintained on Nvidia. -version = 4 - - -[Preset] -name = 2560x1440 (Native x2) -$internalRes = 1.0 -$dither = 0.1 -$scaleShader = 1.0 -$scaleBlur = 0.5 - -[Preset] -name = 1920x1080 (HD) -$internalRes = 1 -$dither = 0.15 -$scaleShader = 1.0 -$scaleBlur = 0.25 - -[Preset] -name = 3840x2160 (4k - Native x3) -$internalRes = 1 -$dither = 0.2 -$scaleShader = 1.0 -$scaleBlur = 1.0 - - -[TextureRedefine] -width = 1280 -height = 720 -formats = 0x001 -overwriteFormat = 0x005 - -[TextureRedefine] -width = 1280 -height = 720 -formats = 0x01a -overwriteFormat = 0x01f - - diff --git a/Resolutions/NewSuperMarioBrosU_Resolution/_03285368cf940e37_0000000000000079_ps.txt b/Resolutions/NewSuperMarioBrosU_Resolution/_03285368cf940e37_0000000000000079_ps.txt deleted file mode 100644 index 0d31dd7b..00000000 --- a/Resolutions/NewSuperMarioBrosU_Resolution/_03285368cf940e37_0000000000000079_ps.txt +++ /dev/null @@ -1,107 +0,0 @@ -#version 420 -#extension GL_ARB_texture_gather : enable -#extension GL_ARB_separate_shader_objects : enable -// shader 03285368cf940e37 //box bg - -//float dither = $dither ; -//float scaleShader = $scaleShader; -float scaleBlur = ($scaleBlur); //0.25 4k -int sampleScale = 2; -//float lightBloom = 0.95; - - -layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf4240800 res 1280x720x1 dim 1 tm: 4 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 1 -layout(location = 0) in vec4 passParameterSem3; -layout(location = 0) out vec4 passPixelColor0; -uniform vec2 uf_fragCoordScale; - -// FabriceNeyret2 CC, single shader gaussian by intermediate MIPmap level. www.shadertoy.com/view/ltScRG -const int samples = 8 * sampleScale, //8 or 4 balances xy position -LOD = 2, // gaussian done on MIPmap at scale LOD -sLOD = 1 << LOD; // tile size = 2^LOD -const float sigma = float(samples) * .25; - -float gaussian(vec2 i) { - return exp(-.5* dot(i /= sigma, i)) / (6.28 * sigma*sigma); -} - -vec4 blur(sampler2D sp, vec2 U, vec2 scale) { - vec4 O = vec4(0.0); - int s = samples / sLOD; - - for (int i = 0; i < s*s; i++) { - vec2 d = vec2(i%s, i / s)*float(sLOD) - float(samples) / 2.; - O += gaussian(d) * textureLod(sp, U + scale * d, float(LOD)); - } - - //O / O.a; - return vec4(O.x, O.y, O.z, 0.0)*17; //16 exact, 17 ~ a touch more haze to compensate res increase -} - -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 R123f = 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 = passParameterSem3; - -vec2 coord = passParameterSem3.xy*textureSize(textureUnitPS0, 0); // -vec2 ps = vec2(1.0) / textureSize(textureUnitPS0, 0); -vec2 uv = coord * ps; - -R1f.xyz = blur(textureUnitPS0, R0f.xy, ps*scaleBlur).xyz; -R2f.xyz = R1f.xyz; -R3f.xyz = R1f.xyz; -R0f.xyz = R1f.xyz; -/* -R1f.xyz = (texture(textureUnitPS0, R0f.xy).xyz); -R2f.xyz = (texture(textureUnitPS0, R0f.zy).xyz); -R3f.xyz = (texture(textureUnitPS0, R0f.xw).xyz); -R0f.xyz = (texture(textureUnitPS0, R0f.zw).xyz); -*/ - -// 0 -PV0f.x = R1f.z + R2f.z; -PV0f.x /= 2.0; -PV0f.z = R1f.y + R2f.y; -PV0f.z /= 2.0; -PV0f.w = R1f.x + R2f.x; -PV0f.w /= 2.0; -// 1 -R123f.x = (R3f.y * 0.5 + PV0f.z); -PV1f.x = R123f.x; -R123f.y = (R3f.x * 0.5 + PV0f.w); -PV1f.y = R123f.y; -R123f.w = (R3f.z * 0.5 + PV0f.x); -PV1f.w = R123f.w; -// 2 -backupReg0f = R0f.x; -backupReg1f = R0f.y; -backupReg2f = R0f.z; -R0f.x = (backupReg0f * 0.5 + PV1f.y)/2.0; -R0f.y = (backupReg1f * 0.5 + PV1f.x)/2.0; -R0f.z = (backupReg2f * 0.5 + PV1f.w)/2.0; -// export -passPixelColor0 = vec4(R0f.x, R0f.y, R0f.z, R0f.w); -} diff --git a/Resolutions/NewSuperMarioBrosU_Resolution/rules.txt b/Resolutions/NewSuperMarioBrosU_Resolution/rules.txt deleted file mode 100644 index 872b6f76..00000000 --- a/Resolutions/NewSuperMarioBrosU_Resolution/rules.txt +++ /dev/null @@ -1,251 +0,0 @@ -[Definition] -titleIds = 0005000010101D00,0005000010101E00,000500001014B700,000500001014B800,0005000010101C00,0005000010142300,0005000010142400,0005000010142200 -name = Resolution -path = "New Super Mario Bros. U/Graphics/Resolution" #and luigi -description = Changes the resolution of the game. Made by getdls. -version = 4 - -//compatible resolutions -[Preset] -name = 1280x720 (Default) -$width = 1280 -$height = 720 -$gameWidth = 1280 -$gameHeight = 720 -$internalRes = 1 -$dither = 0.01 -$scaleShader = 1.0 -$scaleBlur = 0.05 - -[Preset] -name = 640x360 -$width = 640 -$height = 360 -$gameWidth = 1280 -$gameHeight = 720 -$internalRes = 1 -$dither = 0.01 -$scaleShader = 0.5 -$scaleBlur = 0.0 - -// Quality - -[Preset] -name = 1920x1080 (HD) -$width = 1920 -$height = 1080 -$gameWidth = 1280 -$gameHeight = 720 -$internalRes = 1 -$dither = 0.15 -$scaleShader = 1.0 -$scaleBlur = 0.25 - -[Preset] -name = 1600x900 -$width = 1600 -$height = 900 -$gameWidth = 1280 -$gameHeight = 720 -$internalRes = 1 -$dither = 0.1 -$scaleShader = 1.0 -$scaleBlur = 0.25 - -[Preset] -name = 2560x1440 (Native x2) -$width = 2560 -$height = 1440 -$gameWidth = 1280 -$gameHeight = 720 -$internalRes = 1.5 -$dither = 0.1 -$scaleShader = 1.0 -$scaleBlur = 0.5 - -[Preset] -name = 3200x1800 -$width = 3200 -$height = 1800 -$gameWidth = 1280 -$gameHeight = 720 -$internalRes = 1 -$dither = 0.2 -$scaleShader = 1.0 -$scaleBlur = 0.75 - -[Preset] -name = 3840x2160 (4k - Native x3) -$width = 3840 -$height = 2160 -$gameWidth = 1280 -$gameHeight = 720 -$internalRes = 1 -$dither = 0.2 -$scaleShader = 1.0 -$scaleBlur = 1.0 - -[Preset] -name = 5120x2880 -$width = 5120 -$height = 2880 -$gameWidth = 1280 -$gameHeight = 720 -$internalRes = 1 -$dither = 0.25 -$scaleShader = 1.0 -$scaleBlur = 1.0 -// Enthusiast - -[Preset] -name = 7680x4320 -$width = 7680 -$height = 4320 -$gameWidth = 1280 -$gameHeight = 720 -$internalRes = 1 -$dither = 0.25 -$scaleShader = 1.0 -$scaleBlur = 1.0 - -[Preset] -name = 10240x5760 -$width = 10240 -$height = 5760 -$gameWidth = 1280 -$gameHeight = 720 -$internalRes = 1 -$dither = 0.25 -$scaleShader = 1.0 -$scaleBlur = 1.0 - -#[TextureRedefine] # Tile map, dont scale -#width = 2048 -#height = 512 - -[TextureRedefine] -width = 1280 -height = 720 -#formats = 0x80e,0x01a,0x001 -tileModesExcluded = 0x001 -overwriteWidth = ($width/$gameWidth) * 1280 -overwriteHeight = ($height/$gameHeight) * 720 - -[TextureRedefine] #map shadows -width = 1024 -height = 1024 -formats = 0x005 -overwriteWidth = ($height/$gameHeight) * 1024 -overwriteHeight = ($height/$gameHeight) * 1024 - -[TextureRedefine] #Pad -width = 864 -height = 480 -#formats = 0x01a -overwriteWidth = ($width/$gameWidth) * 864 -overwriteHeight = ($height/$gameHeight) * 480 - -[TextureRedefine] #Pad -width = 854 -height = 480 -#formats = 0x01a -overwriteWidth = ($width/$gameWidth) * 854 -overwriteHeight = ($height/$gameHeight) * 480 - -[TextureRedefine] #Horizon blur -width = 640 -height = 368 -#formats = 0x01a -overwriteWidth = ($width/$gameWidth) * 640 -overwriteHeight = ($height/$gameHeight) * 368 - -[TextureRedefine] #Horizon blur -width = 640 -height = 360 -#formats = 0x01a -tileModesExcluded = 0x001 -overwriteWidth = ($width/$gameWidth) * 640 -overwriteHeight = ($height/$gameHeight) * 360 - -[TextureRedefine] -width = 512 -height = 256 -formats = 0x01a -overwriteWidth = ($width/$gameWidth) * 512 -overwriteHeight = ($height/$gameHeight) * 256 - -[TextureRedefine] -width = 256 -height = 128 -formats = 0x01a -overwriteWidth = ($width/$gameWidth) * 256 -overwriteHeight = ($height/$gameHeight) * 128 - -[TextureRedefine] -width = 320 -height = 180 -#formatsExcluded = -overwriteWidth = ($width/$gameWidth) * 320 -overwriteHeight = ($height/$gameHeight) * 180 - - -[TextureRedefine] -width = 320 -height = 180 -#formatsExcluded = -overwriteWidth = ($width/$gameWidth) * 320 -overwriteHeight = ($height/$gameHeight) * 180 - -[TextureRedefine] -width = 160 -height = 208 -#formats = 0x80e,0x01a -overwriteWidth = ($width/$gameWidth) * 160 -overwriteHeight = ($height/$gameHeight) * 208 - -[TextureRedefine] #portraits -width = 160 -height = 196 -#formats = 0x80e,0x01a -formatsExcluded = 0x033 -overwriteWidth = ($width/$gameWidth) * 160 -overwriteHeight = ($height/$gameHeight) * 196 - -[TextureRedefine] -width = 160 -height = 90 -#formatsExcluded = -overwriteWidth = ($width/$gameWidth) * 160 -overwriteHeight = ($height/$gameHeight) * 90 - -[TextureRedefine] -width = 128 -height = 64 -formats = 0x01a -overwriteWidth = ($width/$gameWidth) * 128 -overwriteHeight = ($height/$gameHeight) * 64 - -[TextureRedefine] -width = 64 -height = 32 -formats = 0x01a -overwriteWidth = ($width/$gameWidth) * 64 -overwriteHeight = ($height/$gameHeight) * 32 - -[TextureRedefine] -width = 32 -height = 16 -formats = 0x01a -overwriteWidth = ($width/$gameWidth) * 32 -overwriteHeight = ($height/$gameHeight) * 16 - -## Gradient don't scale -#width = 48 -#height = 48 - -#[TextureRedefine] -#width = 1 -#height = 1 -#formatsExcluded = -#overwriteWidth = ($width/$gameWidth) * 1 -#overwriteHeight = ($height/$gameHeight) * 1 diff --git a/Workarounds/NewSuperMarioBrosU_CrashFix/patches.txt b/Workarounds/NewSuperMarioBrosU_CrashFix/patches.txt deleted file mode 100644 index 1c55d784..00000000 --- a/Workarounds/NewSuperMarioBrosU_CrashFix/patches.txt +++ /dev/null @@ -1,25 +0,0 @@ -[NSMBU+LUv0] -moduleMatches = 0x1049CED8, 0x777D7B44 - -#remove check for mii data -0x024D7394 = b .+0xE8 - -[NSMBUv64USv80EU] -moduleMatches = 0x6CAEA914, 0xFA29C89F - -#remove check for mii data -0x024D71C4 = b .+0xE8 - -[NSMBUv0USv0EU] -moduleMatches = 0xA7A5ECF1, 0xC7B938AD - -#remove check for mii data -0x024BDE70 = b .+0xE8 - -[NSLUv0EU] -moduleMatches = 0xA3705C0B - -#remove check for mii data -0x024D7158 = b .+0xE8 - -#Note for future versions take the crash log and get the module checksum from the user. Subtract 0x7c from the link register in the crash log to be the address we patch. diff --git a/src/BreathOfTheWild/Mods/Fog/2e2543216c04766d_0000000079249749_ps.txt b/src/BreathOfTheWild/Mods/Fog/2e2543216c04766d_0000000079249749_ps.txt new file mode 100644 index 00000000..c801b21b --- /dev/null +++ b/src/BreathOfTheWild/Mods/Fog/2e2543216c04766d_0000000079249749_ps.txt @@ -0,0 +1,705 @@ +#version 430 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +// shader 2e2543216c04766d +// Used for: Fog Around Water + +float fogOpacity = float($waterFogOpacity); +float fogRed = float($waterFogOpacity); +float fogGreen = float($waterFogOpacity); +float fogBlue = float($waterFogOpacity); + +// start of shader inputs/outputs, predetermined by Cemu. Do not touch +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +#ifdef VULKAN +layout(set = 1, binding = 9) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[14]; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[14]; +uniform vec2 uf_fragCoordScale; +#endif +TEXTURE_LAYOUT(1, 1, 0) uniform sampler2D textureUnitPS1; +TEXTURE_LAYOUT(2, 1, 1) uniform sampler2D textureUnitPS2; +TEXTURE_LAYOUT(4, 1, 2) uniform sampler2D textureUnitPS4; +TEXTURE_LAYOUT(6, 1, 3) uniform sampler2D textureUnitPS6; +TEXTURE_LAYOUT(7, 1, 4) uniform sampler2D textureUnitPS7; +TEXTURE_LAYOUT(8, 1, 5) uniform samplerCubeArray textureUnitPS8; +TEXTURE_LAYOUT(10, 1, 6) uniform sampler2DArray textureUnitPS10; +TEXTURE_LAYOUT(11, 1, 7) uniform sampler2D textureUnitPS11; +TEXTURE_LAYOUT(13, 1, 8) uniform sampler2D textureUnitPS13; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem4; +layout(location = 2) in vec4 passParameterSem6; +layout(location = 0) out vec4 passPixelColor0; +// end of shader inputs/outputs +void redcCUBE(vec4 src0, vec4 src1, out vec3 stm, out int faceId) +{ +// stm -> x .. s, y .. t, z .. MajorAxis*2.0 +vec3 inputCoord = normalize(vec3(src1.y, src1.x, src0.x)); +float rx = inputCoord.x; +float ry = inputCoord.y; +float rz = inputCoord.z; +if( abs(rx) > abs(ry) && abs(rx) > abs(rz) ) +{ +stm.z = rx*2.0; +stm.xy = vec2(ry,rz); +if( rx >= 0.0 ) +{ +faceId = 0; +} +else +{ +faceId = 1; +} +} +else if( abs(ry) > abs(rx) && abs(ry) > abs(rz) ) +{ +stm.z = ry*2.0; +stm.xy = vec2(rx,rz); +if( ry >= 0.0 ) +{ +faceId = 2; +} +else +{ +faceId = 3; +} +} +else //if( abs(rz) > abs(ry) && abs(rz) > abs(rx) ) +{ +stm.z = rz*2.0; +stm.xy = vec2(rx,ry); +if( rz >= 0.0 ) +{ +faceId = 4; +} +else +{ +faceId = 5; +} +} +} +vec3 redcCUBEReverse(vec2 st, int faceId) +{ +st.yx = st.xy; +vec3 v; +float majorAxis = 1.0; +if( faceId == 0 ) +{ +v.yz = (st-vec2(1.5))*(majorAxis*2.0); +v.x = 1.0; +} +else if( faceId == 1 ) +{ +v.yz = (st-vec2(1.5))*(majorAxis*2.0); +v.x = -1.0; +} +else if( faceId == 2 ) +{ +v.xz = (st-vec2(1.5))*(majorAxis*2.0); +v.y = 1.0; +} +else if( faceId == 3 ) +{ +v.xz = (st-vec2(1.5))*(majorAxis*2.0); +v.y = -1.0; +} +else if( faceId == 4 ) +{ +v.xy = (st-vec2(1.5))*(majorAxis*2.0); +v.z = 1.0; +} +else +{ +v.xy = (st-vec2(1.5))*(majorAxis*2.0); +v.z = -1.0; +} +return v; +} +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R7i = ivec4(0); +ivec4 R8i = ivec4(0); +ivec4 R9i = ivec4(0); +ivec4 R10i = ivec4(0); +ivec4 R11i = ivec4(0); +ivec4 R12i = ivec4(0); +ivec4 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; +float cubeMapArrayIndex8 = 0.0; +R0i = floatBitsToInt(passParameterSem0); +R1i = floatBitsToInt(passParameterSem4); +R2i = floatBitsToInt(passParameterSem6); +R3i.w = floatBitsToInt(texture(textureUnitPS4, intBitsToFloat(R0i.xy)).x); +R6i.xyzw = floatBitsToInt(texture(textureUnitPS2, intBitsToFloat(R2i.zw)).xyzw); +R4i.xyzw = floatBitsToInt(textureGather(textureUnitPS6, vec2(0.0001) + intBitsToFloat(R0i.xy)).xyzw); +R5i.xyzw = floatBitsToInt(textureGather(textureUnitPS7, vec2(0.0001) + intBitsToFloat(R0i.xy)).xyzw); +R7i.xyzw = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R2i.zw)).xyzw); +// 0 +R126i.x = floatBitsToInt((intBitsToFloat(R6i.x) * 2.0 + -(1.0))); +R127i.y = floatBitsToInt((intBitsToFloat(R6i.y) * 2.0 + -(1.0))); +R127i.z = floatBitsToInt((intBitsToFloat(R6i.z) * 2.0 + -(1.0))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.w),intBitsToFloat(uf_remappedPS[0].x)) + intBitsToFloat(uf_remappedPS[1].x))); +PV0i.w = R123i.w; +R126i.z = floatBitsToInt(-(intBitsToFloat(R3i.w)) + intBitsToFloat(R4i.x)); +PS0i = R126i.z; +// 1 +R2i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), -(intBitsToFloat(PV0i.w)))); +PV1i.x = R2i.x; +R2i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), -(intBitsToFloat(PV0i.w)))); +PV1i.y = R2i.y; +R124i.z = floatBitsToInt(-(intBitsToFloat(PV0i.w))); +PV1i.z = R124i.z; +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(uf_remappedPS[2].y))); +R125i.x = floatBitsToInt(-(intBitsToFloat(R3i.w)) + intBitsToFloat(R4i.y)); +PS1i = R125i.x; +// 2 +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; +R2i.z = floatBitsToInt(1.0 / intBitsToFloat(PV1i.w)); +PS0i = R2i.z; +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R126i.x),intBitsToFloat(R127i.y),intBitsToFloat(R127i.z),-0.0),vec4(intBitsToFloat(R126i.x),intBitsToFloat(R127i.y),intBitsToFloat(R127i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R127i.x = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x))); +PS1i = R127i.x; +// 4 +R124i.x = floatBitsToInt(intBitsToFloat(R2i.x) + -(intBitsToFloat(uf_remappedPS[3].x))); +R126i.y = floatBitsToInt(intBitsToFloat(R2i.y) + -(intBitsToFloat(uf_remappedPS[3].y))); +R125i.z = floatBitsToInt(intBitsToFloat(R124i.z) + -(intBitsToFloat(uf_remappedPS[3].z))); +R125i.w = floatBitsToInt(intBitsToFloat(PS1i) + intBitsToFloat(0x43480000)); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x)); +PS0i = floatBitsToInt(tempResultf); +// 5 +R10i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PS0i))); +R10i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PS0i))); +R11i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PS0i))); +R127i.w = R2i.z; +R127i.w = floatBitsToInt(intBitsToFloat(R127i.w) * 2.0); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(R127i.x)); +// 6 +R11i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(PS1i))); +PV0i.x = R11i.x; +R11i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(PS1i))); +PV0i.y = R11i.y; +R12i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.z), intBitsToFloat(PS1i))); +PV0i.z = R12i.z; +R126i.w = floatBitsToInt(-(intBitsToFloat(R3i.w)) + intBitsToFloat(R4i.z)); +R127i.y = floatBitsToInt(-(intBitsToFloat(R3i.w)) + intBitsToFloat(R4i.w)); +PS0i = R127i.y; +// 7 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R10i.x),intBitsToFloat(R10i.y),intBitsToFloat(R11i.z),-0.0),vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),0.0))); +tempi.x = floatBitsToInt(intBitsToFloat(tempi.x) * 2.0); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].x), intBitsToFloat(R127i.w))); +PS1i = R125i.y; +// 8 +backupReg0i = R126i.z; +backupReg0i = R126i.z; +backupReg1i = R125i.x; +backupReg1i = R125i.x; +R127i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.x)),intBitsToFloat(R10i.x)) + intBitsToFloat(R11i.x))); +R124i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.x)),intBitsToFloat(R10i.y)) + intBitsToFloat(R11i.y))); +R126i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.x)),intBitsToFloat(R11i.z)) + intBitsToFloat(R12i.z))); +R127i.w = floatBitsToInt(max(intBitsToFloat(backupReg0i), -(intBitsToFloat(backupReg0i)))); +R125i.x = floatBitsToInt(max(intBitsToFloat(backupReg1i), -(intBitsToFloat(backupReg1i)))); +PS0i = R125i.x; +// 9 +backupReg0i = R126i.w; +backupReg0i = R126i.w; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R124i.x),intBitsToFloat(R126i.y),intBitsToFloat(R125i.z),-0.0),vec4(intBitsToFloat(R124i.x),intBitsToFloat(R126i.y),intBitsToFloat(R125i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R126i.w = floatBitsToInt(max(intBitsToFloat(backupReg0i), -(intBitsToFloat(backupReg0i)))); +PS1i = R126i.w; +// 10 +backupReg0i = R127i.y; +backupReg0i = R127i.y; +backupReg1i = R125i.w; +backupReg1i = R125i.w; +R126i.x = floatBitsToInt(fract(intBitsToFloat(R1i.y))); +R127i.y = floatBitsToInt(max(intBitsToFloat(backupReg0i), -(intBitsToFloat(backupReg0i)))); +R127i.z = floatBitsToInt(fract(intBitsToFloat(R1i.x))); +R125i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg1i)),intBitsToFloat(backupReg1i)) + intBitsToFloat(PV1i.x))); +R8i.w = 0x40400000; +PS0i = R8i.w; +// 11 +backupReg0i = R126i.y; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R124i.y),intBitsToFloat(R126i.z),-0.0),vec4(intBitsToFloat(R124i.x),intBitsToFloat(backupReg0i),intBitsToFloat(R125i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R126i.y = tempi.x; +R3i.z = floatBitsToInt(roundEven(1.0)); +PS1i = R3i.z; +// 12 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R6i.x),intBitsToFloat(R6i.y),intBitsToFloat(R6i.z),-0.0),vec4(intBitsToFloat(0x3eaaaaab),intBitsToFloat(0x3eaaaaab),intBitsToFloat(0x3eaaaaab),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.x)) + -(intBitsToFloat(R125i.w)))); +PS0i = R122i.x; +// 13 +PV1i.x = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + intBitsToFloat(R5i.y)); +PV1i.y = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + intBitsToFloat(R5i.w)); +PV1i.z = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + intBitsToFloat(R5i.x)); +PV1i.w = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + intBitsToFloat(R5i.z)); +PS1i = floatBitsToInt(sqrt(intBitsToFloat(PS0i))); +// 14 +R124i.x = floatBitsToInt(-(intBitsToFloat(R126i.y)) + intBitsToFloat(PS1i)); +PV0i.x = R124i.x; +PV0i.y = floatBitsToInt(max(intBitsToFloat(PV1i.x), -(intBitsToFloat(PV1i.x)))); +PV0i.y = floatBitsToInt(intBitsToFloat(PV0i.y) * 4.0); +PV0i.z = floatBitsToInt(max(intBitsToFloat(PV1i.z), -(intBitsToFloat(PV1i.z)))); +PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) * 4.0); +PV0i.w = floatBitsToInt(max(intBitsToFloat(PV1i.w), -(intBitsToFloat(PV1i.w)))); +PV0i.w = floatBitsToInt(intBitsToFloat(PV0i.w) * 4.0); +PS0i = floatBitsToInt(max(intBitsToFloat(PV1i.y), -(intBitsToFloat(PV1i.y)))); +PS0i = floatBitsToInt(intBitsToFloat(PS0i) * 4.0); +// 15 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(R125i.x)) + intBitsToFloat(PV0i.y))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(R127i.y)) + intBitsToFloat(PS0i))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(R127i.w)) + intBitsToFloat(PV0i.z))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(R126i.w)) + intBitsToFloat(PV0i.w))); +PV1i.w = R123i.w; +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(PV0i.x)) + intBitsToFloat(R2i.x))); +PS1i = R122i.x; +// 16 +PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + intBitsToFloat(PV1i.y)); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(R124i.x)) + intBitsToFloat(R124i.z))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.y),intBitsToFloat(R124i.x)) + intBitsToFloat(R2i.y))); +PV0i.z = R123i.z; +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.z) + -(intBitsToFloat(PV1i.w))); +R2i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedPS[3].x)) + intBitsToFloat(PS1i)); +PS0i = R2i.x; +// 17 +R124i.x = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(PV0i.w))); +R2i.y = floatBitsToInt(-(intBitsToFloat(uf_remappedPS[3].y)) + intBitsToFloat(PV0i.z)); +PV1i.y = R2i.y; +R5i.z = floatBitsToInt(-(intBitsToFloat(uf_remappedPS[3].z)) + intBitsToFloat(PV0i.y)); +PV1i.z = R5i.z; +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(PV0i.w)); +R9i.w = floatBitsToInt((-(intBitsToFloat(R6i.w)) * intBitsToFloat(0x40400000) + intBitsToFloat(0x40400000))); +PS1i = R9i.w; +// 18 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),-0.0),vec4(intBitsToFloat(R2i.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(intBitsToFloat(PV1i.w) + intBitsToFloat(R127i.z)); +PS0i = clampFI32(PS0i); +// 19 +R5i.x = uf_remappedPS[4].y; +PV1i.y = floatBitsToInt(intBitsToFloat(R124i.x) + intBitsToFloat(R126i.x)); +PV1i.y = clampFI32(PV1i.y); +R10i.z = uf_remappedPS[5].y; +R3i.w = floatBitsToInt(-(intBitsToFloat(R127i.z)) + intBitsToFloat(PS0i)); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.x)); +R5i.w = floatBitsToInt(tempResultf); +PS1i = R5i.w; +// 20 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R10i.x),intBitsToFloat(R10i.y),intBitsToFloat(R11i.z),-0.0),vec4(intBitsToFloat(uf_remappedPS[6].x),intBitsToFloat(uf_remappedPS[6].y),intBitsToFloat(uf_remappedPS[6].z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R4i.w = floatBitsToInt(-(intBitsToFloat(R126i.x)) + intBitsToFloat(PV1i.y)); +PS0i = R4i.w; +// 21 +R4i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R10i.x),intBitsToFloat(R10i.y),intBitsToFloat(R11i.z),-0.0),vec4(intBitsToFloat(uf_remappedPS[7].x),intBitsToFloat(uf_remappedPS[7].y),intBitsToFloat(uf_remappedPS[7].z),0.0))); +PV1i.x = R4i.x; +PV1i.y = R4i.x; +PV1i.z = R4i.x; +PV1i.w = R4i.x; +R4i.z = floatBitsToInt(-(intBitsToFloat(PV0i.x))); +PS1i = R4i.z; +// 0 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R10i.x),intBitsToFloat(R10i.y),intBitsToFloat(R11i.z),-0.0),vec4(intBitsToFloat(uf_remappedPS[8].x),intBitsToFloat(uf_remappedPS[8].y),intBitsToFloat(uf_remappedPS[8].z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R4i.y = tempi.x; +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(R5i.w))); +PS0i = R126i.x; +// 1 +R3i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.z),intBitsToFloat(R3i.w)) + intBitsToFloat(R0i.x))); +R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(R5i.w))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.z), intBitsToFloat(R5i.w))); +R3i.w = uf_remappedPS[9].y; +PS1i = floatBitsToInt(intBitsToFloat(R2i.z) * intBitsToFloat(0x41c80000)); +PS1i = clampFI32(PS1i); +// 2 +R0i.x = floatBitsToInt(intBitsToFloat(R11i.x) + intBitsToFloat(uf_remappedPS[10].x)); +R3i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.w),intBitsToFloat(R4i.w)) + intBitsToFloat(R0i.y))); +R0i.z = floatBitsToInt(intBitsToFloat(R11i.y) + intBitsToFloat(uf_remappedPS[10].y)); +R0i.w = floatBitsToInt((intBitsToFloat(PS1i) * 0.5 + 0.5)); +R1i.z = floatBitsToInt(intBitsToFloat(R12i.z) + intBitsToFloat(uf_remappedPS[10].z)); +PS0i = R1i.z; +// 3 +redcCUBE(vec4(intBitsToFloat(R4i.z),intBitsToFloat(R4i.z),intBitsToFloat(R4i.x),intBitsToFloat(R4i.y)),vec4(intBitsToFloat(R4i.y),intBitsToFloat(R4i.x),intBitsToFloat(R4i.z),intBitsToFloat(R4i.z)),cubeMapSTM,cubeMapFaceId); +R125i.x = floatBitsToInt(cubeMapSTM.x); +R125i.y = floatBitsToInt(cubeMapSTM.y); +R125i.z = floatBitsToInt(cubeMapSTM.z); +R125i.w = cubeMapFaceId; +PV1i.x = R125i.x; +PV1i.y = R125i.y; +PV1i.z = R125i.z; +PV1i.w = R125i.w; +R127i.w = floatBitsToInt(-(intBitsToFloat(R6i.w)) + 1.0); +PS1i = R127i.w; +// 4 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(uf_remappedPS[6].x),intBitsToFloat(uf_remappedPS[6].y),intBitsToFloat(uf_remappedPS[6].z),-0.0),vec4(intBitsToFloat(R126i.x),intBitsToFloat(R124i.y),intBitsToFloat(R127i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R124i.x = floatBitsToInt(1.0 / abs(intBitsToFloat(PV1i.z))); +PS0i = R124i.x; +// 5 +R4i.x = floatBitsToInt(dot(vec4(intBitsToFloat(uf_remappedPS[7].x),intBitsToFloat(uf_remappedPS[7].y),intBitsToFloat(uf_remappedPS[7].z),-0.0),vec4(intBitsToFloat(R126i.x),intBitsToFloat(R124i.y),intBitsToFloat(R127i.z),0.0))); +PV1i.x = R4i.x; +PV1i.y = R4i.x; +PV1i.z = R4i.x; +PV1i.w = R4i.x; +R4i.z = floatBitsToInt(-(intBitsToFloat(PV0i.x))); +PS1i = R4i.z; +// 6 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(uf_remappedPS[8].x),intBitsToFloat(uf_remappedPS[8].y),intBitsToFloat(uf_remappedPS[8].z),-0.0),vec4(intBitsToFloat(R126i.x),intBitsToFloat(R124i.y),intBitsToFloat(R127i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R4i.y = tempi.x; +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.x),intBitsToFloat(R124i.x)) + 1.5)); +PS0i = R122i.x; +// 7 +backupReg0i = R125i.w; +R125i.x = floatBitsToInt((intBitsToFloat(R127i.w) * 0.5 + 0.5)); +R8i.y = PS0i; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(R124i.x)) + 1.5)); +PV1i.z = R123i.z; +R125i.w = floatBitsToInt(intBitsToFloat(R7i.w) * intBitsToFloat(0x437f0000)); +R8i.z = backupReg0i; +PS1i = R8i.z; +// 8 +redcCUBE(vec4(intBitsToFloat(R4i.z),intBitsToFloat(R4i.z),intBitsToFloat(R4i.x),intBitsToFloat(R4i.y)),vec4(intBitsToFloat(R4i.y),intBitsToFloat(R4i.x),intBitsToFloat(R4i.z),intBitsToFloat(R4i.z)),cubeMapSTM,cubeMapFaceId); +R124i.x = floatBitsToInt(cubeMapSTM.x); +R124i.y = floatBitsToInt(cubeMapSTM.y); +R124i.z = floatBitsToInt(cubeMapSTM.z); +R124i.w = cubeMapFaceId; +PV0i.x = R124i.x; +PV0i.y = R124i.y; +PV0i.z = R124i.z; +PV0i.w = R124i.w; +R8i.x = PV1i.z; +PS0i = R8i.x; +// 9 +R6i.x = floatBitsToInt((intBitsToFloat(R7i.x) * intBitsToFloat(0x3f895ef0) + intBitsToFloat(0xba0a8ec8))); +R6i.x = clampFI32(R6i.x); +R6i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(R125i.x))); +R6i.y = floatBitsToInt(intBitsToFloat(R6i.y) / 2.0); +R9i.z = PV0i.w; +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R6i.w)),intBitsToFloat(R127i.w)) + intBitsToFloat(R127i.w))); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(1.0 / abs(intBitsToFloat(PV0i.z))); +// 10 +R7i.x = floatBitsToInt((intBitsToFloat(R7i.y) * intBitsToFloat(0x3f895ef0) + intBitsToFloat(0xba0a8ec8))); +R7i.x = clampFI32(R7i.x); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.x),intBitsToFloat(PS1i)) + 1.5)); +PV0i.y = R123i.y; +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(0x3c23d70a)); +PV0i.z = clampFI32(PV0i.z); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.y),intBitsToFloat(PS1i)) + 1.5)); +PV0i.w = R123i.w; +R6i.z = floatBitsToInt((intBitsToFloat(R7i.z) * intBitsToFloat(0x3f895ef0) + intBitsToFloat(0xba0a8ec8))); +R6i.z = clampFI32(R6i.z); +PS0i = R6i.z; +// 11 +R9i.x = PV0i.w; +R9i.y = PV0i.y; +R7i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(PV0i.z))); +R7i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.w), intBitsToFloat(R11i.z))); +R7i.y = int(intBitsToFloat(R125i.w)); +PS1i = R7i.y; +R2i.xzw = floatBitsToInt(texture(textureUnitPS11, intBitsToFloat(R3i.xy)).xzw); +R8i.xyz = floatBitsToInt(textureLod(textureUnitPS8, vec4(redcCUBEReverse(intBitsToFloat(R8i.xy),R8i.z),cubeMapArrayIndex8),intBitsToFloat(R8i.w)).xyz); +R9i.xyz = floatBitsToInt(textureLod(textureUnitPS8, vec4(redcCUBEReverse(intBitsToFloat(R9i.xy),R9i.z),cubeMapArrayIndex8),intBitsToFloat(R9i.w)).xyz); +R4i.xyz = floatBitsToInt(texture(textureUnitPS10, vec3(intBitsToFloat(R3i.x),intBitsToFloat(R3i.y),intBitsToFloat(R3i.z))).xyz); +R3i.xyz = floatBitsToInt(texture(textureUnitPS13, intBitsToFloat(R3i.xy)).xyz); +// 0 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R10i.z),intBitsToFloat(R7i.w),-0.0),vec4(intBitsToFloat(R10i.x),intBitsToFloat(R10i.y),1.0,0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.x = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(uf_remappedPS[10].x)), intBitsToFloat(uf_remappedPS[11].w))); +PS0i = R127i.x; +// 1 +R126i.x = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(uf_remappedPS[10].y)), intBitsToFloat(uf_remappedPS[11].w))); +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R0i.w)),intBitsToFloat(PV0i.x)) + intBitsToFloat(PV0i.x))); +PV1i.y = R123i.y; +R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(R2i.w))); +PV1i.z = R125i.z; +R125i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[11].w), intBitsToFloat(uf_remappedPS[11].w))); +R125i.x = R7i.y & int(1); +PS1i = R125i.x; +// 2 +R124i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.x),-(intBitsToFloat(PV1i.y))) + intBitsToFloat(R10i.x))); +PV0i.x = R124i.x; +R124i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.z),-(intBitsToFloat(PV1i.y))) + intBitsToFloat(R10i.y))); +PV0i.y = R124i.y; +R124i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.w),-(intBitsToFloat(PV1i.y))) + intBitsToFloat(R11i.z))); +PV0i.z = R124i.z; +R124i.w = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(uf_remappedPS[10].z)), intBitsToFloat(uf_remappedPS[11].w))); +R10i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(0x3f4ccccd)); +R10i.x = clampFI32(R10i.x); +PS0i = R10i.x; +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),-0.0),vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[12].x), intBitsToFloat(R125i.z))); +PS1i = R126i.y; +// 4 +backupReg0i = R0i.x; +backupReg0i = R0i.x; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(R0i.z),intBitsToFloat(R1i.z),-0.0),vec4(intBitsToFloat(backupReg0i),intBitsToFloat(R0i.z),intBitsToFloat(R1i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x)); +PS0i = floatBitsToInt(tempResultf); +// 5 +backupReg0i = R124i.z; +R5i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.x), intBitsToFloat(PS0i))); +PV1i.x = R5i.x; +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.y), intBitsToFloat(PS0i))); +PV1i.y = R127i.y; +R124i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PS0i))); +PV1i.z = R124i.z; +R127i.w = floatBitsToInt(intBitsToFloat(R125i.z) + 0.25); +R127i.w = clampFI32(R127i.w); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.x)); +R125i.z = floatBitsToInt(tempResultf); +PS1i = R125i.z; +// 6 +backupReg0i = R0i.x; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R11i.x),intBitsToFloat(R11i.y),intBitsToFloat(R12i.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(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PS1i))); +// 7 +backupReg0i = R0i.z; +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(R125i.z))); +R124i.y = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(PS0i)), intBitsToFloat(uf_remappedPS[11].w))); +PV1i.z = floatBitsToInt(max(-(intBitsToFloat(PV0i.x)), 0.0)); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R125i.z))); +R0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.w), intBitsToFloat(R125i.w))); +PS1i = R0i.x; +// 8 +R124i.x = floatBitsToInt(min(intBitsToFloat(PV1i.z), 1.0)); +PV0i.x = R124i.x; +R125i.y = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(PV1i.w)), intBitsToFloat(uf_remappedPS[11].w))); +PV0i.y = R125i.y; +R125i.z = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(PV1i.x)), intBitsToFloat(uf_remappedPS[11].w))); +PV0i.z = R125i.z; +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(R2i.z))); +R127i.z = floatBitsToInt(float(R125i.x)); +PS0i = R127i.z; +// 9 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R126i.x),intBitsToFloat(R124i.w),-0.0),vec4(intBitsToFloat(R124i.y),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),0.0))); +tempi.x = clampFI32(tempi.x); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R125i.w = tempi.x; +R125i.x = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0); +PS1i = R125i.x; +// 10 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R124i.y),intBitsToFloat(R125i.y),intBitsToFloat(R125i.z),-0.0),vec4(intBitsToFloat(R5i.x),intBitsToFloat(R127i.y),intBitsToFloat(R124i.z),0.0))); +tempi.x = clampFI32(tempi.x); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +PS0i = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +// 11 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PV0i.x))); +R125i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R124i.x)),intBitsToFloat(R125i.x)) + intBitsToFloat(R125i.x))); +PV1i.y = R125i.y; +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.w), intBitsToFloat(R124i.z))); +R124i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.w)),intBitsToFloat(PS0i)) + intBitsToFloat(PS0i))); +PV1i.w = R124i.w; +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.x),-(intBitsToFloat(R6i.y))) + intBitsToFloat(R124i.x))); +PS1i = R122i.x; +// 12 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.x),intBitsToFloat(R127i.y)) + intBitsToFloat(PV1i.z))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R124i.x)),intBitsToFloat(PV1i.y)) + intBitsToFloat(PV1i.y))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.w)),intBitsToFloat(PV1i.w)) + intBitsToFloat(PV1i.w))); +PV0i.z = R123i.z; +R125i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.z),intBitsToFloat(PV1i.x)) + -(intBitsToFloat(PV1i.x)))); +PV0i.w = R125i.w; +PS0i = floatBitsToInt(intBitsToFloat(R6i.y) + intBitsToFloat(PS1i)); +// 13 +backupReg0i = R125i.y; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(R5i.x)) + intBitsToFloat(PV0i.x))); +R123i.x = clampFI32(R123i.x); +PV1i.x = R123i.x; +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.w), intBitsToFloat(PV0i.z))); +PV1i.y = R125i.y; +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + 1.0); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV0i.y))); +R124i.z = floatBitsToInt(1.0 / intBitsToFloat(PS0i)); +PS1i = R124i.z; +// 14 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),-(intBitsToFloat(R6i.y))) + intBitsToFloat(PV1i.x))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.w),intBitsToFloat(PV1i.z)) + intBitsToFloat(PV1i.z))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((-(intBitsToFloat(PV1i.y)) * intBitsToFloat(0x3ca3d70a) + intBitsToFloat(0x3ca3d70a))); +PV0i.z = R123i.z; +R124i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R10i.x))); +PV0i.w = R124i.w; +R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PV1i.x))); +PS0i = R125i.z; +// 15 +backupReg0i = R124i.z; +PV1i.x = floatBitsToInt(intBitsToFloat(R6i.y) + intBitsToFloat(PV0i.x)); +R126i.y = floatBitsToInt(intBitsToFloat(R125i.y) + intBitsToFloat(PV0i.z)); +R124i.z = floatBitsToInt((-(intBitsToFloat(PV0i.w)) * intBitsToFloat(0x3ca3d70a) + intBitsToFloat(0x3ca3d70a))); +R125i.w = floatBitsToInt(0.25 * intBitsToFloat(backupReg0i)); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.y)); +// 16 +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.w),-(intBitsToFloat(R125i.y))) + intBitsToFloat(R127i.w))); +PV0i.x = R127i.x; +R125i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.y),-(intBitsToFloat(R124i.w))) + intBitsToFloat(R8i.y))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.x),-(intBitsToFloat(R124i.w))) + intBitsToFloat(R8i.x))); +PV0i.z = R123i.z; +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.z), intBitsToFloat(PS1i))); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.x)); +// 17 +backupReg0i = R126i.y; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.z),-(intBitsToFloat(R124i.w))) + intBitsToFloat(R8i.z))); +PV1i.x = R123i.x; +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R125i.w))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(PV0i.w))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(R0i.x))); +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[13].x),intBitsToFloat(PV0i.x)) + intBitsToFloat(PV0i.z))); +PS1i = R122i.x; +// 18 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PV1i.z))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[13].z),intBitsToFloat(R127i.x)) + intBitsToFloat(PV1i.x))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[13].y),intBitsToFloat(R127i.x)) + intBitsToFloat(R125i.y))); +PV0i.z = R123i.z; +PV0i.w = floatBitsToInt(intBitsToFloat(R124i.w) + intBitsToFloat(R124i.z)); +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), intBitsToFloat(R6i.x))); +PS0i = R125i.y; +// 19 +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.y),intBitsToFloat(PV0i.w)) + intBitsToFloat(R4i.y))); +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.x),intBitsToFloat(PV0i.w)) + intBitsToFloat(R4i.x))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R7i.x))); +R124i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.z),intBitsToFloat(PV0i.w)) + intBitsToFloat(R4i.z))); +R125i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(R6i.z))); +PS1i = R125i.w; +// 20 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[13].x), intBitsToFloat(R126i.y))); +R4i.y = floatBitsToInt((intBitsToFloat(R125i.y) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[13].z), intBitsToFloat(R126i.y))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[13].y), intBitsToFloat(R126i.y))); +R8i.y = floatBitsToInt((intBitsToFloat(PV1i.z) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); +PS0i = R8i.y; +// 21 +R4i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(R126i.x)) + intBitsToFloat(R124i.w))); +R9i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(R126i.x)) + intBitsToFloat(R127i.x))); +R4i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R126i.x)) + intBitsToFloat(R127i.y))); +R3i.w = floatBitsToInt((intBitsToFloat(R125i.w) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); +R6i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(R126i.w))); +PS1i = R6i.w; +// 22 +PV0i.y = floatBitsToInt(intBitsToFloat(R4i.x) + intBitsToFloat(R3i.w)); +PV0i.z = floatBitsToInt(intBitsToFloat(R9i.y) + intBitsToFloat(R8i.y)); +PV0i.w = floatBitsToInt(intBitsToFloat(R4i.z) + intBitsToFloat(R4i.y)); +// 23 +R6i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.z),intBitsToFloat(PV0i.w)) + intBitsToFloat(R3i.x))); +R6i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.z),intBitsToFloat(PV0i.z)) + intBitsToFloat(R3i.y))); +R6i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.z),intBitsToFloat(PV0i.y)) + intBitsToFloat(R3i.z))); + +// export +#if ($enableWaterFogColor == 0) +passPixelColor0 = vec4(intBitsToFloat(R6i.x), intBitsToFloat(R6i.y), intBitsToFloat(R6i.z), intBitsToFloat(R6i.w) * fogOpacity); +#else +passPixelColor0 = vec4(fogRed, fogGreen, fogBlue, intBitsToFloat(R6i.w)*fogOpacity); +#endif + +} diff --git a/src/BreathOfTheWild/Mods/Fog/bec68ec6f40a864f_00fffff249259249_ps.txt b/src/BreathOfTheWild/Mods/Fog/bec68ec6f40a864f_00fffff249259249_ps.txt new file mode 100644 index 00000000..f1fbfd8c --- /dev/null +++ b/src/BreathOfTheWild/Mods/Fog/bec68ec6f40a864f_00fffff249259249_ps.txt @@ -0,0 +1,1002 @@ +#version 430 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +// shader bec68ec6f40a864f +// Used for: Ground Fog + +float fogOpacity = float($groundFogOpacity); +float fogBrightness = float($groundFogBrightness); +float fogRed = float($groundFogOpacity); +float fogGreen = float($groundFogOpacity); +float fogBlue = float($groundFogOpacity); + +// start of shader inputs/outputs, predetermined by Cemu. Do not touch +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +#ifdef VULKAN +layout(set = 1, binding = 12) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[33]; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[33]; +uniform vec2 uf_fragCoordScale; +#endif +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +TEXTURE_LAYOUT(2, 1, 1) uniform sampler2D textureUnitPS2; +TEXTURE_LAYOUT(3, 1, 2) uniform sampler2D textureUnitPS3; +TEXTURE_LAYOUT(4, 1, 3) uniform sampler2D textureUnitPS4; +TEXTURE_LAYOUT(5, 1, 4) uniform sampler2D textureUnitPS5; +TEXTURE_LAYOUT(6, 1, 5) uniform sampler2D textureUnitPS6; +TEXTURE_LAYOUT(7, 1, 6) uniform samplerCubeArray textureUnitPS7; +TEXTURE_LAYOUT(11, 1, 7) uniform sampler2D textureUnitPS11; +TEXTURE_LAYOUT(12, 1, 8) uniform sampler2D textureUnitPS12; +TEXTURE_LAYOUT(14, 1, 9) uniform sampler2D textureUnitPS14; +TEXTURE_LAYOUT(15, 1, 10) uniform sampler2D textureUnitPS15; +TEXTURE_LAYOUT(17, 1, 11) uniform sampler2D textureUnitPS17; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem2; +layout(location = 2) in vec4 passParameterSem6; +layout(location = 0) out vec4 passPixelColor0; +layout(location = 1) out vec4 passPixelColor1; +layout(location = 2) out vec4 passPixelColor2; +layout(location = 3) out vec4 passPixelColor3; +layout(location = 4) out vec4 passPixelColor4; +// end of shader inputs/outputs +void redcCUBE(vec4 src0, vec4 src1, out vec3 stm, out int faceId) +{ +// stm -> x .. s, y .. t, z .. MajorAxis*2.0 +vec3 inputCoord = normalize(vec3(src1.y, src1.x, src0.x)); +float rx = inputCoord.x; +float ry = inputCoord.y; +float rz = inputCoord.z; +if( abs(rx) > abs(ry) && abs(rx) > abs(rz) ) +{ +stm.z = rx*2.0; +stm.xy = vec2(ry,rz); +if( rx >= 0.0 ) +{ +faceId = 0; +} +else +{ +faceId = 1; +} +} +else if( abs(ry) > abs(rx) && abs(ry) > abs(rz) ) +{ +stm.z = ry*2.0; +stm.xy = vec2(rx,rz); +if( ry >= 0.0 ) +{ +faceId = 2; +} +else +{ +faceId = 3; +} +} +else //if( abs(rz) > abs(ry) && abs(rz) > abs(rx) ) +{ +stm.z = rz*2.0; +stm.xy = vec2(rx,ry); +if( rz >= 0.0 ) +{ +faceId = 4; +} +else +{ +faceId = 5; +} +} +} +vec3 redcCUBEReverse(vec2 st, int faceId) +{ +st.yx = st.xy; +vec3 v; +float majorAxis = 1.0; +if( faceId == 0 ) +{ +v.yz = (st-vec2(1.5))*(majorAxis*2.0); +v.x = 1.0; +} +else if( faceId == 1 ) +{ +v.yz = (st-vec2(1.5))*(majorAxis*2.0); +v.x = -1.0; +} +else if( faceId == 2 ) +{ +v.xz = (st-vec2(1.5))*(majorAxis*2.0); +v.y = 1.0; +} +else if( faceId == 3 ) +{ +v.xz = (st-vec2(1.5))*(majorAxis*2.0); +v.y = -1.0; +} +else if( faceId == 4 ) +{ +v.xy = (st-vec2(1.5))*(majorAxis*2.0); +v.z = 1.0; +} +else +{ +v.xy = (st-vec2(1.5))*(majorAxis*2.0); +v.z = -1.0; +} +return v; +} +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R7i = ivec4(0); +ivec4 R8i = ivec4(0); +ivec4 R9i = ivec4(0); +ivec4 R10i = ivec4(0); +ivec4 R11i = ivec4(0); +ivec4 R12i = ivec4(0); +ivec4 R13i = ivec4(0); +ivec4 R14i = ivec4(0); +ivec4 R15i = ivec4(0); +ivec4 R16i = ivec4(0); +ivec4 R17i = ivec4(0); +ivec4 R18i = ivec4(0); +ivec4 R19i = ivec4(0); +ivec4 R20i = ivec4(0); +ivec4 R21i = ivec4(0); +ivec4 R22i = ivec4(0); +ivec4 R23i = ivec4(0); +ivec4 R24i = ivec4(0); +ivec4 R25i = 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; +float cubeMapArrayIndex7 = 0.0; +R0i = floatBitsToInt(passParameterSem0); +R1i = floatBitsToInt(passParameterSem2); +R2i = floatBitsToInt(passParameterSem6); +R3i.w = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R0i.xy)).x); +R12i.xyzw = floatBitsToInt(texture(textureUnitPS3, intBitsToFloat(R2i.zw)).xyzw); +R5i.xzw = floatBitsToInt(texture(textureUnitPS14, intBitsToFloat(R0i.xy)).xzw); +R11i.xyzw = floatBitsToInt(texture(textureUnitPS2, intBitsToFloat(R2i.zw)).xyzw); +R9i.xy = floatBitsToInt(texture(textureUnitPS15, intBitsToFloat(R0i.xy)).xy); +R22i.xyz = floatBitsToInt(texture(textureUnitPS4, intBitsToFloat(R2i.zw)).xyz); +// 0 +R127i.x = floatBitsToInt((intBitsToFloat(R12i.x) * 2.0 + -(1.0))); +R127i.y = floatBitsToInt((intBitsToFloat(R12i.y) * 2.0 + -(1.0))); +R127i.z = floatBitsToInt((intBitsToFloat(R12i.z) * 2.0 + -(1.0))); +R6i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.w),intBitsToFloat(uf_remappedPS[0].x)) + intBitsToFloat(uf_remappedPS[1].x))); +PV0i.w = R6i.w; +R14i.w = 0x40400000; +PS0i = R14i.w; +// 1 +R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), -(intBitsToFloat(PV0i.w)))); +PV1i.x = R124i.x; +R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), -(intBitsToFloat(PV0i.w)))); +R125i.z = floatBitsToInt(-(intBitsToFloat(PV0i.w))); +PV1i.z = R125i.z; +R3i.w = 0; +R8i.w = 0x3f800000; +PS1i = R8i.w; +// 2 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(uf_remappedPS[2].x))); +R0i.y = floatBitsToInt((-(intBitsToFloat(R12i.w)) * 0.5 + 1.0)); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(uf_remappedPS[3].x))); +R16i.w = floatBitsToInt(-(intBitsToFloat(PV1i.z)) * intBitsToFloat(0x3ba3d70a)); +R15i.y = 0; +PS0i = R15i.y; +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.y),intBitsToFloat(R127i.z),-0.0),vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.y),intBitsToFloat(R127i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.y),intBitsToFloat(uf_remappedPS[3].y)) + intBitsToFloat(PV0i.z))); +PS1i = R122i.x; +// 4 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R6i.w)),intBitsToFloat(uf_remappedPS[3].z)) + intBitsToFloat(PS1i))); +PV0i.x = R123i.x; +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.x), intBitsToFloat(uf_remappedPS[4].x))); +R126i.z = floatBitsToInt(intBitsToFloat(R12i.w) * intBitsToFloat(0x437f0000)); +R17i.w = floatBitsToInt(intBitsToFloat(R0i.y) * intBitsToFloat(0x40400000)); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x)); +PS0i = floatBitsToInt(tempResultf); +// 5 +R8i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PS0i))); +PV1i.x = R8i.x; +R5i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PS0i))); +PV1i.y = R5i.y; +R8i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PS0i))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.y),intBitsToFloat(uf_remappedPS[2].y)) + intBitsToFloat(R126i.x))); +PV1i.w = R123i.w; +R18i.z = floatBitsToInt(intBitsToFloat(uf_remappedPS[3].w) + intBitsToFloat(PV0i.x)); +PS1i = R18i.z; +// 6 +R6i.x = PS1i; +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R6i.w)),intBitsToFloat(uf_remappedPS[2].z)) + intBitsToFloat(PV1i.w))); +PV0i.y = R123i.y; +R0i.z = PV1i.x; +R0i.z = floatBitsToInt(intBitsToFloat(R0i.z) * 2.0); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.y),intBitsToFloat(uf_remappedPS[4].y)) + intBitsToFloat(R126i.y))); +PV0i.w = R123i.w; +R2i.z = PV1i.y; +R2i.z = floatBitsToInt(intBitsToFloat(R2i.z) * 2.0); +PS0i = R2i.z; +// 7 +backupReg0i = R126i.z; +R4i.x = floatBitsToInt(intBitsToFloat(uf_remappedPS[2].w) + intBitsToFloat(PV0i.y)); +PV1i.x = R4i.x; +R126i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R6i.w)),intBitsToFloat(uf_remappedPS[4].z)) + intBitsToFloat(PV0i.w))); +R3i.z = R8i.z; +R3i.z = floatBitsToInt(intBitsToFloat(R3i.z) * 2.0); +R0i.w = floatBitsToInt((intBitsToFloat(R6i.w) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(0xc0600000))); +R0i.w = clampFI32(R0i.w); +R126i.z = int(intBitsToFloat(backupReg0i)); +PS1i = R126i.z; +// 8 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R8i.x),intBitsToFloat(R5i.y),intBitsToFloat(R8i.z),-0.0),vec4(intBitsToFloat(uf_remappedPS[5].x),intBitsToFloat(uf_remappedPS[5].y),intBitsToFloat(uf_remappedPS[5].z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R125i.y = tempi.x; +R15i.x = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(0x3a83126f)); +PS0i = R15i.x; +// 9 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R8i.x),intBitsToFloat(R5i.y),intBitsToFloat(R8i.z),-0.0),vec4(intBitsToFloat(uf_remappedPS[6].x),intBitsToFloat(uf_remappedPS[6].y),intBitsToFloat(uf_remappedPS[6].z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R122i.x = floatBitsToInt((-(intBitsToFloat(PV0i.x)) * 0.5 + 0.5)); +PS1i = R122i.x; +// 10 +backupReg0i = R126i.y; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.w),intBitsToFloat(uf_remappedPS[7].x)) + -(intBitsToFloat(uf_remappedPS[7].y)))); +R123i.x = clampFI32(R123i.x); +PV0i.x = R123i.x; +R126i.y = floatBitsToInt(intBitsToFloat(PS1i) + intBitsToFloat(0x40200000)); +R7i.z = floatBitsToInt(intBitsToFloat(uf_remappedPS[4].w) + intBitsToFloat(backupReg0i)); +R125i.w = floatBitsToInt(-(intBitsToFloat(PV1i.x))); +R127i.y = R126i.z & int(1); +PS0i = R127i.y; +// 11 +R125i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R8i.x),intBitsToFloat(R5i.y),intBitsToFloat(R8i.z),-0.0),vec4(intBitsToFloat(uf_remappedPS[8].x),intBitsToFloat(uf_remappedPS[8].y),intBitsToFloat(uf_remappedPS[8].z),0.0))); +PV1i.x = R125i.x; +PV1i.y = R125i.x; +PV1i.z = R125i.x; +PV1i.w = R125i.x; +R2i.y = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0); +PS1i = R2i.y; +// 12 +R13i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.x),intBitsToFloat(uf_remappedPS[9].z)) + -(intBitsToFloat(uf_remappedPS[9].x)))); +R13i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.z),intBitsToFloat(uf_remappedPS[9].z)) + -(intBitsToFloat(uf_remappedPS[9].y)))); +R15i.z = floatBitsToInt(intBitsToFloat(R7i.z) * intBitsToFloat(0x3a83126f)); +R15i.w = floatBitsToInt(intBitsToFloat(R126i.y) * intBitsToFloat(0x3daaaaab)); +tempResultf = max(0.0, intBitsToFloat(PS1i)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +R0i.x = floatBitsToInt(tempResultf); +PS0i = R0i.x; +// 13 +redcCUBE(vec4(intBitsToFloat(R125i.w),intBitsToFloat(R125i.w),intBitsToFloat(R125i.x),intBitsToFloat(R125i.y)),vec4(intBitsToFloat(R125i.y),intBitsToFloat(R125i.x),intBitsToFloat(R125i.w),intBitsToFloat(R125i.w)),cubeMapSTM,cubeMapFaceId); +R126i.x = floatBitsToInt(cubeMapSTM.x); +R126i.y = floatBitsToInt(cubeMapSTM.y); +R126i.z = floatBitsToInt(cubeMapSTM.z); +R126i.w = cubeMapFaceId; +PV1i.x = R126i.x; +PV1i.y = R126i.y; +PV1i.z = R126i.z; +PV1i.w = R126i.w; +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[10].y), intBitsToFloat(PS0i))); +PS1i = R127i.w; +// 14 +backupReg0i = R127i.y; +R127i.x = floatBitsToInt(-(intBitsToFloat(R6i.x)) + intBitsToFloat(uf_remappedPS[9].w)); +R127i.y = floatBitsToInt(-(intBitsToFloat(uf_remappedPS[10].w)) + 1.0); +R14i.z = PV1i.w; +R2i.w = ((backupReg0i == 0)?(0):(0x3f800000)); +PV0i.w = R2i.w; +PS0i = floatBitsToInt(1.0 / abs(intBitsToFloat(PV1i.z))); +// 15 +R123i.x = floatBitsToInt((intBitsToFloat(R125i.y) * 2.0 + -(1.0))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.x),intBitsToFloat(PS0i)) + 1.5)); +PV1i.y = R123i.y; +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) * intBitsToFloat(0x3f4ccccd)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.y),intBitsToFloat(PS0i)) + 1.5)); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(exp2(intBitsToFloat(R127i.w))); +// 16 +R14i.x = PV1i.w; +R14i.y = PV1i.y; +R126i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R2i.w)),intBitsToFloat(PV1i.x)) + intBitsToFloat(R127i.x))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(PS1i)) + intBitsToFloat(uf_remappedPS[10].w))/2.0); +PV0i.w = R123i.w; +R19i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R5i.z)),intBitsToFloat(PV1i.z)) + intBitsToFloat(PV1i.z))); +PS0i = R19i.y; +// 17 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R124i.x),intBitsToFloat(R124i.y),intBitsToFloat(R125i.z),-0.0),vec4(intBitsToFloat(R124i.x),intBitsToFloat(R124i.y),intBitsToFloat(R125i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R18i.y = floatBitsToInt(intBitsToFloat(PV0i.w) + 0.5); +PS1i = R18i.y; +// 18 +R2i.x = uf_remappedPS[11].y; +R3i.y = uf_remappedPS[12].y; +R16i.z = floatBitsToInt(intBitsToFloat(R126i.z) + intBitsToFloat(0x3fa66666)); +R127i.w = floatBitsToInt(intBitsToFloat(R11i.w) * intBitsToFloat(0x437f0000)); +PS0i = floatBitsToInt(sqrt(intBitsToFloat(PV1i.x))); +// 19 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.w),intBitsToFloat(uf_remappedPS[13].x)) + -(intBitsToFloat(uf_remappedPS[13].y)))); +R123i.x = clampFI32(R123i.x); +PV1i.x = R123i.x; +R6i.y = 0; +R4i.z = uf_remappedPS[14].y; +R7i.w = 0; +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PS0i)); +// 20 +R3i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.x), intBitsToFloat(PS1i))); +R4i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.y), intBitsToFloat(PS1i))); +R6i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(PS1i))); +R4i.w = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +R9i.w = int(intBitsToFloat(R127i.w)); +PS0i = R9i.w; +// 0 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[15].x), intBitsToFloat(uf_remappedPS[16].w))); +PV0i.x = R126i.x; +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[15].y), intBitsToFloat(uf_remappedPS[16].w))); +PV0i.y = R125i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.y)),intBitsToFloat(R4i.y)) + 1.0)); +PV0i.z = R123i.z; +R124i.w = floatBitsToInt(intBitsToFloat(R3i.x) + intBitsToFloat(uf_remappedPS[15].x)); +R127i.y = floatBitsToInt(intBitsToFloat(R4i.y) + intBitsToFloat(uf_remappedPS[15].y)); +PS0i = R127i.y; +// 1 +R124i.x = PV0i.x; +R126i.y = floatBitsToInt(intBitsToFloat(R6i.z) + intBitsToFloat(uf_remappedPS[15].z)); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[15].z), intBitsToFloat(uf_remappedPS[16].w))); +PV1i.z = R127i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.y)),intBitsToFloat(PV0i.y)) + 1.0)); +PV1i.w = R123i.w; +tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.z)); +R124i.y = floatBitsToInt(tempResultf); +PS1i = R124i.y; +// 2 +R19i.x = floatBitsToInt(intBitsToFloat(R0i.w) + intBitsToFloat(uf_remappedPS[17].y)); +PV0i.y = PV1i.z; +R126i.z = R9i.w & 0x000000fc; +R10i.w = R1i.x; +R10i.w = floatBitsToInt(intBitsToFloat(R10i.w) / 2.0); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.w)); +PS0i = floatBitsToInt(tempResultf); +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R3i.x),intBitsToFloat(R6i.z),intBitsToFloat(R6i.z),-0.0),vec4(intBitsToFloat(R124i.x),intBitsToFloat(PV0i.y),intBitsToFloat(R3i.w),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(R124i.y))); +// 4 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R8i.x),intBitsToFloat(R5i.y),intBitsToFloat(R8i.z),-0.0),vec4(intBitsToFloat(R3i.x),intBitsToFloat(R4i.y),intBitsToFloat(R6i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.w = tempi.x; +R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), intBitsToFloat(PV1i.x))); +PS0i = R125i.z; +// 5 +backupReg0i = R0i.z; +R124i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R3i.x),intBitsToFloat(R4i.y),intBitsToFloat(R6i.z),-0.0),vec4(intBitsToFloat(R126i.x),intBitsToFloat(R125i.y),intBitsToFloat(R127i.z),0.0))); +PV1i.x = R124i.x; +PV1i.y = R124i.x; +PV1i.z = R124i.x; +PV1i.w = R124i.x; +R10i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(backupReg0i)) + intBitsToFloat(R3i.x))); +PS1i = R10i.x; +// 6 +R7i.x = floatBitsToInt(min(intBitsToFloat(R5i.x), intBitsToFloat(R5i.w))); +PV0i.x = R7i.x; +R10i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.w)),intBitsToFloat(R2i.z)) + intBitsToFloat(R4i.y))); +R13i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.w)),intBitsToFloat(R3i.z)) + intBitsToFloat(R6i.z))); +PV0i.w = floatBitsToInt(max(-(intBitsToFloat(R127i.w)), 0.0)); +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.y),intBitsToFloat(R0i.y)) + intBitsToFloat(0x3c23d70a))); +R127i.w = clampFI32(R127i.w); +PS0i = R127i.w; +// 7 +backupReg0i = R124i.x; +R124i.x = floatBitsToInt(min(intBitsToFloat(PV0i.w), 1.0)); +R0i.y = floatBitsToInt(-(intBitsToFloat(R2i.w)) + 1.0); +PV1i.z = floatBitsToInt(intBitsToFloat(backupReg0i) + -(intBitsToFloat(R125i.z))); +R2i.w = floatBitsToInt(intBitsToFloat(R5i.x) + -(intBitsToFloat(PV0i.x))); +tempResultf = max(0.0, intBitsToFloat(R4i.w)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS1i = floatBitsToInt(tempResultf); +// 8 +backupReg0i = R0i.x; +backupReg1i = R126i.z; +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[10].x), intBitsToFloat(backupReg0i))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(R2i.y)) + intBitsToFloat(R125i.z))); +PV0i.y = R123i.y; +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[18].x), intBitsToFloat(PS1i))); +R0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(R127i.w))); +PS0i = floatBitsToInt(float(backupReg1i)); +// 9 +PV1i.x = floatBitsToInt(max(-(intBitsToFloat(PV0i.y)), intBitsToFloat(0xbf7d70a4))); +PV1i.x = floatBitsToInt(intBitsToFloat(PV1i.x) / 2.0); +PV1i.y = floatBitsToInt(-(intBitsToFloat(R124i.x)) + 1.0); +R19i.z = floatBitsToInt(intBitsToFloat(PS0i) * intBitsToFloat(0x3b820821)); +R127i.w = floatBitsToInt(intBitsToFloat(R1i.w) + intBitsToFloat(0xbe99999a)); +R126i.w = floatBitsToInt(exp2(intBitsToFloat(PV0i.x))); +PS1i = R126i.w; +// 10 +backupReg0i = R126i.z; +R127i.x = R12i.w; +R127i.x = floatBitsToInt(intBitsToFloat(R127i.x) / 2.0); +R124i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R124i.x)),intBitsToFloat(PV1i.y)) + intBitsToFloat(PV1i.y))); +R126i.z = floatBitsToInt(intBitsToFloat(PV1i.x) + 0.5); +PV0i.z = R126i.z; +R125i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.w),intBitsToFloat(uf_remappedPS[19].x)) + intBitsToFloat(uf_remappedPS[20].w))); +R125i.w = clampFI32(R125i.w); +R5i.w = floatBitsToInt(exp2(intBitsToFloat(backupReg0i))); +PS0i = R5i.w; +// 11 +R20i.x = floatBitsToInt((intBitsToFloat(R6i.w) * intBitsToFloat(0x3c23d70a) + -(0.5))); +R20i.x = clampFI32(R20i.x); +PV1i.y = floatBitsToInt(-(intBitsToFloat(PV0i.z)) + 1.0); +R123i.z = floatBitsToInt((intBitsToFloat(PV0i.z) * intBitsToFloat(0xbc996e30) + intBitsToFloat(0x3d981626))); +PV1i.z = R123i.z; +R3i.w = floatBitsToInt(intBitsToFloat(R127i.w) * intBitsToFloat(0x40200001)); +R3i.w = clampFI32(R3i.w); +R125i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[10].z),-(intBitsToFloat(R126i.w))) + intBitsToFloat(uf_remappedPS[10].z))); +PS1i = R125i.z; +// 12 +R21i.x = floatBitsToInt((intBitsToFloat(0xbf59999a) * intBitsToFloat(R9i.y) + 1.0)); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(PV1i.z)) + intBitsToFloat(0xbe593484))); +PV0i.y = R123i.y; +R3i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.y), intBitsToFloat(uf_remappedPS[21].w))); +R4i.w = floatBitsToInt(intBitsToFloat(uf_remappedPS[21].x) + -(1.0)); +PS0i = floatBitsToInt(sqrt(intBitsToFloat(PV1i.y))); +// 13 +PV1i.x = floatBitsToInt(intBitsToFloat(PS0i) * intBitsToFloat(0x3f22f983)); +R2i.y = floatBitsToInt(intBitsToFloat(uf_remappedPS[21].y) + -(1.0)); +R2i.z = floatBitsToInt(intBitsToFloat(uf_remappedPS[21].z) + -(1.0)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(PV0i.y)) + intBitsToFloat(0x3fc90da4))); +PV1i.w = R123i.w; +tempResultf = max(0.0, intBitsToFloat(R125i.w)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +R5i.z = floatBitsToInt(tempResultf); +PS1i = R5i.z; +// 14 +R18i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),-(intBitsToFloat(PV1i.w))) + 1.0)); +R7i.y = floatBitsToInt((-(intBitsToFloat(R19i.z)) * intBitsToFloat(0x3d23d70a) + intBitsToFloat(0x3d23d70a))); +R0i.z = floatBitsToInt((-(intBitsToFloat(R127i.x)) * intBitsToFloat(0x40400000) + 4.0)); +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R124i.x)),intBitsToFloat(R124i.y)) + intBitsToFloat(R124i.y))); +PV0i.w = R123i.w; +R8i.y = floatBitsToInt(intBitsToFloat(R3i.w) * intBitsToFloat(0x3dcccccd)); +PS0i = R8i.y; +// 15 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R124i.w),intBitsToFloat(R127i.y),intBitsToFloat(R126i.y),-0.0),vec4(intBitsToFloat(R124i.w),intBitsToFloat(R127i.y),intBitsToFloat(R126i.y),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R10i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.y), intBitsToFloat(PV0i.w))); +PS1i = R10i.z; +// 16 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R3i.y),intBitsToFloat(R4i.z),-0.0),vec4(intBitsToFloat(R3i.x),intBitsToFloat(R4i.y),intBitsToFloat(R6i.z),0.0))); +tempi.x = clampFI32(tempi.x); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x)); +PS0i = floatBitsToInt(tempResultf); +// 17 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.w), intBitsToFloat(PS0i))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PS0i))); +R9i.z = floatBitsToInt((intBitsToFloat(R6i.w) * intBitsToFloat(0x3ba3d70a) + intBitsToFloat(0xbfe66666))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PS0i))); +tempResultf = max(0.0, intBitsToFloat(PV0i.x)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS1i = floatBitsToInt(tempResultf); +// 18 +R3i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(uf_remappedPS[16].w))); +R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(uf_remappedPS[16].w))); +R6i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(uf_remappedPS[16].w))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[18].z), intBitsToFloat(PS1i))); +R6i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(R21i.x))); +PS0i = R6i.w; +// 19 +R0i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R8i.x),intBitsToFloat(R5i.y),intBitsToFloat(R8i.z),intBitsToFloat(R8i.z)),vec4(-(intBitsToFloat(R126i.x)),-(intBitsToFloat(R125i.y)),-(intBitsToFloat(R127i.z)),-(intBitsToFloat(R7i.w))))); +PV1i.x = R0i.x; +PV1i.y = R0i.x; +PV1i.z = R0i.x; +PV1i.w = R0i.x; +R4i.z = floatBitsToInt(exp2(intBitsToFloat(PV0i.w))); +PS1i = R4i.z; +// 20 +backupReg0i = R0i.y; +R5i.x = floatBitsToInt(dot(vec4(-(intBitsToFloat(R126i.x)),-(intBitsToFloat(R125i.y)),-(intBitsToFloat(R127i.z)),-0.0),vec4(-(intBitsToFloat(R3i.x)),-(intBitsToFloat(R3i.y)),-(intBitsToFloat(R6i.z)),0.0))); +R5i.x = clampFI32(R5i.x); +PV0i.x = R5i.x; +PV0i.y = R5i.x; +PV0i.z = R5i.x; +PV0i.w = R5i.x; +R2i.x = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(backupReg0i)); +R2i.x = clampFI32(R2i.x); +PS0i = R2i.x; +// 0 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R4i.x),intBitsToFloat(R6i.x),intBitsToFloat(R7i.z),intBitsToFloat(R8i.w)),vec4(intBitsToFloat(uf_remappedPS[22].x),intBitsToFloat(uf_remappedPS[22].y),intBitsToFloat(uf_remappedPS[22].z),intBitsToFloat(uf_remappedPS[22].w)))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R125i.y = floatBitsToInt(-(intBitsToFloat(R5i.x)) + 1.0); +PS0i = R125i.y; +// 1 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R4i.x),intBitsToFloat(R6i.x),intBitsToFloat(R7i.z),intBitsToFloat(R8i.w)),vec4(intBitsToFloat(uf_remappedPS[23].x),intBitsToFloat(uf_remappedPS[23].y),intBitsToFloat(uf_remappedPS[23].z),intBitsToFloat(uf_remappedPS[23].w)))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R126i.x = floatBitsToInt(1.0 / intBitsToFloat(PV0i.x)); +PS1i = R126i.x; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R4i.x),intBitsToFloat(R6i.x),intBitsToFloat(R7i.z),intBitsToFloat(R8i.w)),vec4(intBitsToFloat(uf_remappedPS[24].x),intBitsToFloat(uf_remappedPS[24].y),intBitsToFloat(uf_remappedPS[24].z),intBitsToFloat(uf_remappedPS[24].w)))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R16i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(PS1i))); +PS0i = R16i.x; +// 3 +backupReg0i = R2i.w; +R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[19].y), intBitsToFloat(R5i.z))); +R16i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R126i.x))); +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(uf_remappedPS[18].w)),intBitsToFloat(R4i.z)) + 1.0)); +PV1i.z = R123i.z; +R2i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R2i.x)) + intBitsToFloat(R7i.x))); +R2i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.w),intBitsToFloat(R3i.z)) + 1.0)); +PS1i = R2i.x; +// 4 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R8i.x),intBitsToFloat(R5i.y),intBitsToFloat(R8i.z),intBitsToFloat(R8i.z)),vec4(-(intBitsToFloat(R3i.x)),-(intBitsToFloat(R3i.y)),-(intBitsToFloat(R6i.z)),-(intBitsToFloat(R6i.y))))); +tempi.x = clampFI32(tempi.x); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R122i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R5i.w)),intBitsToFloat(PV1i.z)) + intBitsToFloat(PV1i.z))); +PS0i = R122i.x; +// 5 +R126i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R5i.x)),intBitsToFloat(R125i.y)) + intBitsToFloat(R125i.y))); +PV1i.x = R126i.x; +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PV0i.x))); +R6i.z = R0i.x; +R6i.z = clampFI32(R6i.z); +R124i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(uf_remappedPS[25].w))); +R8i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y),intBitsToFloat(R3i.z)) + 1.0)); +PS1i = R8i.z; +// 6 +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.w),intBitsToFloat(PV1i.y)) + -(intBitsToFloat(PV1i.y)))); +PV0i.x = R127i.x; +R2i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.z),intBitsToFloat(R3i.z)) + 1.0)); +R125i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R11i.x),intBitsToFloat(R19i.z)) + intBitsToFloat(R7i.y))); +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R5i.x)),intBitsToFloat(PV1i.x)) + intBitsToFloat(PV1i.x))); +PV0i.w = R123i.w; +R125i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R11i.y),intBitsToFloat(R19i.z)) + intBitsToFloat(R7i.y))); +PS0i = R125i.w; +// 7 +backupReg0i = R126i.x; +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R11i.z),intBitsToFloat(R19i.z)) + intBitsToFloat(R7i.y))); +R5i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.w), intBitsToFloat(R21i.x))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV0i.w))); +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.x) + 1.0); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(R0i.z)); +// 8 +R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R10i.z), intBitsToFloat(PS1i))); +R125i.y = floatBitsToInt(-(intBitsToFloat(R6i.w)) + 1.0); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(PV1i.w)) + intBitsToFloat(PV1i.w))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R8i.y)),intBitsToFloat(R9i.z)) + intBitsToFloat(R9i.z))); +R123i.w = clampFI32(R123i.w); +PV0i.w = R123i.w; +R127i.x = floatBitsToInt(exp2(intBitsToFloat(R124i.x))); +PS0i = R127i.x; +// 9 +R124i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.x),-(intBitsToFloat(R127i.z))) + intBitsToFloat(R126i.x))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.w),-(intBitsToFloat(R127i.z))) + intBitsToFloat(R125i.w))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.z),-(intBitsToFloat(R127i.z))) + intBitsToFloat(R125i.z))); +PV1i.z = R123i.z; +R124i.w = floatBitsToInt((intBitsToFloat(R3i.w) * intBitsToFloat(0x3dcccccd) + intBitsToFloat(PV0i.w))); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.z)); +// 10 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), intBitsToFloat(PS1i))); +R3i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R5i.y)),intBitsToFloat(R125i.y)) + intBitsToFloat(R125i.y))); +R10i.z = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(PV1i.z)); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(uf_remappedPS[26].w))); +R0i.z = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(PV1i.y)); +PS0i = R0i.z; +// 11 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.z),-(intBitsToFloat(R125i.x))) + intBitsToFloat(R125i.z))); +PV1i.x = R123i.x; +R8i.y = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(R124i.x)); +R3i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.y), intBitsToFloat(PV0i.w))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.w),-(intBitsToFloat(R125i.x))) + intBitsToFloat(R125i.w))); +PV1i.w = R123i.w; +R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.x),-(intBitsToFloat(R125i.x))) + intBitsToFloat(R126i.x))); +PS1i = R127i.z; +// 12 +backupReg0i = R9i.x; +R9i.x = floatBitsToInt(intBitsToFloat(R127i.x) * 0.25); +PV0i.y = floatBitsToInt(-(intBitsToFloat(R124i.w)) + 1.0); +R9i.z = floatBitsToInt(intBitsToFloat(R125i.x) + intBitsToFloat(PV1i.x)); +PV0i.w = backupReg0i; +PV0i.w = clampFI32(PV0i.w); +R5i.x = floatBitsToInt(intBitsToFloat(R125i.x) + intBitsToFloat(PV1i.w)); +PS0i = R5i.x; +// 13 +backupReg0i = R11i.y; +backupReg1i = R11i.z; +R0i.x = floatBitsToInt((intBitsToFloat(R11i.x) * intBitsToFloat(0x3f895ef0) + intBitsToFloat(0xba0a8ec8))); +R0i.x = clampFI32(R0i.x); +R11i.y = floatBitsToInt((intBitsToFloat(backupReg0i) * intBitsToFloat(0x3f895ef0) + intBitsToFloat(0xba0a8ec8))); +R11i.y = clampFI32(R11i.y); +R11i.z = floatBitsToInt((intBitsToFloat(backupReg1i) * intBitsToFloat(0x3f895ef0) + intBitsToFloat(0xba0a8ec8))); +R11i.z = clampFI32(R11i.z); +R11i.w = floatBitsToInt(intBitsToFloat(R125i.x) + intBitsToFloat(R127i.z)); +R11i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.w)) + intBitsToFloat(R124i.w))); +PS1i = R11i.x; +// 14 +PV0i.x = R9i.w & int(1); +R24i.y = 0; +R2i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.w),-(intBitsToFloat(R5i.y))) + intBitsToFloat(R6i.w))); +R25i.w = 0x3f800000; +R4i.w = 0x3f800000; +PS0i = R4i.w; +// 15 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R12i.x),intBitsToFloat(R12i.y),intBitsToFloat(R12i.z),-0.0),vec4(intBitsToFloat(0x3eaaaaab),intBitsToFloat(0x3eaaaaab),intBitsToFloat(0x3eaaaaab),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R12i.w = tempi.x; +R6i.w = floatBitsToInt(float(PV0i.x)); +PS1i = R6i.w; +// 16 +R23i.w = 0x3f800000; +// 0 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(uf_remappedPS[6].x),intBitsToFloat(uf_remappedPS[6].y),intBitsToFloat(uf_remappedPS[6].z),-0.0),vec4(intBitsToFloat(R10i.x),intBitsToFloat(R10i.y),intBitsToFloat(R13i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +// 1 +R127i.x = floatBitsToInt(dot(vec4(intBitsToFloat(uf_remappedPS[8].x),intBitsToFloat(uf_remappedPS[8].y),intBitsToFloat(uf_remappedPS[8].z),-0.0),vec4(intBitsToFloat(R10i.x),intBitsToFloat(R10i.y),intBitsToFloat(R13i.z),0.0))); +PV1i.x = R127i.x; +PV1i.y = R127i.x; +PV1i.z = R127i.x; +PV1i.w = R127i.x; +R127i.z = floatBitsToInt(-(intBitsToFloat(PV0i.x))); +PS1i = R127i.z; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(uf_remappedPS[5].x),intBitsToFloat(uf_remappedPS[5].y),intBitsToFloat(uf_remappedPS[5].z),-0.0),vec4(intBitsToFloat(R10i.x),intBitsToFloat(R10i.y),intBitsToFloat(R13i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.y = tempi.x; +// 3 +backupReg0i = R127i.x; +backupReg0i = R127i.x; +backupReg1i = R127i.z; +backupReg1i = R127i.z; +redcCUBE(vec4(intBitsToFloat(R127i.z),intBitsToFloat(R127i.z),intBitsToFloat(backupReg0i),intBitsToFloat(PV0i.x)),vec4(intBitsToFloat(PV0i.x),intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),intBitsToFloat(backupReg1i)),cubeMapSTM,cubeMapFaceId); +R127i.x = floatBitsToInt(cubeMapSTM.x); +R127i.y = floatBitsToInt(cubeMapSTM.y); +R127i.z = floatBitsToInt(cubeMapSTM.z); +R127i.w = cubeMapFaceId; +PV1i.x = R127i.x; +PV1i.y = R127i.y; +PV1i.z = R127i.z; +PV1i.w = R127i.w; +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[16].w), intBitsToFloat(uf_remappedPS[16].w))); +// 4 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), intBitsToFloat(PS1i))); +R17i.z = PV1i.w; +PS0i = floatBitsToInt(1.0 / abs(intBitsToFloat(PV1i.z))); +// 5 +backupReg0i = R9i.x; +R9i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(backupReg0i))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(PS0i)) + 1.5)); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(PS0i)) + 1.5)); +PV1i.w = R123i.w; +// 6 +R17i.x = PV1i.w; +R17i.y = PV1i.z; +R13i.z = floatBitsToInt(textureLod(textureUnitPS12, intBitsToFloat(R13i.xy),0.0).x); +R14i.xyz = floatBitsToInt(textureLod(textureUnitPS7, vec4(redcCUBEReverse(intBitsToFloat(R14i.xy),R14i.z),cubeMapArrayIndex7),intBitsToFloat(R14i.w)).xyz); +R15i.x = floatBitsToInt(textureLod(textureUnitPS0, intBitsToFloat(R15i.xz),0.0).x); +R16i.y = floatBitsToInt(textureLod(textureUnitPS5, intBitsToFloat(R16i.xy),intBitsToFloat(R16i.w)).x); +R7i.xyz = floatBitsToInt(texture(textureUnitPS17, intBitsToFloat(R15i.wy)).xyz); +R17i.xyz = floatBitsToInt(textureLod(textureUnitPS7, vec4(redcCUBEReverse(intBitsToFloat(R17i.xy),R17i.z),cubeMapArrayIndex7),intBitsToFloat(R17i.w)).xyz); +R12i.xyz = floatBitsToInt(texture(textureUnitPS11, intBitsToFloat(R18i.xy)).xyz); +// export +passPixelColor4 = vec4(intBitsToFloat(R12i.w), intBitsToFloat(R12i.w), intBitsToFloat(R12i.w), intBitsToFloat(R12i.w)); +// 0 +PV0i.x = floatBitsToInt(max(intBitsToFloat(R14i.y), intBitsToFloat(R14i.z))); +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(uf_remappedPS[9].w)),intBitsToFloat(R13i.z)) + intBitsToFloat(R16i.z))); +PV0i.y = R123i.y; +PV0i.z = floatBitsToInt(min(intBitsToFloat(R14i.y), intBitsToFloat(R14i.z))); +R123i.w = floatBitsToInt((intBitsToFloat(R15i.x) * 2.0 + -(1.0))); +PV0i.w = R123i.w; +PS0i = floatBitsToInt(intBitsToFloat(R16i.y) + intBitsToFloat(uf_remappedPS[27].z)); +PS0i = clampFI32(PS0i); +// 1 +R127i.x = floatBitsToInt(intBitsToFloat(PV0i.y) * 0.25); +R127i.x = clampFI32(R127i.x); +PV1i.x = R127i.x; +R127i.y = floatBitsToInt((intBitsToFloat(PV0i.w) * intBitsToFloat(0x41c80000) + intBitsToFloat(R18i.z))); +R127i.z = floatBitsToInt(min(intBitsToFloat(R14i.x), intBitsToFloat(PV0i.z))); +R125i.w = floatBitsToInt(max(intBitsToFloat(R14i.x), intBitsToFloat(PV0i.x))); +PV1i.w = R125i.w; +R24i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(R2i.w))); +PS1i = R24i.x; +// 2 +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(0x2edbe6ff)); +R126i.y = floatBitsToInt(intBitsToFloat(R14i.y) + -(intBitsToFloat(PV1i.w))); +R125i.z = floatBitsToInt(intBitsToFloat(R14i.x) + -(intBitsToFloat(PV1i.w))); +PV0i.w = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +R124i.w = floatBitsToInt(intBitsToFloat(R14i.z) + -(intBitsToFloat(PV1i.w))); +PS0i = R124i.w; +// 3 +R14i.x = floatBitsToInt(-(intBitsToFloat(R127i.y)) + intBitsToFloat(uf_remappedPS[28].x)); +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.z), intBitsToFloat(R24i.x))); +PV1i.y = R125i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.x)),intBitsToFloat(PV0i.w)) + intBitsToFloat(PV0i.w))); +PV1i.z = R123i.z; +R12i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R17i.x), intBitsToFloat(R9i.z))); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.x)); +// 4 +backupReg0i = R127i.x; +backupReg1i = R0i.z; +R127i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.z)),intBitsToFloat(PS1i)) + 1.0)); +PV0i.x = R127i.x; +R127i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg0i)),intBitsToFloat(PV1i.z)) + intBitsToFloat(PV1i.z))); +PV0i.y = R127i.y; +R0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(R10i.z))); +R2i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(backupReg1i))); +R15i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(R8i.y))); +PS0i = R15i.x; +// 5 +backupReg0i = R5i.x; +R5i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R17i.z), intBitsToFloat(R11i.w))); +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(0x2edbe6ff)); +PV1i.z = floatBitsToInt(-(intBitsToFloat(PV0i.y)) + 1.0); +R11i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R17i.y), intBitsToFloat(backupReg0i))); +R17i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.x), intBitsToFloat(R11i.x))); +PS1i = R17i.w; +// 6 +backupReg0i = R11i.x; +backupReg0i = R11i.x; +R11i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.z), intBitsToFloat(backupReg0i))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(R19i.x)) + intBitsToFloat(R127i.y))); +R123i.y = clampFI32(R123i.y); +PV0i.y = R123i.y; +R12i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.y), intBitsToFloat(backupReg0i))); +R127i.w = floatBitsToInt(1.0 / intBitsToFloat(PV1i.y)); +PS0i = R127i.w; +// 7 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(R10i.w)) + intBitsToFloat(R10i.w))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((intBitsToFloat(PV0i.y) * 0.5 + 0.5)); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((intBitsToFloat(PV0i.y) * intBitsToFloat(0xbdcccccd) + intBitsToFloat(0x3dcccccd))); +PV1i.z = R123i.z; +R24i.w = PV0i.y; +// 8 +PV0i.x = floatBitsToInt(intBitsToFloat(R6i.z) + intBitsToFloat(PV1i.y)); +PV0i.x = clampFI32(PV0i.x); +PV0i.y = floatBitsToInt(intBitsToFloat(R127i.x) + intBitsToFloat(PV1i.z)); +PV0i.y = clampFI32(PV0i.y); +R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),-(intBitsToFloat(R19i.y))) + intBitsToFloat(PV1i.x))); +// 9 +PV1i.x = floatBitsToInt(intBitsToFloat(R19i.y) + intBitsToFloat(PV0i.y)); +PV1i.x = clampFI32(PV1i.x); +R6i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.y), intBitsToFloat(PV0i.x))); +// 10 +tempResultf = max(0.0, intBitsToFloat(PV1i.x)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS0i = floatBitsToInt(tempResultf); +// 11 +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(PS0i))); +// 12 +PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.w))); +// 13 +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(PS0i))); +// 14 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(R127i.w))); +// 15 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.z),intBitsToFloat(PV0i.x)) + intBitsToFloat(R125i.w))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.w),intBitsToFloat(PV0i.x)) + intBitsToFloat(R125i.w))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.y),intBitsToFloat(PV0i.x)) + intBitsToFloat(R125i.w))); +PV1i.z = R123i.z; +// 16 +backupReg0i = R126i.w; +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(PV1i.z))); +PV0i.x = R127i.x; +R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(PV1i.y))); +PV0i.z = R125i.z; +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.x))); +PV0i.w = R126i.w; +// 17 +PV1i.x = floatBitsToInt(intBitsToFloat(R7i.z) + -(intBitsToFloat(PV0i.z))); +PV1i.y = floatBitsToInt(intBitsToFloat(R7i.x) + -(intBitsToFloat(PV0i.w))); +PV1i.w = floatBitsToInt(intBitsToFloat(R7i.y) + -(intBitsToFloat(PV0i.x))); +// 18 +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(R20i.x)) + intBitsToFloat(R127i.x))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(R20i.x)) + intBitsToFloat(R126i.w))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(R20i.x)) + intBitsToFloat(R125i.z))); +PV0i.w = R123i.w; +// 19 +R25i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R2i.x))); +R25i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(R8i.z))); +R25i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R2i.y))); +// 0 +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R14i.x),intBitsToFloat(uf_remappedPS[29].x)) + intBitsToFloat(uf_remappedPS[30].w))); +R123i.y = clampFI32(R123i.y); +PV0i.y = R123i.y; +// 1 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(uf_remappedPS[31].w))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[32].y),intBitsToFloat(R6i.z)) + intBitsToFloat(R25i.y))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[32].x),intBitsToFloat(R6i.z)) + intBitsToFloat(R25i.x))); +PV1i.z = R123i.z; +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[32].x), intBitsToFloat(R0i.z))); +R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[32].y), intBitsToFloat(R2i.w))); +PS1i = R125i.z; +// 2 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[32].z),intBitsToFloat(R6i.z)) + intBitsToFloat(R25i.z))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R19i.z)),intBitsToFloat(PV1i.y)) + intBitsToFloat(PV1i.y))); +PV0i.y = R123i.y; +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R21i.x))); +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R19i.z)),intBitsToFloat(PV1i.z)) + intBitsToFloat(PV1i.z))); +PV0i.w = R123i.w; +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[32].z), intBitsToFloat(R15i.x))); +PS0i = R126i.y; +// 3 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R19i.z)),intBitsToFloat(PV0i.x)) + intBitsToFloat(PV0i.x))); +PV1i.x = R123i.x; +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R3i.y))); +R124i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R0i.x))); +R124i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.z)),intBitsToFloat(R3i.y)) + intBitsToFloat(R3i.y))); +PV1i.w = R124i.w; +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(R11i.y))); +PS1i = R127i.x; +// 4 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[31].x), intBitsToFloat(PV1i.y))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[31].y), intBitsToFloat(PV1i.y))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), intBitsToFloat(PV1i.w))); +PV0i.z = R127i.z; +R125i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R11i.z))); +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[31].z), intBitsToFloat(PV1i.y))); +PS0i = R126i.z; +// 5 +backupReg0i = R126i.y; +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.z),intBitsToFloat(R9i.x)) + intBitsToFloat(R11i.w))); +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.w),intBitsToFloat(R9i.x)) + intBitsToFloat(R12i.w))); +R125i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[26].x),intBitsToFloat(PV0i.z)) + intBitsToFloat(PV0i.x))); +R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R9i.x)) + intBitsToFloat(R5i.x))); +R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[26].y),intBitsToFloat(PV0i.z)) + intBitsToFloat(PV0i.y))); +PS1i = R125i.x; +// 6 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt((intBitsToFloat(R125i.w) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); +R123i.y = floatBitsToInt((intBitsToFloat(backupReg0i) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((intBitsToFloat(R124i.z) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[26].z),intBitsToFloat(R127i.z)) + intBitsToFloat(R126i.z))); +PV0i.w = R123i.w; +// 7 +backupReg0i = R126i.y; +backupReg1i = R126i.x; +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),intBitsToFloat(R2i.z)) + intBitsToFloat(R125i.x))); +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R17i.w),intBitsToFloat(R2i.z)) + intBitsToFloat(R125i.z))); +PV1i.z = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(PV0i.z)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R11i.x),intBitsToFloat(R2i.z)) + intBitsToFloat(PV0i.w))); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(intBitsToFloat(backupReg1i) + intBitsToFloat(PV0i.y)); +// 8 +PV0i.x = floatBitsToInt(intBitsToFloat(R126i.w) + intBitsToFloat(R127i.x)); +R4i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R22i.y),intBitsToFloat(R6i.w)) + intBitsToFloat(PS1i))); +R23i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[25].z),intBitsToFloat(R5i.y)) + intBitsToFloat(PV1i.w))); +R4i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R22i.x),intBitsToFloat(R6i.w)) + intBitsToFloat(PV1i.z))); +PS0i = R4i.x; +// 9 +R23i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[25].x),intBitsToFloat(R5i.y)) + intBitsToFloat(R126i.y))); +R23i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[25].y),intBitsToFloat(R5i.y)) + intBitsToFloat(R126i.x))); +R4i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R22i.z),intBitsToFloat(R6i.w)) + intBitsToFloat(PV0i.x))); +PV1i.z = R4i.z; +R24i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R3i.z)),intBitsToFloat(R124i.w)) + intBitsToFloat(R124i.w))); +PS1i = R24i.z; +// 10 +R3i.xyz = ivec3(R4i.x,R4i.y,PV1i.z); +R3i.w = R4i.w; +// 11 +R1i.xyz = ivec3(R23i.x,R23i.y,R23i.z); +R1i.w = R23i.w; +// 12 +R0i.xyz = ivec3(R24i.x,R24i.y,R24i.z); +R0i.w = R24i.w; +// 13 +R2i.xyz = ivec3(R25i.x,R25i.y,R25i.z); +R2i.w = R25i.w; +// export + +passPixelColor0 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z)*fogBrightness, intBitsToFloat(R0i.w)); + +#if ($enableGroundFogColor == 0) +passPixelColor1 = vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.w)*fogOpacity); +#else +passPixelColor1 = vec4(fogRed, fogGreen, fogBlue, intBitsToFloat(R1i.w)*fogOpacity); +#endif + +passPixelColor1 = vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.w)); +passPixelColor2 = 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)); +} diff --git a/src/BreathOfTheWild/Mods/Fog/fb2e18ae56397ca7_00fffff249259249_ps.txt b/src/BreathOfTheWild/Mods/Fog/fb2e18ae56397ca7_00fffff249259249_ps.txt new file mode 100644 index 00000000..2499f4fa --- /dev/null +++ b/src/BreathOfTheWild/Mods/Fog/fb2e18ae56397ca7_00fffff249259249_ps.txt @@ -0,0 +1,995 @@ +#version 430 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +// shader fb2e18ae56397ca7 +// Used for: Fog around trees, bushes and vines + +float fogOpacity = float($greeneryFogOpacity); +float fogBrightness = float($greeneryFogBrightness); +float fogRed = float($greeneryFogOpacity); +float fogGreen = float($greeneryFogOpacity); +float fogBlue = float($greeneryFogOpacity); + +// start of shader inputs/outputs, predetermined by Cemu. Do not touch +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +#ifdef VULKAN +layout(set = 1, binding = 12) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[33]; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[33]; +uniform vec2 uf_fragCoordScale; +#endif +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +TEXTURE_LAYOUT(2, 1, 1) uniform sampler2D textureUnitPS2; +TEXTURE_LAYOUT(3, 1, 2) uniform sampler2D textureUnitPS3; +TEXTURE_LAYOUT(4, 1, 3) uniform sampler2D textureUnitPS4; +TEXTURE_LAYOUT(5, 1, 4) uniform sampler2D textureUnitPS5; +TEXTURE_LAYOUT(6, 1, 5) uniform sampler2D textureUnitPS6; +TEXTURE_LAYOUT(7, 1, 6) uniform samplerCubeArray textureUnitPS7; +TEXTURE_LAYOUT(11, 1, 7) uniform sampler2D textureUnitPS11; +TEXTURE_LAYOUT(12, 1, 8) uniform sampler2D textureUnitPS12; +TEXTURE_LAYOUT(14, 1, 9) uniform sampler2D textureUnitPS14; +TEXTURE_LAYOUT(15, 1, 10) uniform sampler2D textureUnitPS15; +TEXTURE_LAYOUT(16, 1, 11) uniform sampler2D textureUnitPS16; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem2; +layout(location = 2) in vec4 passParameterSem6; +layout(location = 0) out vec4 passPixelColor0; +layout(location = 1) out vec4 passPixelColor1; +layout(location = 2) out vec4 passPixelColor2; +layout(location = 3) out vec4 passPixelColor3; +layout(location = 4) out vec4 passPixelColor4; +// end of shader inputs/outputs +void redcCUBE(vec4 src0, vec4 src1, out vec3 stm, out int faceId) +{ +// stm -> x .. s, y .. t, z .. MajorAxis*2.0 +vec3 inputCoord = normalize(vec3(src1.y, src1.x, src0.x)); +float rx = inputCoord.x; +float ry = inputCoord.y; +float rz = inputCoord.z; +if( abs(rx) > abs(ry) && abs(rx) > abs(rz) ) +{ +stm.z = rx*2.0; +stm.xy = vec2(ry,rz); +if( rx >= 0.0 ) +{ +faceId = 0; +} +else +{ +faceId = 1; +} +} +else if( abs(ry) > abs(rx) && abs(ry) > abs(rz) ) +{ +stm.z = ry*2.0; +stm.xy = vec2(rx,rz); +if( ry >= 0.0 ) +{ +faceId = 2; +} +else +{ +faceId = 3; +} +} +else //if( abs(rz) > abs(ry) && abs(rz) > abs(rx) ) +{ +stm.z = rz*2.0; +stm.xy = vec2(rx,ry); +if( rz >= 0.0 ) +{ +faceId = 4; +} +else +{ +faceId = 5; +} +} +} +vec3 redcCUBEReverse(vec2 st, int faceId) +{ +st.yx = st.xy; +vec3 v; +float majorAxis = 1.0; +if( faceId == 0 ) +{ +v.yz = (st-vec2(1.5))*(majorAxis*2.0); +v.x = 1.0; +} +else if( faceId == 1 ) +{ +v.yz = (st-vec2(1.5))*(majorAxis*2.0); +v.x = -1.0; +} +else if( faceId == 2 ) +{ +v.xz = (st-vec2(1.5))*(majorAxis*2.0); +v.y = 1.0; +} +else if( faceId == 3 ) +{ +v.xz = (st-vec2(1.5))*(majorAxis*2.0); +v.y = -1.0; +} +else if( faceId == 4 ) +{ +v.xy = (st-vec2(1.5))*(majorAxis*2.0); +v.z = 1.0; +} +else +{ +v.xy = (st-vec2(1.5))*(majorAxis*2.0); +v.z = -1.0; +} +return v; +} +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R7i = ivec4(0); +ivec4 R8i = ivec4(0); +ivec4 R9i = ivec4(0); +ivec4 R10i = ivec4(0); +ivec4 R11i = ivec4(0); +ivec4 R12i = ivec4(0); +ivec4 R13i = ivec4(0); +ivec4 R14i = ivec4(0); +ivec4 R15i = ivec4(0); +ivec4 R16i = ivec4(0); +ivec4 R17i = ivec4(0); +ivec4 R18i = ivec4(0); +ivec4 R19i = ivec4(0); +ivec4 R20i = ivec4(0); +ivec4 R21i = ivec4(0); +ivec4 R22i = ivec4(0); +ivec4 R23i = ivec4(0); +ivec4 R24i = ivec4(0); +ivec4 R25i = ivec4(0); +ivec4 R26i = 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; +float cubeMapArrayIndex7 = 0.0; +R0i = floatBitsToInt(passParameterSem0); +R1i = floatBitsToInt(passParameterSem2); +R2i = floatBitsToInt(passParameterSem6); +R3i.w = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R0i.xy)).x); +R11i.xyzw = floatBitsToInt(texture(textureUnitPS3, intBitsToFloat(R2i.zw)).xyzw); +R10i.xyzw = floatBitsToInt(texture(textureUnitPS2, intBitsToFloat(R2i.zw)).xyzw); +R2i.xy = floatBitsToInt(texture(textureUnitPS14, intBitsToFloat(R0i.xy)).xw); +R8i.xy = floatBitsToInt(texture(textureUnitPS15, intBitsToFloat(R0i.xy)).xy); +R23i.xyz = floatBitsToInt(texture(textureUnitPS4, intBitsToFloat(R2i.zw)).xyz); +// 0 +R127i.x = floatBitsToInt((intBitsToFloat(R11i.x) * 2.0 + -(1.0))); +R127i.y = floatBitsToInt((intBitsToFloat(R11i.y) * 2.0 + -(1.0))); +R127i.z = floatBitsToInt((intBitsToFloat(R11i.z) * 2.0 + -(1.0))); +R7i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.w),intBitsToFloat(uf_remappedPS[0].x)) + intBitsToFloat(uf_remappedPS[1].x))); +PV0i.w = R7i.w; +R14i.w = 0x40400000; +PS0i = R14i.w; +// 1 +R0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), -(intBitsToFloat(PV0i.w)))); +PV1i.x = R0i.x; +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), -(intBitsToFloat(PV0i.w)))); +R126i.z = floatBitsToInt(-(intBitsToFloat(PV0i.w))); +PV1i.z = R126i.z; +R6i.w = 0x3f800000; +R2i.z = 0; +PS1i = R2i.z; +// 2 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(uf_remappedPS[2].x))); +R3i.y = floatBitsToInt((-(intBitsToFloat(R11i.w)) * 0.5 + 1.0)); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(uf_remappedPS[3].x))); +R15i.w = floatBitsToInt(-(intBitsToFloat(PV1i.z)) * intBitsToFloat(0x3ba3d70a)); +R16i.y = 0; +PS0i = R16i.y; +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.y),intBitsToFloat(R127i.z),-0.0),vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.y),intBitsToFloat(R127i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(uf_remappedPS[3].y)) + intBitsToFloat(PV0i.z))); +PS1i = R122i.x; +// 4 +R125i.x = floatBitsToInt(intBitsToFloat(R11i.w) * intBitsToFloat(0x437f0000)); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.x), intBitsToFloat(uf_remappedPS[4].x))); +R0i.z = floatBitsToInt((intBitsToFloat(R7i.w) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(0xc0600000))); +R0i.z = clampFI32(R0i.z); +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R7i.w)),intBitsToFloat(uf_remappedPS[3].z)) + intBitsToFloat(PS1i))); +PV0i.w = R123i.w; +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x)); +PS0i = floatBitsToInt(tempResultf); +// 5 +R5i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PS0i))); +PV1i.x = R5i.x; +R6i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PS0i))); +PV1i.y = R6i.y; +R7i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PS0i))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(uf_remappedPS[2].y)) + intBitsToFloat(R126i.x))); +PV1i.w = R123i.w; +R13i.z = floatBitsToInt(intBitsToFloat(uf_remappedPS[3].w) + intBitsToFloat(PV0i.w)); +PS1i = R13i.z; +// 6 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(uf_remappedPS[4].y)) + intBitsToFloat(R126i.y))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R7i.w)),intBitsToFloat(uf_remappedPS[2].z)) + intBitsToFloat(PV1i.w))); +PV0i.y = R123i.y; +R8i.z = PS1i; +R0i.w = PV1i.x; +R0i.w = floatBitsToInt(intBitsToFloat(R0i.w) * 2.0); +R3i.x = PV1i.y; +R3i.x = floatBitsToInt(intBitsToFloat(R3i.x) * 2.0); +PS0i = R3i.x; +// 7 +R6i.x = floatBitsToInt(intBitsToFloat(uf_remappedPS[2].w) + intBitsToFloat(PV0i.y)); +PV1i.x = R6i.x; +R0i.y = R7i.z; +R0i.y = floatBitsToInt(intBitsToFloat(R0i.y) * 2.0); +R125i.z = floatBitsToInt(intBitsToFloat(R10i.w) * intBitsToFloat(0x437f0000)); +R127i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R7i.w)),intBitsToFloat(uf_remappedPS[4].z)) + intBitsToFloat(PV0i.x))); +R17i.w = floatBitsToInt(intBitsToFloat(R3i.y) * intBitsToFloat(0x40400000)); +PS1i = R17i.w; +// 8 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R6i.y),intBitsToFloat(R7i.z),-0.0),vec4(intBitsToFloat(uf_remappedPS[5].x),intBitsToFloat(uf_remappedPS[5].y),intBitsToFloat(uf_remappedPS[5].z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.y = tempi.x; +R12i.x = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(0x3a83126f)); +PS0i = R12i.x; +// 9 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R6i.y),intBitsToFloat(R7i.z),-0.0),vec4(intBitsToFloat(uf_remappedPS[6].x),intBitsToFloat(uf_remappedPS[6].y),intBitsToFloat(uf_remappedPS[6].z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R124i.y = floatBitsToInt(intBitsToFloat(PV0i.x) + 1.0); +PS1i = R124i.y; +// 10 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.w),intBitsToFloat(uf_remappedPS[7].x)) + -(intBitsToFloat(uf_remappedPS[7].y)))); +R123i.x = clampFI32(R123i.x); +PV0i.x = R123i.x; +R126i.y = floatBitsToInt((-(intBitsToFloat(R127i.y)) * 0.5 + 0.5)); +R9i.z = floatBitsToInt(intBitsToFloat(uf_remappedPS[4].w) + intBitsToFloat(R127i.w)); +R124i.w = floatBitsToInt(-(intBitsToFloat(PV1i.x))); +R127i.z = int(intBitsToFloat(R125i.x)); +PS0i = R127i.z; +// 11 +R124i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R6i.y),intBitsToFloat(R7i.z),-0.0),vec4(intBitsToFloat(uf_remappedPS[8].x),intBitsToFloat(uf_remappedPS[8].y),intBitsToFloat(uf_remappedPS[8].z),0.0))); +PV1i.x = R124i.x; +PV1i.y = R124i.x; +PV1i.z = R124i.x; +PV1i.w = R124i.x; +R3i.z = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0); +PS1i = R3i.z; +// 12 +R13i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.x),intBitsToFloat(uf_remappedPS[9].z)) + -(intBitsToFloat(uf_remappedPS[9].x)))); +R13i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.z),intBitsToFloat(uf_remappedPS[9].z)) + -(intBitsToFloat(uf_remappedPS[9].y)))); +R12i.z = floatBitsToInt(intBitsToFloat(R9i.z) * intBitsToFloat(0x3a83126f)); +PV0i.w = floatBitsToInt(intBitsToFloat(R126i.y) + intBitsToFloat(0x40200000)); +tempResultf = max(0.0, intBitsToFloat(PS1i)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +R4i.y = floatBitsToInt(tempResultf); +PS0i = R4i.y; +// 13 +backupReg0i = R124i.x; +backupReg0i = R124i.x; +backupReg1i = R124i.y; +backupReg2i = R124i.w; +redcCUBE(vec4(intBitsToFloat(R124i.w),intBitsToFloat(R124i.w),intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i)),vec4(intBitsToFloat(R124i.y),intBitsToFloat(backupReg0i),intBitsToFloat(R124i.w),intBitsToFloat(backupReg2i)),cubeMapSTM,cubeMapFaceId); +R124i.x = floatBitsToInt(cubeMapSTM.x); +R124i.y = floatBitsToInt(cubeMapSTM.y); +R124i.z = floatBitsToInt(cubeMapSTM.z); +R124i.w = cubeMapFaceId; +PV1i.x = R124i.x; +PV1i.y = R124i.y; +PV1i.z = R124i.z; +PV1i.w = R124i.w; +R16i.x = floatBitsToInt(intBitsToFloat(PV0i.w) * intBitsToFloat(0x3daaaaab)); +PS1i = R16i.x; +// 14 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[10].y), intBitsToFloat(R4i.y))); +R126i.y = floatBitsToInt(-(intBitsToFloat(uf_remappedPS[10].w)) + 1.0); +R14i.z = PV1i.w; +PV0i.w = R127i.z & int(1); +PS0i = floatBitsToInt(1.0 / abs(intBitsToFloat(PV1i.z))); +// 15 +backupReg0i = R124i.x; +R124i.x = ((PV0i.w == 0)?(0):(0x3f800000)); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.y),intBitsToFloat(PS0i)) + 1.5)); +PV1i.y = R123i.y; +R127i.z = floatBitsToInt(-(intBitsToFloat(R8i.z)) + intBitsToFloat(uf_remappedPS[9].w)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(PS0i)) + 1.5)); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.x))); +// 16 +R14i.x = PV1i.y; +R14i.y = PV1i.w; +R124i.z = floatBitsToInt((intBitsToFloat(R127i.y) * 2.0 + -(1.0))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.y),intBitsToFloat(PS1i)) + intBitsToFloat(uf_remappedPS[10].w))/2.0); +PV0i.w = R123i.w; +R4i.x = uf_remappedPS[11].y; +PS0i = R4i.x; +// 17 +backupReg0i = R0i.x; +backupReg0i = R0i.x; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(R125i.y),intBitsToFloat(R126i.z),-0.0),vec4(intBitsToFloat(backupReg0i),intBitsToFloat(R125i.y),intBitsToFloat(R126i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R18i.y = floatBitsToInt(intBitsToFloat(PV0i.w) + 0.5); +PS1i = R18i.y; +// 18 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R124i.x)),intBitsToFloat(R124i.z)) + intBitsToFloat(R127i.z))); +PV0i.x = R123i.x; +R5i.y = uf_remappedPS[12].y; +R5i.z = uf_remappedPS[13].y; +R3i.w = floatBitsToInt(min(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y))); +PV0i.w = R3i.w; +PS0i = floatBitsToInt(sqrt(intBitsToFloat(PV1i.x))); +// 19 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.w),intBitsToFloat(uf_remappedPS[14].x)) + -(intBitsToFloat(uf_remappedPS[14].y)))); +R123i.x = clampFI32(R123i.x); +PV1i.x = R123i.x; +R19i.y = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(0x3fa66666)); +R4i.z = floatBitsToInt(intBitsToFloat(R2i.y) + -(intBitsToFloat(PV0i.w))); +R5i.w = 0; +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PS0i)); +// 20 +backupReg0i = R0i.x; +R0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PS1i))); +R2i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.y), intBitsToFloat(PS1i))); +R6i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), intBitsToFloat(PS1i))); +R2i.w = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +R9i.y = int(intBitsToFloat(R125i.z)); +PS0i = R9i.y; +// 0 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[15].x), intBitsToFloat(uf_remappedPS[16].w))); +PV0i.x = R127i.x; +R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[15].y), intBitsToFloat(uf_remappedPS[16].w))); +PV0i.y = R124i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R2i.y)),intBitsToFloat(R2i.y)) + 1.0)); +PV0i.z = R123i.z; +R125i.w = floatBitsToInt(intBitsToFloat(R0i.x) + intBitsToFloat(uf_remappedPS[15].x)); +R126i.y = floatBitsToInt(intBitsToFloat(R2i.y) + intBitsToFloat(uf_remappedPS[15].y)); +PS0i = R126i.y; +// 1 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.y)),intBitsToFloat(PV0i.y)) + 1.0)); +PV1i.x = R123i.x; +R125i.y = PV0i.x; +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[15].z), intBitsToFloat(uf_remappedPS[16].w))); +PV1i.z = R127i.z; +R4i.w = floatBitsToInt(intBitsToFloat(R6i.z) + intBitsToFloat(uf_remappedPS[15].z)); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.z)); +R127i.y = floatBitsToInt(tempResultf); +PS1i = R127i.y; +// 2 +backupReg0i = R0i.z; +R126i.x = 0; +PV0i.y = PV1i.z; +R0i.z = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(uf_remappedPS[17].y)); +R124i.w = R9i.y & 0x00000002; +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x)); +PS0i = floatBitsToInt(tempResultf); +// 3 +backupReg0i = R0i.x; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(R6i.z),intBitsToFloat(R6i.z),-0.0),vec4(intBitsToFloat(R125i.y),intBitsToFloat(PV0i.y),intBitsToFloat(R2i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(R127i.y))); +// 4 +backupReg0i = R0i.x; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R6i.y),intBitsToFloat(R7i.z),-0.0),vec4(intBitsToFloat(backupReg0i),intBitsToFloat(R2i.y),intBitsToFloat(R6i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.w = tempi.x; +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), intBitsToFloat(PV1i.x))); +PS0i = R126i.w; +// 5 +backupReg0i = R0i.x; +backupReg1i = R0i.w; +backupReg0i = R0i.x; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(R2i.y),intBitsToFloat(R6i.z),-0.0),vec4(intBitsToFloat(R127i.x),intBitsToFloat(R124i.y),intBitsToFloat(R127i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R2i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(backupReg1i)) + intBitsToFloat(backupReg0i))); +PS1i = R2i.x; +// 6 +backupReg0i = R124i.w; +PV0i.x = floatBitsToInt(max(-(intBitsToFloat(R127i.w)), 0.0)); +R12i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.w)),intBitsToFloat(R3i.x)) + intBitsToFloat(R2i.y))); +R2i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.w)),intBitsToFloat(R0i.y)) + intBitsToFloat(R6i.z))); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.x) + -(intBitsToFloat(R126i.w))); +R124i.w = floatBitsToInt(float(backupReg0i)); +R124i.w = floatBitsToInt(intBitsToFloat(R124i.w) / 2.0); +PS0i = R124i.w; +// 7 +PV1i.x = R9i.y & 0x000000fc; +R20i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.z),intBitsToFloat(PS0i)) + intBitsToFloat(R3i.w))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(R3i.z)) + intBitsToFloat(R126i.w))); +PV1i.z = R123i.z; +R3i.w = floatBitsToInt(min(intBitsToFloat(PV0i.x), 1.0)); +tempResultf = max(0.0, intBitsToFloat(R2i.w)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +R126i.z = floatBitsToInt(tempResultf); +PS1i = R126i.z; +// 8 +PV0i.x = floatBitsToInt(max(-(intBitsToFloat(PV1i.z)), intBitsToFloat(0xbf7d70a4))); +PV0i.x = floatBitsToInt(intBitsToFloat(PV0i.x) / 2.0); +R21i.y = R1i.x; +R21i.y = floatBitsToInt(intBitsToFloat(R21i.y) / 2.0); +R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[10].x), intBitsToFloat(R4i.y))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.y),intBitsToFloat(R3i.y)) + intBitsToFloat(0x3c23d70a))); +R123i.w = clampFI32(R123i.w); +PV0i.w = R123i.w; +PS0i = floatBitsToInt(float(PV1i.x)); +// 9 +R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[18].x), intBitsToFloat(R126i.z))); +R7i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(PV0i.w))); +R126i.z = floatBitsToInt(intBitsToFloat(PV0i.x) + 0.5); +PV1i.z = R126i.z; +R126i.w = floatBitsToInt(-(intBitsToFloat(R3i.w)) + 1.0); +R7i.x = floatBitsToInt(intBitsToFloat(PS0i) * intBitsToFloat(0x3b820821)); +PS1i = R7i.x; +// 10 +R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.w),intBitsToFloat(uf_remappedPS[19].x)) + intBitsToFloat(uf_remappedPS[20].w))); +R125i.x = clampFI32(R125i.x); +PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + 1.0); +R123i.z = floatBitsToInt((intBitsToFloat(PV1i.z) * intBitsToFloat(0xbc996e30) + intBitsToFloat(0x3d981626))); +PV0i.z = R123i.z; +PV0i.w = floatBitsToInt(intBitsToFloat(R1i.w) + intBitsToFloat(0xbe99999a)); +R127i.w = floatBitsToInt(exp2(intBitsToFloat(R125i.z))); +PS0i = R127i.w; +// 11 +R3i.x = R11i.w; +R3i.x = floatBitsToInt(intBitsToFloat(R3i.x) / 2.0); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(PV0i.z)) + intBitsToFloat(0xbe593484))); +PV1i.y = R123i.y; +R15i.z = floatBitsToInt((intBitsToFloat(R7i.w) * intBitsToFloat(0x3c23d70a) + -(0.5))); +R15i.z = clampFI32(R15i.z); +R8i.w = floatBitsToInt(intBitsToFloat(PV0i.w) * intBitsToFloat(0x40200001)); +R8i.w = clampFI32(R8i.w); +PS1i = floatBitsToInt(sqrt(intBitsToFloat(PV0i.y))); +// 12 +PV0i.x = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3f22f983)); +R22i.y = floatBitsToInt((intBitsToFloat(0xbf59999a) * intBitsToFloat(R8i.y) + 1.0)); +R3i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R3i.w)),intBitsToFloat(R126i.w)) + intBitsToFloat(R126i.w))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(PV1i.y)) + intBitsToFloat(0x3fc90da4))); +PV0i.w = R123i.w; +R2i.w = floatBitsToInt(exp2(intBitsToFloat(R124i.x))); +PS0i = R2i.w; +// 13 +R18i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),-(intBitsToFloat(PV0i.w))) + 1.0)); +R4i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[10].z),-(intBitsToFloat(R127i.w))) + intBitsToFloat(uf_remappedPS[10].z))); +R4i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.y), intBitsToFloat(uf_remappedPS[21].w))); +R0i.w = floatBitsToInt(intBitsToFloat(uf_remappedPS[21].z) + -(1.0)); +tempResultf = max(0.0, intBitsToFloat(R125i.x)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +R3i.y = floatBitsToInt(tempResultf); +PS1i = R3i.y; +// 14 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R125i.w),intBitsToFloat(R126i.y),intBitsToFloat(R4i.w),-0.0),vec4(intBitsToFloat(R125i.w),intBitsToFloat(R126i.y),intBitsToFloat(R4i.w),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R0i.y = floatBitsToInt(intBitsToFloat(uf_remappedPS[21].x) + -(1.0)); +PS0i = R0i.y; +// 15 +backupReg0i = R0i.x; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R4i.x),intBitsToFloat(R5i.y),intBitsToFloat(R5i.z),-0.0),vec4(intBitsToFloat(backupReg0i),intBitsToFloat(R2i.y),intBitsToFloat(R6i.z),0.0))); +tempi.x = clampFI32(tempi.x); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.x)); +PS1i = floatBitsToInt(tempResultf); +// 16 +R0i.x = floatBitsToInt(intBitsToFloat(uf_remappedPS[21].y) + -(1.0)); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.w), intBitsToFloat(PS1i))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.w), intBitsToFloat(PS1i))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PS1i))); +tempResultf = max(0.0, intBitsToFloat(PV1i.x)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS0i = floatBitsToInt(tempResultf); +// 17 +R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(uf_remappedPS[16].w))); +PV1i.x = R125i.x; +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(uf_remappedPS[16].w))); +PV1i.y = R126i.y; +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(uf_remappedPS[16].w))); +PV1i.z = R126i.z; +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[18].z), intBitsToFloat(PS0i))); +R4i.w = floatBitsToInt(intBitsToFloat(R124i.w) * intBitsToFloat(0x3e19999a)); +PS1i = R4i.w; +// 18 +tempi.x = floatBitsToInt(dot(vec4(-(intBitsToFloat(R127i.x)),-(intBitsToFloat(R124i.y)),-(intBitsToFloat(R127i.z)),-0.0),vec4(-(intBitsToFloat(PV1i.x)),-(intBitsToFloat(PV1i.y)),-(intBitsToFloat(PV1i.z)),0.0))); +tempi.x = clampFI32(tempi.x); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R6i.z = tempi.x; +R5i.z = floatBitsToInt(exp2(intBitsToFloat(PV1i.w))); +PS0i = R5i.z; +// 19 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R6i.y),intBitsToFloat(R7i.z),intBitsToFloat(R7i.z)),vec4(-(intBitsToFloat(R125i.x)),-(intBitsToFloat(R126i.y)),-(intBitsToFloat(R126i.z)),-(intBitsToFloat(R5i.w))))); +tempi.x = clampFI32(tempi.x); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R5i.w = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0); +PS1i = R5i.w; +// 20 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R6i.y),intBitsToFloat(R7i.z),intBitsToFloat(R7i.z)),vec4(-(intBitsToFloat(R127i.x)),-(intBitsToFloat(R124i.y)),-(intBitsToFloat(R127i.z)),-(intBitsToFloat(R126i.x))))); +tempi.x = clampFI32(tempi.x); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R9i.w = tempi.x; +R6i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(PV1i.x))); +PS0i = R6i.y; +// 0 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R6i.x),intBitsToFloat(R8i.z),intBitsToFloat(R9i.z),intBitsToFloat(R6i.w)),vec4(intBitsToFloat(uf_remappedPS[22].x),intBitsToFloat(uf_remappedPS[22].y),intBitsToFloat(uf_remappedPS[22].z),intBitsToFloat(uf_remappedPS[22].w)))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.y),intBitsToFloat(R6i.y)) + -(intBitsToFloat(R6i.y)))); +PS0i = R127i.x; +// 1 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R6i.x),intBitsToFloat(R8i.z),intBitsToFloat(R9i.z),intBitsToFloat(R6i.w)),vec4(intBitsToFloat(uf_remappedPS[23].x),intBitsToFloat(uf_remappedPS[23].y),intBitsToFloat(uf_remappedPS[23].z),intBitsToFloat(uf_remappedPS[23].w)))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R127i.z = floatBitsToInt(1.0 / intBitsToFloat(PV0i.x)); +PS1i = R127i.z; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R6i.x),intBitsToFloat(R8i.z),intBitsToFloat(R9i.z),intBitsToFloat(R6i.w)),vec4(intBitsToFloat(uf_remappedPS[24].x),intBitsToFloat(uf_remappedPS[24].y),intBitsToFloat(uf_remappedPS[24].z),intBitsToFloat(uf_remappedPS[24].w)))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R15i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(PS1i))); +PS0i = R15i.x; +// 3 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(uf_remappedPS[18].w)),intBitsToFloat(R5i.z)) + 1.0)); +PV1i.x = R123i.x; +R15i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R127i.z))); +R127i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R6i.z)),intBitsToFloat(R5i.w)) + intBitsToFloat(R5i.w))); +PV1i.z = R127i.z; +PV1i.w = floatBitsToInt(intBitsToFloat(R127i.x) + 1.0); +R124i.y = floatBitsToInt((-(intBitsToFloat(R7i.x)) * intBitsToFloat(0x3d23d70a) + intBitsToFloat(0x3d23d70a))); +PS1i = R124i.y; +// 4 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R3i.w)),intBitsToFloat(R3i.z)) + intBitsToFloat(R3i.z))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R6i.z)),intBitsToFloat(PV1i.z)) + intBitsToFloat(PV1i.z))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R2i.w)),intBitsToFloat(PV1i.x)) + intBitsToFloat(PV1i.x))); +PV0i.z = R123i.z; +R124i.w = floatBitsToInt((-(intBitsToFloat(R3i.x)) * intBitsToFloat(0x40400000) + 4.0)); +R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(PV1i.w)) + intBitsToFloat(PV1i.w))); +PS0i = R126i.z; +// 5 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV0i.y))); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), intBitsToFloat(PV0i.x))); +R127i.z = floatBitsToInt(intBitsToFloat(R8i.w) * intBitsToFloat(0x3dcccccd)); +R125i.w = floatBitsToInt((intBitsToFloat(R7i.w) * intBitsToFloat(0x3ba3d70a) + intBitsToFloat(0xbfe66666))); +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(uf_remappedPS[25].w))); +PS1i = R127i.x; +// 6 +backupReg0i = R0i.x; +backupReg1i = R3i.y; +backupReg2i = R124i.w; +R0i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.w),intBitsToFloat(R4i.z)) + 1.0)); +R3i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R4i.z)) + 1.0)); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[19].y), intBitsToFloat(backupReg1i))); +R124i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.y), intBitsToFloat(R22i.y))); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(backupReg2i)); +// 7 +backupReg0i = R126i.y; +backupReg1i = R4i.z; +R124i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.x),intBitsToFloat(R7i.x)) + intBitsToFloat(R124i.y))); +PV1i.x = R124i.x; +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PS0i))); +R4i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.y),intBitsToFloat(backupReg1i)) + 1.0)); +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.z)),intBitsToFloat(R125i.w)) + intBitsToFloat(R125i.w))); +R123i.w = clampFI32(R123i.w); +PV1i.w = R123i.w; +R125i.x = floatBitsToInt(exp2(intBitsToFloat(PV0i.z))); +PS1i = R125i.x; +// 8 +R3i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(R22i.y))); +PV0i.x = R3i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),-(intBitsToFloat(R126i.x))) + intBitsToFloat(PV1i.x))); +PV0i.y = R123i.y; +PV0i.z = floatBitsToInt(-(intBitsToFloat(R124i.w)) + 1.0); +R125i.w = floatBitsToInt((intBitsToFloat(R8i.w) * intBitsToFloat(0x3dcccccd) + intBitsToFloat(PV1i.w))); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R126i.z)); +// 9 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.y), intBitsToFloat(PS0i))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(uf_remappedPS[26].w))); +R3i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(PV0i.z)) + intBitsToFloat(PV0i.z))); +R0i.w = floatBitsToInt(intBitsToFloat(R126i.x) + intBitsToFloat(PV0i.y)); +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.x),-(intBitsToFloat(R126i.y))) + intBitsToFloat(R124i.x))); +PS1i = R122i.x; +// 10 +backupReg0i = R8i.y; +backupReg1i = R8i.x; +R8i.x = floatBitsToInt(intBitsToFloat(R126i.y) + intBitsToFloat(PS1i)); +R8i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.y))); +PV0i.z = backupReg1i; +PV0i.z = clampFI32(PV0i.z); +PV0i.w = floatBitsToInt(-(intBitsToFloat(R125i.w)) + 1.0); +R8i.w = floatBitsToInt(intBitsToFloat(PV1i.x) * 0.25); +PS0i = R8i.w; +// 11 +backupReg0i = R10i.x; +backupReg1i = R10i.z; +backupReg2i = R9i.y; +R10i.x = floatBitsToInt((intBitsToFloat(backupReg0i) * intBitsToFloat(0x3f895ef0) + intBitsToFloat(0xba0a8ec8))); +R10i.x = clampFI32(R10i.x); +R9i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(PV0i.z)) + intBitsToFloat(R125i.w))); +R10i.z = floatBitsToInt((intBitsToFloat(backupReg1i) * intBitsToFloat(0x3f895ef0) + intBitsToFloat(0xba0a8ec8))); +R10i.z = clampFI32(R10i.z); +R10i.w = floatBitsToInt((intBitsToFloat(R10i.y) * intBitsToFloat(0x3f895ef0) + intBitsToFloat(0xba0a8ec8))); +R10i.w = clampFI32(R10i.w); +PS1i = backupReg2i & int(1); +// 12 +PV0i.x = floatBitsToInt(intBitsToFloat(R11i.z) * intBitsToFloat(0x3eaaaaab)); +R10i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.w),-(intBitsToFloat(R3i.x))) + intBitsToFloat(R124i.w))); +R26i.w = 0x3f800000; +R6i.z = floatBitsToInt(float(PS1i)); +PS0i = R6i.z; +// 13 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R11i.x),intBitsToFloat(R11i.y),intBitsToFloat(PV0i.x),-0.0),vec4(intBitsToFloat(0x3eaaaaab),intBitsToFloat(0x3eaaaaab),1.0,0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R11i.w = tempi.x; +R25i.y = 0; +PS1i = R25i.y; +// 14 +R5i.w = 0x3f800000; +R24i.w = 0x3f800000; +PS0i = R24i.w; +// 0 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(uf_remappedPS[6].x),intBitsToFloat(uf_remappedPS[6].y),intBitsToFloat(uf_remappedPS[6].z),-0.0),vec4(intBitsToFloat(R2i.x),intBitsToFloat(R12i.y),intBitsToFloat(R2i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +// 1 +R126i.x = floatBitsToInt(dot(vec4(intBitsToFloat(uf_remappedPS[8].x),intBitsToFloat(uf_remappedPS[8].y),intBitsToFloat(uf_remappedPS[8].z),-0.0),vec4(intBitsToFloat(R2i.x),intBitsToFloat(R12i.y),intBitsToFloat(R2i.z),0.0))); +PV1i.x = R126i.x; +PV1i.y = R126i.x; +PV1i.z = R126i.x; +PV1i.w = R126i.x; +R126i.z = floatBitsToInt(-(intBitsToFloat(PV0i.x))); +PS1i = R126i.z; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(uf_remappedPS[5].x),intBitsToFloat(uf_remappedPS[5].y),intBitsToFloat(uf_remappedPS[5].z),-0.0),vec4(intBitsToFloat(R2i.x),intBitsToFloat(R12i.y),intBitsToFloat(R2i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R126i.y = tempi.x; +// 3 +backupReg0i = R126i.x; +backupReg0i = R126i.x; +backupReg1i = R126i.z; +backupReg1i = R126i.z; +redcCUBE(vec4(intBitsToFloat(R126i.z),intBitsToFloat(R126i.z),intBitsToFloat(backupReg0i),intBitsToFloat(PV0i.x)),vec4(intBitsToFloat(PV0i.x),intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),intBitsToFloat(backupReg1i)),cubeMapSTM,cubeMapFaceId); +R126i.x = floatBitsToInt(cubeMapSTM.x); +R126i.y = floatBitsToInt(cubeMapSTM.y); +R126i.z = floatBitsToInt(cubeMapSTM.z); +R126i.w = cubeMapFaceId; +PV1i.x = R126i.x; +PV1i.y = R126i.y; +PV1i.z = R126i.z; +PV1i.w = R126i.w; +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[16].w), intBitsToFloat(uf_remappedPS[16].w))); +// 4 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), intBitsToFloat(PS1i))); +R17i.z = PV1i.w; +PS0i = floatBitsToInt(1.0 / abs(intBitsToFloat(PV1i.z))); +// 5 +R2i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R8i.w))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.x),intBitsToFloat(PS0i)) + 1.5)); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.y),intBitsToFloat(PS0i)) + 1.5)); +PV1i.w = R123i.w; +// 6 +R17i.x = PV1i.w; +R17i.y = PV1i.z; +R2i.z = floatBitsToInt(textureLod(textureUnitPS12, intBitsToFloat(R13i.xy),0.0).x); +R14i.xyz = floatBitsToInt(textureLod(textureUnitPS7, vec4(redcCUBEReverse(intBitsToFloat(R14i.xy),R14i.z),cubeMapArrayIndex7),intBitsToFloat(R14i.w)).xyz); +R15i.y = floatBitsToInt(textureLod(textureUnitPS5, intBitsToFloat(R15i.xy),intBitsToFloat(R15i.w)).x); +R12i.x = floatBitsToInt(textureLod(textureUnitPS0, intBitsToFloat(R12i.xz),0.0).x); +R16i.xyz = floatBitsToInt(texture(textureUnitPS16, intBitsToFloat(R16i.xy)).xyz); +R17i.xyz = floatBitsToInt(textureLod(textureUnitPS7, vec4(redcCUBEReverse(intBitsToFloat(R17i.xy),R17i.z),cubeMapArrayIndex7),intBitsToFloat(R17i.w)).xyz); +R18i.xyz = floatBitsToInt(texture(textureUnitPS11, intBitsToFloat(R18i.xy)).xyz); +// export +passPixelColor4 = vec4(intBitsToFloat(R11i.w), intBitsToFloat(R11i.w), intBitsToFloat(R11i.w), intBitsToFloat(R11i.w)); +// 0 +PV0i.x = floatBitsToInt(min(intBitsToFloat(R14i.y), intBitsToFloat(R14i.z))); +PV0i.y = floatBitsToInt(intBitsToFloat(R15i.y) + intBitsToFloat(uf_remappedPS[27].z)); +PV0i.y = clampFI32(PV0i.y); +PV0i.z = floatBitsToInt(max(intBitsToFloat(R14i.y), intBitsToFloat(R14i.z))); +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(uf_remappedPS[9].w)),intBitsToFloat(R2i.z)) + intBitsToFloat(R19i.y))); +PV0i.w = R123i.w; +R122i.x = floatBitsToInt((intBitsToFloat(R12i.x) * 2.0 + -(1.0))); +PS0i = R122i.x; +// 1 +R126i.x = floatBitsToInt(min(intBitsToFloat(R14i.x), intBitsToFloat(PV0i.x))); +R127i.y = floatBitsToInt(max(intBitsToFloat(R14i.x), intBitsToFloat(PV0i.z))); +PV1i.y = R127i.y; +R126i.z = floatBitsToInt(intBitsToFloat(PV0i.w) * 0.25); +R126i.z = clampFI32(R126i.z); +PV1i.z = R126i.z; +R126i.w = floatBitsToInt((intBitsToFloat(PS0i) * intBitsToFloat(0x41c80000) + intBitsToFloat(R13i.z))); +R25i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(R20i.y))); +PS1i = R25i.x; +// 2 +PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + 1.0); +R124i.y = floatBitsToInt(intBitsToFloat(R14i.x) + -(intBitsToFloat(PV1i.y))); +R127i.z = floatBitsToInt(intBitsToFloat(R14i.y) + -(intBitsToFloat(PV1i.y))); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(0x2edbe6ff)); +R124i.x = floatBitsToInt(intBitsToFloat(R14i.z) + -(intBitsToFloat(PV1i.y))); +PS0i = R124i.x; +// 3 +R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.w), intBitsToFloat(R25i.x))); +PV1i.x = R125i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R126i.z)),intBitsToFloat(PV0i.x)) + intBitsToFloat(PV0i.x))); +PV1i.y = R123i.y; +R14i.z = floatBitsToInt(-(intBitsToFloat(R126i.w)) + intBitsToFloat(uf_remappedPS[28].x)); +R11i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R17i.x), intBitsToFloat(R8i.x))); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.w)); +// 4 +backupReg0i = R126i.z; +PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +R14i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R0i.w))); +R126i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R126i.x)),intBitsToFloat(PS1i)) + 1.0)); +PV0i.z = R126i.z; +R126i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg0i)),intBitsToFloat(PV1i.y)) + intBitsToFloat(PV1i.y))); +PV0i.w = R126i.w; +R0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R17i.y), intBitsToFloat(R8i.x))); +PS0i = R0i.w; +// 5 +backupReg0i = R17i.z; +PV1i.x = floatBitsToInt(-(intBitsToFloat(PV0i.w)) + 1.0); +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R4i.w)) + intBitsToFloat(R125i.x))); +R17i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R8i.x))); +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(0x2edbe6ff)); +R4i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R18i.x), intBitsToFloat(R9i.y))); +PS1i = R4i.w; +// 6 +backupReg0i = R18i.z; +R18i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R18i.y), intBitsToFloat(R9i.y))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(R0i.z)) + intBitsToFloat(R126i.w))); +R123i.y = clampFI32(R123i.y); +PV0i.y = R123i.y; +R18i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R9i.y))); +R125i.x = floatBitsToInt(1.0 / intBitsToFloat(PV1i.w)); +PS0i = R125i.x; +// 7 +R123i.x = floatBitsToInt((intBitsToFloat(PV0i.y) * intBitsToFloat(0xbdcccccd) + intBitsToFloat(0x3dcccccd))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((intBitsToFloat(PV0i.y) * 0.5 + 0.5)); +PV1i.y = R123i.y; +R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(R21i.y)) + intBitsToFloat(R21i.y))); +R25i.w = PV0i.y; +PS1i = R25i.w; +// 8 +PV0i.z = floatBitsToInt(intBitsToFloat(R126i.z) + intBitsToFloat(PV1i.x)); +PV0i.z = clampFI32(PV0i.z); +PV0i.w = floatBitsToInt(intBitsToFloat(R9i.w) + intBitsToFloat(PV1i.y)); +PV0i.w = clampFI32(PV0i.w); +// 9 +R0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PV0i.w))); +tempResultf = max(0.0, intBitsToFloat(PV0i.z)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS1i = floatBitsToInt(tempResultf); +// 10 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(PS1i))); +// 11 +PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.x))); +// 12 +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(PS1i))); +// 13 +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(R125i.x))); +// 14 +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PV1i.z)) + intBitsToFloat(R127i.y))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.y),intBitsToFloat(PV1i.z)) + intBitsToFloat(R127i.y))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.x),intBitsToFloat(PV1i.z)) + intBitsToFloat(R127i.y))); +PV0i.w = R123i.w; +// 15 +R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(PV0i.z))); +PV1i.x = R124i.x; +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(PV0i.w))); +PV1i.y = R127i.y; +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(PV0i.y))); +PV1i.z = R127i.z; +// 16 +PV0i.x = floatBitsToInt(intBitsToFloat(R16i.y) + -(intBitsToFloat(PV1i.z))); +PV0i.z = floatBitsToInt(intBitsToFloat(R16i.z) + -(intBitsToFloat(PV1i.y))); +PV0i.w = floatBitsToInt(intBitsToFloat(R16i.x) + -(intBitsToFloat(PV1i.x))); +// 17 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(R15i.z)) + intBitsToFloat(R127i.y))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(R15i.z)) + intBitsToFloat(R124i.x))); +PV1i.y = R123i.y; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R15i.z)) + intBitsToFloat(R127i.z))); +PV1i.w = R123i.w; +// 18 +R26i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(R4i.z))); +R26i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R3i.y))); +R26i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R0i.x))); +// 0 +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R14i.z),intBitsToFloat(uf_remappedPS[29].x)) + intBitsToFloat(uf_remappedPS[30].w))); +R123i.z = clampFI32(R123i.z); +PV0i.z = R123i.z; +// 1 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(uf_remappedPS[31].w))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[32].y),intBitsToFloat(R0i.z)) + intBitsToFloat(R26i.y))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[32].x),intBitsToFloat(R0i.z)) + intBitsToFloat(R26i.x))); +PV1i.z = R123i.z; +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[32].x), intBitsToFloat(R14i.y))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[32].y), intBitsToFloat(R14i.y))); +PS1i = R127i.z; +// 2 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[32].z),intBitsToFloat(R0i.z)) + intBitsToFloat(R26i.z))); +PV0i.x = R123i.x; +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R22i.y))); +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R7i.x)),intBitsToFloat(PV1i.y)) + intBitsToFloat(PV1i.y))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R7i.x)),intBitsToFloat(PV1i.z)) + intBitsToFloat(PV1i.z))); +PV0i.w = R123i.w; +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[32].z), intBitsToFloat(R14i.y))); +PS0i = R127i.y; +// 3 +R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R10i.x))); +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R7i.x)),intBitsToFloat(PV0i.x)) + intBitsToFloat(PV0i.x))); +PV1i.y = R123i.y; +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(R3i.z))); +R125i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.y)),intBitsToFloat(R3i.z)) + intBitsToFloat(R3i.z))); +PV1i.w = R125i.w; +R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R10i.w))); +PS1i = R125i.x; +// 4 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[31].x), intBitsToFloat(PV1i.z))); +R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.y), intBitsToFloat(PV1i.w))); +PV0i.y = R124i.y; +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[31].y), intBitsToFloat(PV1i.z))); +R124i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(R10i.z))); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[31].z), intBitsToFloat(PV1i.z))); +PS0i = R126i.y; +// 5 +backupReg0i = R127i.y; +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R2i.x)) + intBitsToFloat(R0i.w))); +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.w),intBitsToFloat(R2i.x)) + intBitsToFloat(R11i.w))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[26].x),intBitsToFloat(PV0i.y)) + intBitsToFloat(PV0i.x))); +PV1i.z = R123i.z; +R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R2i.x)) + intBitsToFloat(R17i.z))); +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[26].y),intBitsToFloat(PV0i.y)) + intBitsToFloat(PV0i.z))); +PS1i = R126i.x; +// 6 +R123i.x = floatBitsToInt((intBitsToFloat(R124i.w) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((intBitsToFloat(R125i.x) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((intBitsToFloat(R124i.x) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[26].z),intBitsToFloat(R124i.y)) + intBitsToFloat(R126i.y))); +PV0i.w = R123i.w; +R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.w),intBitsToFloat(R10i.y)) + intBitsToFloat(PV1i.z))); +PS0i = R127i.z; +// 7 +backupReg0i = R127i.x; +backupReg1i = R126i.w; +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R18i.x),intBitsToFloat(R10i.y)) + intBitsToFloat(R126i.x))); +PV1i.y = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(PV0i.y)); +PV1i.z = floatBitsToInt(intBitsToFloat(R127i.y) + intBitsToFloat(PV0i.z)); +R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R18i.z),intBitsToFloat(R10i.y)) + intBitsToFloat(PV0i.w))); +PS1i = floatBitsToInt(intBitsToFloat(backupReg1i) + intBitsToFloat(PV0i.x)); +// 8 +R5i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R23i.x),intBitsToFloat(R6i.z)) + intBitsToFloat(PV1i.z))); +R5i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R23i.y),intBitsToFloat(R6i.z)) + intBitsToFloat(PV1i.y))); +R5i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R23i.z),intBitsToFloat(R6i.z)) + intBitsToFloat(PS1i))); +R24i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[25].x),intBitsToFloat(R3i.x)) + intBitsToFloat(R127i.z))); +PS0i = R24i.x; +// 9 +R24i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[25].y),intBitsToFloat(R3i.x)) + intBitsToFloat(R127i.x))); +R24i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[25].z),intBitsToFloat(R3i.x)) + intBitsToFloat(R126i.w))); +R25i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R8i.y)),intBitsToFloat(R125i.w)) + intBitsToFloat(R125i.w))); +PS1i = R25i.z; +// 10 +R3i.xyz = ivec3(R5i.x,R5i.y,R5i.z); +R3i.w = R5i.w; +// 11 +R1i.xyz = ivec3(R24i.x,R24i.y,R24i.z); +R1i.w = R24i.w; +// 12 +R0i.xyz = ivec3(R25i.x,R25i.y,R25i.z); +R0i.w = R25i.w; +// 13 +R2i.xyz = ivec3(R26i.x,R26i.y,R26i.z); +R2i.w = R26i.w; + +// export +passPixelColor0 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z) * fogBrightness, intBitsToFloat(R0i.w)); + +#if ($enableGreeneryFogColor == 0) +passPixelColor1 = vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.w)*fogOpacity); +#else +passPixelColor1 = vec4(fogRed, fogGreen, fogBlue, intBitsToFloat(R1i.w)*fogOpacity); +#endif + +passPixelColor2 = 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)); +} diff --git a/src/BreathOfTheWild/Mods/Fog/rules.txt b/src/BreathOfTheWild/Mods/Fog/rules.txt index a695ea7c..ec16f109 100644 --- a/src/BreathOfTheWild/Mods/Fog/rules.txt +++ b/src/BreathOfTheWild/Mods/Fog/rules.txt @@ -8,6 +8,26 @@ version = 6 [Default] $setting:int = 0 +$enableGroundFogColor:int = 1 +$groundFogRed = 1.0 +$groundFogGreen = 1.0 +$groundFogBlue = 1.0 +$groundFogOpacity = 1.0 +$groundFogBrightness = 1.0 + +$enableWaterFogColor:int = 1 +$waterFogRed = 1.0 +$waterFogGreen = 1.0 +$waterFogBlue = 1.0 +$waterFogOpacity = 1.0 + +$enableGreeneryFogColor:int = 1 +$greeneryFogRed = 1.0 +$greeneryFogGreen = 1.0 +$greeneryFogBlue = 1.0 +$greeneryFogOpacity = 1.0 +$greeneryFogBrightness = 1.0 + $enableDistanceFogColor:int = 1 $distanceFogRed = 1.0 $distanceFogGreen = 1.0 @@ -35,84 +55,528 @@ $ganonAuraOpacity = 1.0 # Setting Selector [Preset] -name = Distance Fog +name = Ground Fog category = Fog Settings default = 1 $setting:int = 0 [Preset] -name = Mist Clouds +name = Water Fog category = Fog Settings $setting:int = 1 [Preset] -name = Hyrule Castle Fog/Aura +name = Greenery Fog (e.g. trees, bushes and vines) category = Fog Settings +default = 1 $setting:int = 2 +[Preset] +name = Distance Fog +category = Fog Settings +$setting:int = 3 + +[Preset] +name = Mist Clouds +category = Fog Settings +$setting:int = 4 + +[Preset] +name = Hyrule Castle Fog/Aura +category = Fog Settings +$setting:int = 5 + + +# Ground Fog + +[Preset] +name = 100% Opacity (Default) +category = Ground Fog Visibility +condition = $setting == 0 +default = 1 +$groundFogOpacity = 1.0 + +[Preset] +name = 80% Opacity +category = Ground Fog Visibility +condition = $setting == 0 +$groundFogOpacity = 0.8 + +[Preset] +name = 60% Opacity +category = Ground Fog Visibility +condition = $setting == 0 +$groundFogOpacity = 0.6 + +[Preset] +name = 50% Opacity +category = Ground Fog Visibility +condition = $setting == 0 +$groundFogOpacity = 0.5 + +[Preset] +name = 40% Opacity +category = Ground Fog Visibility +condition = $setting == 0 +$groundFogOpacity = 0.4 + +[Preset] +name = 20% Opacity +category = Ground Fog Visibility +condition = $setting == 0 +$groundFogOpacity = 0.2 + +[Preset] +name = 10% Opacity +category = Ground Fog Visibility +condition = $setting == 0 +$groundFogOpacity = 0.1 + +[Preset] +name = 0% Opacity +category = Ground Fog Visibility +condition = $setting == 0 +$groundFogOpacity = 0.0 + +[Preset] +name = 0.5x Brightness +category = Ground Fog Brightness +condition = $setting == 0 +$groundFogBrightness = 0.5 + +[Preset] +name = 0.75x Brightness +category = Ground Fog Brightness +condition = $setting == 0 +$groundFogBrightness = 0.75 + +[Preset] +name = 1x Brightness (Default) +category = Ground Fog Brightness +default = 1 +condition = $setting == 0 +$groundFogBrightness = 1.0 + +[Preset] +name = 1.5x Brightness +category = Ground Fog Brightness +condition = $setting == 0 +$groundFogBrightness = 1.5 + +[Preset] +name = 2x Brightness +category = Ground Fog Brightness +condition = $setting == 0 +$groundFogBrightness = 2.0 + +[Preset] +name = 3x Brightness +category = Ground Fog Brightness +condition = $setting == 0 +$groundFogBrightness = 3.0 + +[Preset] +name = 4x Brightness +category = Ground Fog Brightness +condition = $setting == 0 +$groundFogBrightness = 4.0 + +[Preset] +name = Normal (Default) +category = Ground Fog Color +condition = $setting == 0 +default = 1 +$enableGroundFogColor:int = 0 + +[Preset] +name = Black Fog +category = Ground Fog Color +condition = $setting == 0 +$groundFogRed = 1.0 +$groundFogGreen = 1.0 +$groundFogBlue = 1.0 + +[Preset] +name = Gray Fog +category = Ground Fog Color +condition = $setting == 0 +$groundFogRed = 0.75 +$groundFogGreen = 0.75 +$groundFogBlue = 0.75 + +[Preset] +name = Navy Fog +category = Ground Fog Color +condition = $setting == 0 +$groundFogRed = 0.0 +$groundFogGreen = 0.0 +$groundFogBlue = 0.5 + +[Preset] +name = Blue Fog +category = Ground Fog Color +condition = $setting == 0 +$groundFogRed = 0.0 +$groundFogGreen = 0.0 +$groundFogBlue = 1.0 + +[Preset] +name = Cyan Fog +category = Ground Fog Color +condition = $setting == 0 +$groundFogRed = 0.0 +$groundFogGreen = 0.5 +$groundFogBlue = 0.5 + +[Preset] +name = Green Fog +category = Ground Fog Color +condition = $setting == 0 +$groundFogRed = 0.0 +$groundFogGreen = 1.0 +$groundFogBlue = 0.0 + +[Preset] +name = Red Fog +category = Ground Fog Color +condition = $setting == 0 +$groundFogRed = 1.0 +$groundFogGreen = 0.0 +$groundFogBlue = 0.0 + +# Water Fog + +[Preset] +name = 100% Opacity (Default) +category = Water Fog Visibility +condition = $setting == 1 +default = 1 +$waterFogOpacity = 1.0 + +[Preset] +name = 80% Opacity +category = Water Fog Visibility +condition = $setting == 1 +$waterFogOpacity = 0.8 + +[Preset] +name = 60% Opacity +category = Water Fog Visibility +condition = $setting == 1 +$waterFogOpacity = 0.6 + +[Preset] +name = 50% Opacity +category = Water Fog Visibility +condition = $setting == 1 +$waterFogOpacity = 0.5 + +[Preset] +name = 40% Opacity +category = Water Fog Visibility +condition = $setting == 1 +$waterFogOpacity = 0.4 + +[Preset] +name = 20% Opacity +category = Water Fog Visibility +condition = $setting == 1 +$waterFogOpacity = 0.2 + +[Preset] +name = 10% Opacity +category = Water Fog Visibility +condition = $setting == 1 +$waterFogOpacity = 0.1 + +[Preset] +name = 0% Opacity +category = Water Fog Visibility +condition = $setting == 1 +$waterFogOpacity = 0.0 + +[Preset] +name = Normal (Default) +category = Water Fog Color +condition = $setting == 1 +default = 1 +$enableWaterFogColor:int = 0 + +[Preset] +name = Black Fog +category = Water Fog Color +condition = $setting == 1 +$waterFogRed = 1.0 +$waterFogGreen = 1.0 +$waterFogBlue = 1.0 + +[Preset] +name = Gray Fog +category = Water Fog Color +condition = $setting == 1 +$waterFogRed = 0.75 +$waterFogGreen = 0.75 +$waterFogBlue = 0.75 + +[Preset] +name = Navy Fog +category = Water Fog Color +condition = $setting == 1 +$waterFogRed = 0.0 +$waterFogGreen = 0.0 +$waterFogBlue = 0.5 + +[Preset] +name = Blue Fog +category = Water Fog Color +condition = $setting == 1 +$waterFogRed = 0.0 +$waterFogGreen = 0.0 +$waterFogBlue = 1.0 + +[Preset] +name = Cyan Fog +category = Water Fog Color +condition = $setting == 1 +$waterFogRed = 0.0 +$waterFogGreen = 0.5 +$waterFogBlue = 0.5 + +[Preset] +name = Green Fog +category = Water Fog Color +condition = $setting == 1 +$waterFogRed = 0.0 +$waterFogGreen = 1.0 +$waterFogBlue = 0.0 + +[Preset] +name = Red Fog +category = Water Fog Color +condition = $setting == 1 +$waterFogRed = 1.0 +$waterFogGreen = 0.0 +$waterFogBlue = 0.0 + +# Greenery Fog + +[Preset] +name = 100% Opacity (Default) +category = Greenery Fog Visibility +condition = $setting == 2 +default = 1 +$greeneryFogOpacity = 1.0 + +[Preset] +name = 80% Opacity +category = Greenery Fog Visibility +condition = $setting == 2 +$greeneryFogOpacity = 0.8 + +[Preset] +name = 60% Opacity +category = Greenery Fog Visibility +condition = $setting == 2 +$greeneryFogOpacity = 0.6 + +[Preset] +name = 50% Opacity +category = Greenery Fog Visibility +condition = $setting == 2 +$greeneryFogOpacity = 0.5 + +[Preset] +name = 40% Opacity +category = Greenery Fog Visibility +condition = $setting == 2 +$greeneryFogOpacity = 0.4 + +[Preset] +name = 20% Opacity +category = Greenery Fog Visibility +condition = $setting == 2 +$greeneryFogOpacity = 0.2 + +[Preset] +name = 10% Opacity +category = Greenery Fog Visibility +condition = $setting == 2 +$greeneryFogOpacity = 0.1 + +[Preset] +name = 0% Opacity +category = Greenery Fog Visibility +condition = $setting == 2 +$greeneryFogOpacity = 0.0 + +[Preset] +name = 0.5x Brightness +category = Greenery Fog Brightness +condition = $setting == 2 +$greeneryFogBrightness = 0.5 + +[Preset] +name = 0.75x Brightness +category = Greenery Fog Brightness +condition = $setting == 2 +$greeneryFogBrightness = 0.75 + +[Preset] +name = 1x Brightness (Default) +category = Greenery Fog Brightness +default = 1 +condition = $setting == 2 +$greeneryFogBrightness = 1.0 + +[Preset] +name = 1.5x Brightness +category = Greenery Fog Brightness +condition = $setting == 2 +$greeneryFogBrightness = 1.5 + +[Preset] +name = 2x Brightness +category = Greenery Fog Brightness +condition = $setting == 2 +$greeneryFogBrightness = 2.0 + +[Preset] +name = 3x Brightness +category = Greenery Fog Brightness +condition = $setting == 2 +$greeneryFogBrightness = 3.0 + +[Preset] +name = 4x Brightness +category = Greenery Fog Brightness +condition = $setting == 2 +$greeneryFogBrightness = 4.0 + +[Preset] +name = Normal (Default) +category = Greenery Fog Color +condition = $setting == 2 +default = 1 +$enableGreeneryFogColor:int = 0 + +[Preset] +name = Black Fog +category = Greenery Fog Color +condition = $setting == 2 +$greeneryFogRed = 1.0 +$greeneryFogGreen = 1.0 +$greeneryFogBlue = 1.0 + +[Preset] +name = Gray Fog +category = Greenery Fog Color +condition = $setting == 2 +$greeneryFogRed = 0.75 +$greeneryFogGreen = 0.75 +$greeneryFogBlue = 0.75 + +[Preset] +name = Navy Fog +category = Greenery Fog Color +condition = $setting == 2 +$greeneryFogRed = 0.0 +$greeneryFogGreen = 0.0 +$greeneryFogBlue = 0.5 + +[Preset] +name = Blue Fog +category = Greenery Fog Color +condition = $setting == 2 +$greeneryFogRed = 0.0 +$greeneryFogGreen = 0.0 +$greeneryFogBlue = 1.0 + +[Preset] +name = Cyan Fog +category = Greenery Fog Color +condition = $setting == 2 +$greeneryFogRed = 0.0 +$greeneryFogGreen = 0.5 +$greeneryFogBlue = 0.5 + +[Preset] +name = Green Fog +category = Greenery Fog Color +condition = $setting == 2 +$greeneryFogRed = 0.0 +$greeneryFogGreen = 1.0 +$greeneryFogBlue = 0.0 + +[Preset] +name = Red Fog +category = Greenery Fog Color +condition = $setting == 2 +$greeneryFogRed = 1.0 +$greeneryFogGreen = 0.0 +$greeneryFogBlue = 0.0 # Distance Fog [Preset] name = 100% Opacity (Default) category = Distance Fog Visibility -condition = $setting == 0 +condition = $setting == 3 default = 1 $distanceFogOpacity = 1.0 [Preset] name = 80% Opacity category = Distance Fog Visibility -condition = $setting == 0 +condition = $setting == 3 $distanceFogOpacity = 0.8 [Preset] name = 60% Opacity category = Distance Fog Visibility -condition = $setting == 0 +condition = $setting == 3 $distanceFogOpacity = 0.6 [Preset] name = 50% Opacity category = Distance Fog Visibility -condition = $setting == 0 +condition = $setting == 3 $distanceFogOpacity = 0.5 [Preset] name = 40% Opacity category = Distance Fog Visibility -condition = $setting == 0 +condition = $setting == 3 $distanceFogOpacity = 0.4 [Preset] name = 20% Opacity category = Distance Fog Visibility -condition = $setting == 0 +condition = $setting == 3 $distanceFogOpacity = 0.2 [Preset] name = 10% Opacity category = Distance Fog Visibility -condition = $setting == 0 +condition = $setting == 3 $distanceFogOpacity = 0.1 [Preset] name = 0% Opacity category = Distance Fog Visibility -condition = $setting == 0 +condition = $setting == 3 $distanceFogOpacity = 0.0 [Preset] name = Normal (Default) category = Distance Fog Color -condition = $setting == 0 +condition = $setting == 3 default = 1 $enableDistanceFogColor:int = 0 [Preset] name = Black Fog category = Distance Fog Color -condition = $setting == 0 +condition = $setting == 3 $distanceFogRed = 1.0 $distanceFogGreen = 1.0 $distanceFogBlue = 1.0 @@ -120,7 +584,7 @@ $distanceFogBlue = 1.0 [Preset] name = Gray Fog category = Distance Fog Color -condition = $setting == 0 +condition = $setting == 3 $distanceFogRed = 0.75 $distanceFogGreen = 0.75 $distanceFogBlue = 0.75 @@ -128,7 +592,7 @@ $distanceFogBlue = 0.75 [Preset] name = Navy Fog category = Distance Fog Color -condition = $setting == 0 +condition = $setting == 3 $distanceFogRed = 0.0 $distanceFogGreen = 0.0 $distanceFogBlue = 0.5 @@ -136,7 +600,7 @@ $distanceFogBlue = 0.5 [Preset] name = Blue Fog category = Distance Fog Color -condition = $setting == 0 +condition = $setting == 3 $distanceFogRed = 0.0 $distanceFogGreen = 0.0 $distanceFogBlue = 1.0 @@ -144,7 +608,7 @@ $distanceFogBlue = 1.0 [Preset] name = Cyan Fog category = Distance Fog Color -condition = $setting == 0 +condition = $setting == 3 $distanceFogRed = 0.0 $distanceFogGreen = 0.5 $distanceFogBlue = 0.5 @@ -152,7 +616,7 @@ $distanceFogBlue = 0.5 [Preset] name = Green Fog category = Distance Fog Color -condition = $setting == 0 +condition = $setting == 3 $distanceFogRed = 0.0 $distanceFogGreen = 1.0 $distanceFogBlue = 0.0 @@ -160,7 +624,7 @@ $distanceFogBlue = 0.0 [Preset] name = Red Fog category = Distance Fog Color -condition = $setting == 0 +condition = $setting == 3 $distanceFogRed = 1.0 $distanceFogGreen = 0.0 $distanceFogBlue = 0.0 @@ -170,63 +634,63 @@ $distanceFogBlue = 0.0 [Preset] name = 100% Opacity (Default) category = Fog Clouds Visibility -condition = $setting == 1 +condition = $setting == 4 default = 1 $fogCloudsOpacity = 1.0 [Preset] name = 80% Opacity category = Fog Clouds Visibility -condition = $setting == 1 +condition = $setting == 4 $fogCloudsOpacity = 0.8 [Preset] name = 60% Opacity category = Fog Clouds Visibility -condition = $setting == 1 +condition = $setting == 4 $fogCloudsOpacity = 0.6 [Preset] name = 50% Opacity category = Fog Clouds Visibility -condition = $setting == 1 +condition = $setting == 4 $fogCloudsOpacity = 0.5 [Preset] name = 40% Opacity category = Fog Clouds Visibility -condition = $setting == 1 +condition = $setting == 4 $fogCloudsOpacity = 0.4 [Preset] name = 20% Opacity category = Fog Clouds Visibility -condition = $setting == 1 +condition = $setting == 4 $fogCloudsOpacity = 0.2 [Preset] name = 10% Opacity category = Fog Clouds Visibility -condition = $setting == 1 +condition = $setting == 4 $fogCloudsOpacity = 0.1 [Preset] name = 0% Opacity category = Fog Clouds Visibility -condition = $setting == 1 +condition = $setting == 4 $fogCloudsOpacity = 0.0 [Preset] name = Normal (Default) category = Fog Clouds Color -condition = $setting == 1 +condition = $setting == 4 default = 1 $enableFogCloudsColor:int = 0 [Preset] name = Black Fog category = Fog Clouds Color -condition = $setting == 1 +condition = $setting == 4 $fogCloudsRed = 1.0 $fogCloudsGreen = 1.0 $fogCloudsBlue = 1.0 @@ -234,7 +698,7 @@ $fogCloudsBlue = 1.0 [Preset] name = Gray Fog category = Fog Clouds Color -condition = $setting == 1 +condition = $setting == 4 $fogCloudsRed = 0.75 $fogCloudsGreen = 0.75 $fogCloudsBlue = 0.75 @@ -242,7 +706,7 @@ $fogCloudsBlue = 0.75 [Preset] name = Navy Fog category = Fog Clouds Color -condition = $setting == 1 +condition = $setting == 4 $fogCloudsRed = 0.0 $fogCloudsGreen = 0.0 $fogCloudsBlue = 0.5 @@ -250,7 +714,7 @@ $fogCloudsBlue = 0.5 [Preset] name = Blue Fog category = Fog Clouds Color -condition = $setting == 1 +condition = $setting == 4 $fogCloudsRed = 0.0 $fogCloudsGreen = 0.0 $fogCloudsBlue = 1.0 @@ -258,7 +722,7 @@ $fogCloudsBlue = 1.0 [Preset] name = Cyan Fog category = Fog Clouds Color -condition = $setting == 1 +condition = $setting == 4 $fogCloudsRed = 0.0 $fogCloudsGreen = 0.5 $fogCloudsBlue = 0.5 @@ -266,7 +730,7 @@ $fogCloudsBlue = 0.5 [Preset] name = Green Fog category = Fog Clouds Color -condition = $setting == 1 +condition = $setting == 4 $fogCloudsRed = 0.0 $fogCloudsGreen = 1.0 $fogCloudsBlue = 0.0 @@ -274,7 +738,7 @@ $fogCloudsBlue = 0.0 [Preset] name = Red Fog category = Fog Clouds Color -condition = $setting == 1 +condition = $setting == 4 $fogCloudsRed = 1.0 $fogCloudsGreen = 0.0 $fogCloudsBlue = 0.0 @@ -284,63 +748,63 @@ $fogCloudsBlue = 0.0 [Preset] name = 100% Opacity (Default) category = Castle Fog Visibility -condition = $setting == 2 +condition = $setting == 5 default = 1 $castleFogOpacity = 1.0 [Preset] name = 80% Opacity category = Castle Fog Visibility -condition = $setting == 2 +condition = $setting == 5 $castleFogOpacity = 0.8 [Preset] name = 60% Opacity category = Castle Fog Visibility -condition = $setting == 2 +condition = $setting == 5 $castleFogOpacity = 0.6 [Preset] name = 50% Opacity category = Castle Fog Visibility -condition = $setting == 2 +condition = $setting == 5 $castleFogOpacity = 0.5 [Preset] name = 40% Opacity category = Castle Fog Visibility -condition = $setting == 2 +condition = $setting == 5 $castleFogOpacity = 0.4 [Preset] name = 20% Opacity category = Castle Fog Visibility -condition = $setting == 2 +condition = $setting == 5 $castleFogOpacity = 0.2 [Preset] name = 10% Opacity category = Castle Fog Visibility -condition = $setting == 2 +condition = $setting == 5 $castleFogOpacity = 0.1 [Preset] name = 0% Opacity category = Castle Fog Visibility -condition = $setting == 2 +condition = $setting == 5 $castleFogOpacity = 0.0 [Preset] name = Normal (Default) category = Castle Fog Color -condition = $setting == 2 +condition = $setting == 5 default = 1 $enableCastleFogColor:int = 0 [Preset] name = Black Fog category = Castle Fog Color -condition = $setting == 2 +condition = $setting == 5 $castleFogRed = 1.0 $castleFogGreen = 1.0 $castleFogBlue = 1.0 @@ -348,7 +812,7 @@ $castleFogBlue = 1.0 [Preset] name = Gray Fog category = Castle Fog Color -condition = $setting == 2 +condition = $setting == 5 $castleFogRed = 0.75 $castleFogGreen = 0.75 $castleFogBlue = 0.75 @@ -356,7 +820,7 @@ $castleFogBlue = 0.75 [Preset] name = Navy Fog category = Castle Fog Color -condition = $setting == 2 +condition = $setting == 5 $castleFogRed = 0.0 $castleFogGreen = 0.0 $castleFogBlue = 0.5 @@ -364,7 +828,7 @@ $castleFogBlue = 0.5 [Preset] name = Blue Fog category = Castle Fog Color -condition = $setting == 2 +condition = $setting == 5 $castleFogRed = 0.0 $castleFogGreen = 0.0 $castleFogBlue = 1.0 @@ -372,7 +836,7 @@ $castleFogBlue = 1.0 [Preset] name = Cyan Fog category = Castle Fog Color -condition = $setting == 2 +condition = $setting == 5 $castleFogRed = 0.0 $castleFogGreen = 0.5 $castleFogBlue = 0.5 @@ -380,7 +844,7 @@ $castleFogBlue = 0.5 [Preset] name = Green Fog category = Castle Fog Color -condition = $setting == 2 +condition = $setting == 5 $castleFogRed = 0.0 $castleFogGreen = 1.0 $castleFogBlue = 0.0 @@ -388,7 +852,7 @@ $castleFogBlue = 0.0 [Preset] name = Red Fog category = Castle Fog Color -condition = $setting == 2 +condition = $setting == 5 $castleFogRed = 1.0 $castleFogGreen = 0.0 $castleFogBlue = 0.0 @@ -399,81 +863,81 @@ $castleFogBlue = 0.0 [Preset] name = 300% Opacity category = Ganon's Aura Visibility -condition = $setting == 2 +condition = $setting == 6 $ganonAuraOpacity = 2.0 [Preset] name = 200% Opacity category = Ganon's Aura Visibility -condition = $setting == 2 +condition = $setting == 6 $ganonAuraOpacity = 2.0 [Preset] name = 150% Opacity category = Ganon's Aura Visibility -condition = $setting == 2 +condition = $setting == 6 $ganonAuraOpacity = 1.5 [Preset] name = 100% Opacity (Default) category = Ganon's Aura Visibility -condition = $setting == 2 +condition = $setting == 6 default = 1 $ganonAuraOpacity = 1.0 [Preset] name = 80% Opacity category = Ganon's Aura Visibility -condition = $setting == 2 +condition = $setting == 6 $ganonAuraOpacity = 0.8 [Preset] name = 60% Opacity category = Ganon's Aura Visibility -condition = $setting == 2 +condition = $setting == 6 $ganonAuraOpacity = 0.6 [Preset] name = 50% Opacity category = Ganon's Aura Visibility -condition = $setting == 2 +condition = $setting == 6 $ganonAuraOpacity = 0.5 [Preset] name = 40% Opacity category = Ganon's Aura Visibility -condition = $setting == 2 +condition = $setting == 6 $ganonAuraOpacity = 0.4 [Preset] name = 20% Opacity category = Ganon's Aura Visibility -condition = $setting == 2 +condition = $setting == 6 $ganonAuraOpacity = 0.2 [Preset] name = 10% Opacity category = Ganon's Aura Visibility -condition = $setting == 2 +condition = $setting == 6 $ganonAuraOpacity = 0.2 [Preset] name = 0% Opacity category = Ganon's Aura Visibility -condition = $setting == 2 +condition = $setting == 6 $ganonAuraOpacity = 0.0 [Preset] name = Normal (Default) category = Ganon's Aura Color -condition = $setting == 2 +condition = $setting == 6 default = 1 $enableGanonAuraColor:int = 0 [Preset] name = Black Aura category = Ganon's Aura Color -condition = $setting == 2 +condition = $setting == 6 $ganonAuraRed = 1.0 $ganonAuraGreen = 1.0 $ganonAuraBlue = 1.0 @@ -481,7 +945,7 @@ $ganonAuraBlue = 1.0 [Preset] name = Navy Aura category = Ganon's Aura Color -condition = $setting == 2 +condition = $setting == 6 $ganonAuraRed = 0.0 $ganonAuraGreen = 0.0 $ganonAuraBlue = 0.5 @@ -489,7 +953,7 @@ $ganonAuraBlue = 0.5 [Preset] name = Blue Aura category = Ganon's Aura Color -condition = $setting == 2 +condition = $setting == 6 $ganonAuraRed = 0.0 $ganonAuraGreen = 0.0 $ganonAuraBlue = 1.0 @@ -497,7 +961,7 @@ $ganonAuraBlue = 1.0 [Preset] name = Cyan Aura category = Ganon's Aura Color -condition = $setting == 2 +condition = $setting == 6 $ganonAuraRed = 0.0 $ganonAuraGreen = 0.5 $ganonAuraBlue = 0.5 @@ -505,7 +969,7 @@ $ganonAuraBlue = 0.5 [Preset] name = Green Aura category = Ganon's Aura Color -condition = $setting == 2 +condition = $setting == 6 $ganonAuraRed = 0.0 $ganonAuraGreen = 1.0 $ganonAuraBlue = 0.0 @@ -513,7 +977,7 @@ $ganonAuraBlue = 0.0 [Preset] name = Red Aura category = Ganon's Aura Color -condition = $setting == 2 +condition = $setting == 6 $ganonAuraRed = 1.0 $ganonAuraGreen = 0.0 $ganonAuraBlue = 0.0 \ No newline at end of file diff --git a/Enhancements/NewSuperMarioBrosU_FancyFX/03285368cf940e37_0000000000000079_ps.txt b/src/NewSuperMarioBrosU/Graphics/03285368cf940e37_0000000000000079_ps.txt similarity index 73% rename from Enhancements/NewSuperMarioBrosU_FancyFX/03285368cf940e37_0000000000000079_ps.txt rename to src/NewSuperMarioBrosU/Graphics/03285368cf940e37_0000000000000079_ps.txt index a937d436..05cb4817 100644 --- a/Enhancements/NewSuperMarioBrosU_FancyFX/03285368cf940e37_0000000000000079_ps.txt +++ b/src/NewSuperMarioBrosU/Graphics/03285368cf940e37_0000000000000079_ps.txt @@ -1,35 +1,24 @@ -#version 420 +#version 430 #extension GL_ARB_texture_gather : enable #extension GL_ARB_separate_shader_objects : enable +// shader 03285368cf940e37 +// Used for: Scaling Box Blur Background +const float blurQuality = float($blurQuality); +const int sampleScale = 2; + + +// start of shader inputs/outputs, predetermined by Cemu. Do not touch #ifdef VULKAN #define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) #define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) #define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) -#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 #define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) -#define gl_VertexID gl_VertexIndex -#define gl_InstanceID gl_InstanceIndex #else #define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) #define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) #define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) -#define SET_POSITION(_v) gl_Position = _v #define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) #endif -// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. - -// shader 03285368cf940e37 //box bg - -//float dither = $dither ; -//float scaleShader = $scaleShader; -float scaleBlur = $scaleBlur; //0.25 4k -const int sampleScale = 2; -//float lightBloom = 0.95; - - -TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; -layout(location = 0) in vec4 passParameterSem3; -layout(location = 0) out vec4 passPixelColor0; #ifdef VULKAN layout(set = 1, binding = 1) uniform ufBlock { @@ -39,6 +28,7 @@ uniform vec4 uf_fragCoordScale; uniform vec2 uf_fragCoordScale; #endif + // FabriceNeyret2 CC, single shader gaussian by intermediate MIPmap level. www.shadertoy.com/view/ltScRG const int samples = 8 * sampleScale, //8 or 4 balances xy position LOD = 2, // gaussian done on MIPmap at scale LOD @@ -58,10 +48,14 @@ vec4 blur(sampler2D sp, vec2 U, vec2 scale) { O += gaussian(d) * textureLod(sp, U + scale * d, float(LOD)); } - //O / O.a; - return vec4(O.x, O.y, O.z, 0.0)*18; //16 exact, 17 ~ a touch more haze to compensate res increase + return vec4(O.x, O.y, O.z, 0.0)*17; //16 exact, 17 ~ a touch more haze to compensate res increase } + +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +layout(location = 0) in vec4 passParameterSem3; +layout(location = 0) out vec4 passPixelColor0; +// end of shader inputs/outputs int clampFI32(int v) { if( v == 0x7FFFFFFF ) @@ -70,7 +64,7 @@ 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));} +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); @@ -90,21 +84,28 @@ vec3 cubeMapSTM; int cubeMapFaceId; R0f = passParameterSem3; -vec2 coord = passParameterSem3.xy*textureSize(textureUnitPS0, 0); // -vec2 ps = vec2(1.0) / textureSize(textureUnitPS0, 0); -vec2 uv = coord * ps; +if (blurQuality != 0.0) { + vec2 coord = passParameterSem3.xy*textureSize(textureUnitPS0, 0); + vec2 ps = vec2(1.0) / textureSize(textureUnitPS0, 0); + vec2 uv = coord * ps; + + R1f.xyz = blur(textureUnitPS0, R0f.xy, ps*blurQuality).xyz; + R2f.xyz = R1f.xyz; + R3f.xyz = R1f.xyz; + R0f.xyz = R1f.xyz; +} +else { + R1f.xyz = (texture(textureUnitPS0, R0f.xy).xyz); + R2f.xyz = (texture(textureUnitPS0, R0f.zy).xyz); + R3f.xyz = (texture(textureUnitPS0, R0f.xw).xyz); + R0f.xyz = (texture(textureUnitPS0, R0f.zw).xyz); +} -R1f.xyz = blur(textureUnitPS0, R0f.xy, ps*scaleBlur).xyz; -R2f.xyz = R1f.xyz; -R3f.xyz = R1f.xyz; -R0f.xyz = R1f.xyz; -/* -R1f.xyz = (texture(textureUnitPS0, R0f.xy).xyz); -R2f.xyz = (texture(textureUnitPS0, R0f.zy).xyz); -R3f.xyz = (texture(textureUnitPS0, R0f.xw).xyz); -R0f.xyz = (texture(textureUnitPS0, R0f.zw).xyz); -*/ +//R1f.xyz = (texture(textureUnitPS0, R0f.xy).xyz); +//R2f.xyz = (texture(textureUnitPS0, R0f.zy).xyz); +//R3f.xyz = (texture(textureUnitPS0, R0f.xw).xyz); +//R0f.xyz = (texture(textureUnitPS0, R0f.zw).xyz); // 0 PV0f.x = R1f.z + R2f.z; PV0f.x /= 2.0; diff --git a/Resolutions/NewSuperMarioBrosU_Resolution/50e29e8929cea348_00000000000003c9_ps.txt b/src/NewSuperMarioBrosU/Graphics/50e29e8929cea348_00000000000003c9_ps.txt similarity index 99% rename from Resolutions/NewSuperMarioBrosU_Resolution/50e29e8929cea348_00000000000003c9_ps.txt rename to src/NewSuperMarioBrosU/Graphics/50e29e8929cea348_00000000000003c9_ps.txt index 71209539..a8de215b 100644 --- a/Resolutions/NewSuperMarioBrosU_Resolution/50e29e8929cea348_00000000000003c9_ps.txt +++ b/src/NewSuperMarioBrosU/Graphics/50e29e8929cea348_00000000000003c9_ps.txt @@ -19,7 +19,7 @@ // This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. // shader 50e29e8929cea348 -// Used for: Scaling Anti-Aliasing solution of game +// Used for: Scaling Anti-Aliasing #ifdef VULKAN diff --git a/Resolutions/NewSuperMarioBrosU_Resolution/70b82af4d17024d2_0000000000000000_vs.txt b/src/NewSuperMarioBrosU/Graphics/70b82af4d17024d2_0000000000000000_vs.txt similarity index 99% rename from Resolutions/NewSuperMarioBrosU_Resolution/70b82af4d17024d2_0000000000000000_vs.txt rename to src/NewSuperMarioBrosU/Graphics/70b82af4d17024d2_0000000000000000_vs.txt index 1e823744..811b1e8c 100644 --- a/Resolutions/NewSuperMarioBrosU_Resolution/70b82af4d17024d2_0000000000000000_vs.txt +++ b/src/NewSuperMarioBrosU/Graphics/70b82af4d17024d2_0000000000000000_vs.txt @@ -19,10 +19,10 @@ // This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. // shader 70b82af4d17024d2 -//AA fix - +// Used for: Scaling Anti-Aliasing float resScale = float($width)/float($gameWidth); + #ifdef VULKAN layout(set = 0, binding = 0) uniform ufBlock { diff --git a/Resolutions/NewSuperMarioBrosU_Resolution/8d638f35cebd14dc_00000000000007f9_ps.txt b/src/NewSuperMarioBrosU/Graphics/8d638f35cebd14dc_00000000000007f9_ps.txt similarity index 99% rename from Resolutions/NewSuperMarioBrosU_Resolution/8d638f35cebd14dc_00000000000007f9_ps.txt rename to src/NewSuperMarioBrosU/Graphics/8d638f35cebd14dc_00000000000007f9_ps.txt index 786e5d98..90f2d4aa 100644 --- a/Resolutions/NewSuperMarioBrosU_Resolution/8d638f35cebd14dc_00000000000007f9_ps.txt +++ b/src/NewSuperMarioBrosU/Graphics/8d638f35cebd14dc_00000000000007f9_ps.txt @@ -19,7 +19,9 @@ // This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. // shader 8d638f35cebd14dc -//banding fix +// Used for: Banding Fix + + TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; layout(location = 0) in vec4 passParameterSem0; layout(location = 1) in vec4 passParameterSem1; diff --git a/Resolutions/NewSuperMarioBrosU_Resolution/ec4a85d51e778437_0000000000000000_vs.txt b/src/NewSuperMarioBrosU/Graphics/ec4a85d51e778437_0000000000000000_vs.txt similarity index 99% rename from Resolutions/NewSuperMarioBrosU_Resolution/ec4a85d51e778437_0000000000000000_vs.txt rename to src/NewSuperMarioBrosU/Graphics/ec4a85d51e778437_0000000000000000_vs.txt index e3a2c06a..001273c3 100644 --- a/Resolutions/NewSuperMarioBrosU_Resolution/ec4a85d51e778437_0000000000000000_vs.txt +++ b/src/NewSuperMarioBrosU/Graphics/ec4a85d51e778437_0000000000000000_vs.txt @@ -19,10 +19,10 @@ // This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. // shader ec4a85d51e778437 -//box blur fix - +// Used for: Scaling Box Blur float resScale = float($width)/float($gameWidth); + #ifdef VULKAN layout(set = 0, binding = 0) uniform ufBlock { diff --git a/src/NewSuperMarioBrosU/Graphics/rules.txt b/src/NewSuperMarioBrosU/Graphics/rules.txt new file mode 100644 index 00000000..cb9463ac --- /dev/null +++ b/src/NewSuperMarioBrosU/Graphics/rules.txt @@ -0,0 +1,320 @@ +[Definition] +titleIds = 0005000010101D00,0005000010101E00,000500001014B700,000500001014B800,0005000010101C00,0005000010142300,0005000010142400,0005000010142200 +name = TV Resolution, Gamepad Resolution, Shadow Quality and Blur Quality +path = "New Super Mario Bros. U/Graphics" +description = Changes the TV/Gamepad resolution of the game. You can also adjust the quality of the shadows and blur.||Made by getdls. +version = 6 + +[Default] +$width = 1280 +$height = 720 +$padWidth = 854 +$padHeight = 480 +$gameWidth = 1280 +$gameHeight = 720 +$gamePadWidth = 854 +$gamePadHeight = 480 +$shadowRes = 1 +$blurQuality = 0.0 + + +# TV Resolution + +[Preset] +category = TV Resolution +name = 1280x720 (Default) + +[Preset] +category = TV Resolution +name = 640x360 +$width = 640 +$height = 360 + +[Preset] +category = TV Resolution +name = 960x540 +$width = 960 +$height = 540 + +[Preset] +category = TV Resolution +name = 1600x900 +$width = 1600 +$height = 900 + +[Preset] +category = TV Resolution +name = 1920x1080 +$width = 1920 +$height = 1080 + +[Preset] +category = TV Resolution +name = 2560x1440 +$width = 2560 +$height = 1440 + +[Preset] +category = TV Resolution +name = 3200x1800 +$width = 3200 +$height = 1800 + +[Preset] +category = TV Resolution +name = 3840x2160 +$width = 3840 +$height = 2160 + +[Preset] +category = TV Resolution +name = 5120x2880 +$width = 5120 +$height = 2880 + +[Preset] +category = TV Resolution +name = 7680x4320 +$width = 7680 +$height = 4320 + + +# Gamepad Resolution + +[Preset] +name = 854x480 (Default) +category = Gamepad Resolution + +[Preset] +category = Gamepad Resolution +name = 640x360 +$padWidth = 640 +$padHeight = 360 + +[Preset] +category = Gamepad Resolution +name = 960x540 +$padWidth = 960 +$padHeight = 540 + +[Preset] +category = Gamepad Resolution +name = 1600x900 +$padWidth = 1600 +$padHeight = 900 + +[Preset] +category = Gamepad Resolution +name = 1920x1080 +$padWidth = 1920 +$padHeight = 1080 + +[Preset] +category = Gamepad Resolution +name = 2560x1440 +$padWidth = 2560 +$padHeight = 1440 + +[Preset] +category = Gamepad Resolution +name = 3200x1800 +$padWidth = 3200 +$padHeight = 1800 + +[Preset] +category = Gamepad Resolution +name = 3840x2160 +$padWidth = 3840 +$padHeight = 2160 + +[Preset] +category = Gamepad Resolution +name = 5120x2880 +$padWidth = 5120 +$padHeight = 2880 + +[Preset] +category = Gamepad Resolution +name = 7680x4320 +$padWidth = 7680 +$padHeight = 4320 + + +# Shadow Quality + +[Preset] +category = Shadow Quality +name = Low (50%) +$shadowRes = 0.5 + +[Preset] +category = Shadow Quality +name = Medium (100%, Default) +default = 1 + +[Preset] +category = Shadow Quality +name = High (200%) +$shadowRes = 2 + +[Preset] +category = Shadow Quality +name = Ultra (300%) +$shadowRes = 3 + +[Preset] +category = Shadow Quality +name = Extreme (400%, Unstable) +$shadowRes = 4 + + +# Blur Quality + +[Preset] +category = Blur Quality +name = Medium (Default) + +[Preset] +category = Blur Quality +name = High +$blurQuality = 0.25 + +[Preset] +category = Blur Quality +name = Ultra +$blurQuality = 0.50 + +[Preset] +category = Blur Quality +name = Extreme +$blurQuality = 1.0 + + +# Use more accurate texture formats for less banding + +[TextureRedefine] +width = 1280 +height = 720 +formats = 0x001 +overwriteFormat = 0x005 + +[TextureRedefine] +width = 1280 +height = 720 +formats = 0x01a +overwriteFormat = 0x01f + +# Texture Redefines + +[TextureRedefine] # TV +width = 1280 +height = 720 +#formats = 0x80e,0x01a,0x001 +tileModesExcluded = 0x1 +overwriteWidth = ($width/$gameWidth) * 1280 +overwriteHeight = ($height/$gameHeight) * 720 + +[TextureRedefine] # Shadows on level selection +width = 1024 +height = 1024 +formats = 0x005 +overwriteWidth = $shadowRes * 1024 +overwriteHeight = $shadowRes * 1024 + +[TextureRedefine] # Gamepad +width = 864 +height = 480 +#formats = 0x01a +overwriteWidth = ($padWidth/$gamePadWidth) * 864 +overwriteHeight = ($padHeight/$gamePadHeight) * 480 + +[TextureRedefine] # Gamepad +width = 854 +height = 480 +#formats = 0x01a +overwriteWidth = ($padWidth/$gamePadWidth) * 854 +overwriteHeight = ($padHeight/$gamePadHeight) * 480 + +[TextureRedefine] # Horizon blur +width = 640 +height = 368 +#formats = 0x01a +overwriteWidth = ($width/$gameWidth) * 640 +overwriteHeight = ($height/$gameHeight) * 368 + +[TextureRedefine] # Horizon blur +width = 640 +height = 360 +#formats = 0x01a +tileModesExcluded = 0x1 +overwriteWidth = ($width/$gameWidth) * 640 +overwriteHeight = ($height/$gameHeight) * 360 + +[TextureRedefine] +width = 512 +height = 256 +formats = 0x01a +overwriteWidth = ($width/$gameWidth) * 512 +overwriteHeight = ($height/$gameHeight) * 256 + +[TextureRedefine] +width = 256 +height = 128 +formats = 0x01a +overwriteWidth = ($width/$gameWidth) * 256 +overwriteHeight = ($height/$gameHeight) * 128 + +[TextureRedefine] +width = 320 +height = 180 +overwriteWidth = ($width/$gameWidth) * 320 +overwriteHeight = ($height/$gameHeight) * 180 + + +[TextureRedefine] +width = 320 +height = 180 +overwriteWidth = ($width/$gameWidth) * 320 +overwriteHeight = ($height/$gameHeight) * 180 + +[TextureRedefine] +width = 160 +height = 208 +#formats = 0x80e,0x01a +overwriteWidth = ($width/$gameWidth) * 160 +overwriteHeight = ($height/$gameHeight) * 208 + +[TextureRedefine] # Portraits +width = 160 +height = 196 +#formats = 0x80e,0x01a +formatsExcluded = 0x033 +overwriteWidth = ($width/$gameWidth) * 160 +overwriteHeight = ($height/$gameHeight) * 196 + +[TextureRedefine] +width = 160 +height = 90 +overwriteWidth = ($width/$gameWidth) * 160 +overwriteHeight = ($height/$gameHeight) * 90 + +[TextureRedefine] +width = 128 +height = 64 +formats = 0x01a +overwriteWidth = ($width/$gameWidth) * 128 +overwriteHeight = ($height/$gameHeight) * 64 + +[TextureRedefine] +width = 64 +height = 32 +formats = 0x01a +overwriteWidth = ($width/$gameWidth) * 64 +overwriteHeight = ($height/$gameHeight) * 32 + +[TextureRedefine] +width = 32 +height = 16 +formats = 0x01a +overwriteWidth = ($width/$gameWidth) * 32 +overwriteHeight = ($height/$gameHeight) * 16 diff --git a/src/NewSuperMarioBrosU/Mods/RemoveHUD/0f817a18292d8ca5_000000000000007d_ps.txt b/src/NewSuperMarioBrosU/Mods/RemoveHUD/0f817a18292d8ca5_000000000000007d_ps.txt new file mode 100644 index 00000000..b626aa22 --- /dev/null +++ b/src/NewSuperMarioBrosU/Mods/RemoveHUD/0f817a18292d8ca5_000000000000007d_ps.txt @@ -0,0 +1,114 @@ +#version 430 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +// shader 0f817a18292d8ca5 +// start of shader inputs/outputs, predetermined by Cemu. Do not touch +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +#ifdef VULKAN +layout(set = 1, binding = 1) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[4]; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[4]; +uniform vec2 uf_fragCoordScale; +#endif +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2DArray textureUnitPS0; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem1; +layout(location = 0) out vec4 passPixelColor0; +// end of shader inputs/outputs +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R123i = 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); +// 0 +backupReg0i = R1i.z; +R2i.x = ((intBitsToFloat(R0i.w) > 0.0)?int(0xFFFFFFFF):int(0x0)); +R1i.z = floatBitsToInt(roundEven(intBitsToFloat(backupReg0i))); +R1i.w = floatBitsToInt(texture(textureUnitPS0, vec3(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z))).w); +// 0 +PV0i.x = R1i.w; +PV0i.x = floatBitsToInt(intBitsToFloat(PV0i.x) * 2.0); +PV0i.y = ((0.5 > intBitsToFloat(R1i.w))?int(0xFFFFFFFF):int(0x0)); +PV0i.w = floatBitsToInt(intBitsToFloat(R1i.w) + -(0.5)); +PV0i.w = floatBitsToInt(intBitsToFloat(PV0i.w) * 2.0); +// 1 +R127i.y = ((PV0i.y == 0)?(0x3f800000):(PV0i.x)); +R127i.z = ((PV0i.y == 0)?(PV0i.w):(0)); +PV1i.z = R127i.z; +// 2 +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(uf_remappedPS[0].y)) + intBitsToFloat(uf_remappedPS[1].y))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(uf_remappedPS[0].x)) + intBitsToFloat(uf_remappedPS[1].x))); +PV0i.w = R123i.w; +// 3 +backupReg0i = R0i.x; +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(uf_remappedPS[0].w))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(uf_remappedPS[0].z)) + intBitsToFloat(uf_remappedPS[1].z))); +PV1i.y = R123i.y; +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV0i.w))); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.y), intBitsToFloat(PV0i.z))); +// 4 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), intBitsToFloat(PV1i.y))); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), intBitsToFloat(PV1i.x))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(uf_remappedPS[2].y)) + intBitsToFloat(uf_remappedPS[3].y))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(uf_remappedPS[2].x)) + intBitsToFloat(uf_remappedPS[3].x))); +PV0i.w = R123i.w; +// 5 +backupReg0i = R0i.x; +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(uf_remappedPS[2].w))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(uf_remappedPS[2].z)) + intBitsToFloat(uf_remappedPS[3].z))); +PV1i.y = R123i.y; +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV0i.w))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.y), intBitsToFloat(PV0i.z))); +// 6 +backupReg0i = R0i.z; +PV0i.x = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R0i.w)), intBitsToFloat(PV1i.x))); +R0i.y = ((R2i.x == 0)?(PV1i.w):(R127i.w)); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.y))); +R0i.x = ((R2i.x == 0)?(PV1i.z):(R126i.z)); +PS0i = R0i.x; +// 7 +R0i.z = ((R2i.x == 0)?(PV0i.z):(R127i.x)); +R0i.w = ((R2i.x == 0)?(PV0i.x):(R126i.y)); +// export +passPixelColor0 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), 0.0); +} diff --git a/src/NewSuperMarioBrosU/Mods/RemoveHUD/2802e519ac163806_000000000000001f_ps.txt b/src/NewSuperMarioBrosU/Mods/RemoveHUD/2802e519ac163806_000000000000001f_ps.txt new file mode 100644 index 00000000..55a020ca --- /dev/null +++ b/src/NewSuperMarioBrosU/Mods/RemoveHUD/2802e519ac163806_000000000000001f_ps.txt @@ -0,0 +1,66 @@ +#version 430 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +// shader 2802e519ac163806 +// start of shader inputs/outputs, predetermined by Cemu. Do not touch +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +#ifdef VULKAN +layout(set = 1, binding = 1) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[2]; +uniform float uf_alphaTestRef; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[2]; +uniform float uf_alphaTestRef; +uniform vec2 uf_fragCoordScale; +#endif +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 0) out vec4 passPixelColor0; +// end of shader inputs/outputs +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +vec4 R0f = vec4(0.0); +vec4 R1f = 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; +R0f.xyzw = (texture(textureUnitPS0, R0f.xy).xyzw); +// 0 +R1f.x = (mul_nonIEEE(R0f.x,intBitsToFloat(uf_remappedPS[0].x)) + intBitsToFloat(uf_remappedPS[1].x)); +R1f.y = (mul_nonIEEE(R0f.y,intBitsToFloat(uf_remappedPS[0].y)) + intBitsToFloat(uf_remappedPS[1].y)); +// 1 +R1f.z = (mul_nonIEEE(R0f.z,intBitsToFloat(uf_remappedPS[0].z)) + intBitsToFloat(uf_remappedPS[1].z)); +R1f.w = (mul_nonIEEE(R0f.w,intBitsToFloat(uf_remappedPS[0].w)) + intBitsToFloat(uf_remappedPS[1].w)); +// export +passPixelColor0 = vec4(R1f.x, R1f.y, R1f.z, 0.0); +} diff --git a/src/NewSuperMarioBrosU/Mods/RemoveHUD/2802e519ac163806_0000000000000079_ps.txt b/src/NewSuperMarioBrosU/Mods/RemoveHUD/2802e519ac163806_0000000000000079_ps.txt new file mode 100644 index 00000000..6b130027 --- /dev/null +++ b/src/NewSuperMarioBrosU/Mods/RemoveHUD/2802e519ac163806_0000000000000079_ps.txt @@ -0,0 +1,64 @@ +#version 430 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +// shader 2802e519ac163806 +// start of shader inputs/outputs, predetermined by Cemu. Do not touch +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +#ifdef VULKAN +layout(set = 1, binding = 1) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[2]; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[2]; +uniform vec2 uf_fragCoordScale; +#endif +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 0) out vec4 passPixelColor0; +// end of shader inputs/outputs +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +vec4 R0f = vec4(0.0); +vec4 R1f = 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; +R0f.xyzw = (texture(textureUnitPS0, R0f.xy).xyzw); +// 0 +R1f.x = (mul_nonIEEE(R0f.x,intBitsToFloat(uf_remappedPS[0].x)) + intBitsToFloat(uf_remappedPS[1].x)); +R1f.y = (mul_nonIEEE(R0f.y,intBitsToFloat(uf_remappedPS[0].y)) + intBitsToFloat(uf_remappedPS[1].y)); +// 1 +R1f.z = (mul_nonIEEE(R0f.z,intBitsToFloat(uf_remappedPS[0].z)) + intBitsToFloat(uf_remappedPS[1].z)); +R1f.w = (mul_nonIEEE(R0f.w,intBitsToFloat(uf_remappedPS[0].w)) + intBitsToFloat(uf_remappedPS[1].w)); +// export +passPixelColor0 = vec4(R1f.x, R1f.y, R1f.z, 0.0); +} diff --git a/src/NewSuperMarioBrosU/Mods/RemoveHUD/9bc55a95dad10ffa_000000000000007d_ps.txt b/src/NewSuperMarioBrosU/Mods/RemoveHUD/9bc55a95dad10ffa_000000000000007d_ps.txt new file mode 100644 index 00000000..3544aad5 --- /dev/null +++ b/src/NewSuperMarioBrosU/Mods/RemoveHUD/9bc55a95dad10ffa_000000000000007d_ps.txt @@ -0,0 +1,105 @@ +#version 430 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +// shader 9bc55a95dad10ffa +// start of shader inputs/outputs, predetermined by Cemu. Do not touch +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +#ifdef VULKAN +layout(set = 1, binding = 1) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[4]; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[4]; +uniform vec2 uf_fragCoordScale; +#endif +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2DArray textureUnitPS0; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem1; +layout(location = 0) out vec4 passPixelColor0; +// end of shader inputs/outputs +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R123i = 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); +// 0 +backupReg0i = R1i.z; +R2i.x = floatBitsToInt(intBitsToFloat(uf_remappedPS[0].y) + intBitsToFloat(uf_remappedPS[1].y)); +R2i.y = ((intBitsToFloat(R0i.w) > 0.0)?int(0xFFFFFFFF):int(0x0)); +R1i.z = floatBitsToInt(roundEven(intBitsToFloat(backupReg0i))); +R2i.w = floatBitsToInt(intBitsToFloat(uf_remappedPS[0].x) + intBitsToFloat(uf_remappedPS[1].x)); +R1i.w = floatBitsToInt(texture(textureUnitPS0, vec3(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z))).w); +// 0 +backupReg0i = R0i.y; +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.x), intBitsToFloat(R2i.w))); +PV0i.y = floatBitsToInt(intBitsToFloat(uf_remappedPS[0].z) + intBitsToFloat(uf_remappedPS[1].z)); +PV0i.z = floatBitsToInt(intBitsToFloat(R1i.w) + -(0.5)); +PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) * 2.0); +PV0i.w = ((0.5 > intBitsToFloat(R1i.w))?int(0xFFFFFFFF):int(0x0)); +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R2i.x))); +PS0i = R126i.w; +// 1 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), intBitsToFloat(PV0i.y))); +R123i.y = ((PV0i.w == 0)?(PV0i.z):(0)); +PV1i.y = R123i.y; +PV1i.z = floatBitsToInt(intBitsToFloat(uf_remappedPS[2].y) + intBitsToFloat(uf_remappedPS[3].y)); +PV1i.w = floatBitsToInt(intBitsToFloat(uf_remappedPS[2].x) + intBitsToFloat(uf_remappedPS[3].x)); +// 2 +backupReg0i = R0i.x; +backupReg1i = R0i.y; +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(uf_remappedPS[3].w))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(uf_remappedPS[1].w))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.w))); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(PV1i.z))); +// 3 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), intBitsToFloat(PV0i.y))); +PV1i.y = floatBitsToInt(intBitsToFloat(uf_remappedPS[2].z) + intBitsToFloat(uf_remappedPS[3].z)); +PV1i.z = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R0i.w)), intBitsToFloat(PV0i.x))); +R1i.x = ((R2i.y == 0)?(PV0i.z):(R127i.x)); +PS1i = R1i.x; +// 4 +backupReg0i = R0i.z; +R1i.y = ((R2i.y == 0)?(R127i.w):(R126i.w)); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.y))); +R1i.w = ((R2i.y == 0)?(PV1i.z):(PV1i.x)); +// 5 +R1i.z = ((R2i.y == 0)?(PV0i.z):(R126i.x)); +// export +passPixelColor0 = vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), 0.0); +} diff --git a/src/NewSuperMarioBrosU/Mods/RemoveHUD/d9f064ae204238df_000000000000007d_ps.txt b/src/NewSuperMarioBrosU/Mods/RemoveHUD/d9f064ae204238df_000000000000007d_ps.txt new file mode 100644 index 00000000..f6d37225 --- /dev/null +++ b/src/NewSuperMarioBrosU/Mods/RemoveHUD/d9f064ae204238df_000000000000007d_ps.txt @@ -0,0 +1,103 @@ +#version 430 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +// shader d9f064ae204238df +// start of shader inputs/outputs, predetermined by Cemu. Do not touch +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +#ifdef VULKAN +layout(set = 1, binding = 1) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[4]; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[4]; +uniform vec2 uf_fragCoordScale; +#endif +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2DArray textureUnitPS0; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem1; +layout(location = 0) out vec4 passPixelColor0; +// end of shader inputs/outputs +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R123i = 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); +// 0 +backupReg0i = R1i.z; +R2i.x = ((intBitsToFloat(R0i.w) > 0.0)?int(0xFFFFFFFF):int(0x0)); +R1i.z = floatBitsToInt(roundEven(intBitsToFloat(backupReg0i))); +R1i.xyzw = floatBitsToInt(texture(textureUnitPS0, vec3(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z))).xyzw); +// 0 +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(uf_remappedPS[0].y)) + intBitsToFloat(uf_remappedPS[1].y))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x),intBitsToFloat(uf_remappedPS[0].x)) + intBitsToFloat(uf_remappedPS[1].x))); +PV0i.w = R123i.w; +// 1 +backupReg0i = R0i.x; +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), intBitsToFloat(uf_remappedPS[0].w))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.z),intBitsToFloat(uf_remappedPS[0].z)) + intBitsToFloat(uf_remappedPS[1].z))); +PV1i.y = R123i.y; +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV0i.w))); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.y), intBitsToFloat(PV0i.z))); +// 2 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), intBitsToFloat(PV1i.y))); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), intBitsToFloat(PV1i.x))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(uf_remappedPS[2].y)) + intBitsToFloat(uf_remappedPS[3].y))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x),intBitsToFloat(uf_remappedPS[2].x)) + intBitsToFloat(uf_remappedPS[3].x))); +PV0i.w = R123i.w; +// 3 +backupReg0i = R0i.x; +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), intBitsToFloat(uf_remappedPS[2].w))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.z),intBitsToFloat(uf_remappedPS[2].z)) + intBitsToFloat(uf_remappedPS[3].z))); +PV1i.y = R123i.y; +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV0i.w))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.y), intBitsToFloat(PV0i.z))); +// 4 +backupReg0i = R0i.z; +PV0i.x = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R0i.w)), intBitsToFloat(PV1i.x))); +R0i.y = ((R2i.x == 0)?(PV1i.w):(R127i.w)); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.y))); +R0i.x = ((R2i.x == 0)?(PV1i.z):(R127i.z)); +PS0i = R0i.x; +// 5 +R0i.z = ((R2i.x == 0)?(PV0i.z):(R127i.x)); +R0i.w = ((R2i.x == 0)?(PV0i.x):(R127i.y)); +// export +passPixelColor0 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), 0.0); +} diff --git a/src/NewSuperMarioBrosU/Mods/RemoveHUD/fcd26205b94e11ca_000000000000001f_ps.txt b/src/NewSuperMarioBrosU/Mods/RemoveHUD/fcd26205b94e11ca_000000000000001f_ps.txt new file mode 100644 index 00000000..e751011f --- /dev/null +++ b/src/NewSuperMarioBrosU/Mods/RemoveHUD/fcd26205b94e11ca_000000000000001f_ps.txt @@ -0,0 +1,79 @@ +#version 430 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +// shader fcd26205b94e11ca +// start of shader inputs/outputs, predetermined by Cemu. Do not touch +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +#ifdef VULKAN +layout(set = 1, binding = 1) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[2]; +uniform float uf_alphaTestRef; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[2]; +uniform float uf_alphaTestRef; +uniform vec2 uf_fragCoordScale; +#endif +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem1; +layout(location = 0) out vec4 passPixelColor0; +// end of shader inputs/outputs +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +vec4 R0f = vec4(0.0); +vec4 R1f = vec4(0.0); +vec4 R123f = 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; +R1f.xyzw = (texture(textureUnitPS0, R1f.xy).xyzw); +// 0 +R127f.z = (mul_nonIEEE(R1f.y,intBitsToFloat(uf_remappedPS[0].y)) + intBitsToFloat(uf_remappedPS[1].y)); +R123f.w = (mul_nonIEEE(R1f.x,intBitsToFloat(uf_remappedPS[0].x)) + intBitsToFloat(uf_remappedPS[1].x)); +PV0f.w = R123f.w; +// 1 +R123f.x = (mul_nonIEEE(R1f.w,intBitsToFloat(uf_remappedPS[0].w)) + intBitsToFloat(uf_remappedPS[1].w)); +PV1f.x = R123f.x; +R123f.y = (mul_nonIEEE(R1f.z,intBitsToFloat(uf_remappedPS[0].z)) + intBitsToFloat(uf_remappedPS[1].z)); +PV1f.y = R123f.y; +R1f.x = mul_nonIEEE(R0f.x, PV0f.w); +PS1f = R1f.x; +// 2 +R1f.y = mul_nonIEEE(R0f.y, R127f.z); +R1f.z = mul_nonIEEE(R0f.z, PV1f.y); +R1f.w = mul_nonIEEE(R0f.w, PV1f.x); +// export +passPixelColor0 = vec4(R1f.x, R1f.y, R1f.z, 0.0); +} diff --git a/src/NewSuperMarioBrosU/Mods/RemoveHUD/fcd26205b94e11ca_0000000000000079_ps.txt b/src/NewSuperMarioBrosU/Mods/RemoveHUD/fcd26205b94e11ca_0000000000000079_ps.txt new file mode 100644 index 00000000..6fe88797 --- /dev/null +++ b/src/NewSuperMarioBrosU/Mods/RemoveHUD/fcd26205b94e11ca_0000000000000079_ps.txt @@ -0,0 +1,77 @@ +#version 430 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +// shader fcd26205b94e11ca +// start of shader inputs/outputs, predetermined by Cemu. Do not touch +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +#ifdef VULKAN +layout(set = 1, binding = 1) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[2]; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[2]; +uniform vec2 uf_fragCoordScale; +#endif +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem1; +layout(location = 0) out vec4 passPixelColor0; +// end of shader inputs/outputs +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +vec4 R0f = vec4(0.0); +vec4 R1f = vec4(0.0); +vec4 R123f = 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; +R1f.xyzw = (texture(textureUnitPS0, R1f.xy).xyzw); +// 0 +R127f.z = (mul_nonIEEE(R1f.y,intBitsToFloat(uf_remappedPS[0].y)) + intBitsToFloat(uf_remappedPS[1].y)); +R123f.w = (mul_nonIEEE(R1f.x,intBitsToFloat(uf_remappedPS[0].x)) + intBitsToFloat(uf_remappedPS[1].x)); +PV0f.w = R123f.w; +// 1 +R123f.x = (mul_nonIEEE(R1f.w,intBitsToFloat(uf_remappedPS[0].w)) + intBitsToFloat(uf_remappedPS[1].w)); +PV1f.x = R123f.x; +R123f.y = (mul_nonIEEE(R1f.z,intBitsToFloat(uf_remappedPS[0].z)) + intBitsToFloat(uf_remappedPS[1].z)); +PV1f.y = R123f.y; +R1f.x = mul_nonIEEE(R0f.x, PV0f.w); +PS1f = R1f.x; +// 2 +R1f.y = mul_nonIEEE(R0f.y, R127f.z); +R1f.z = mul_nonIEEE(R0f.z, PV1f.y); +R1f.w = mul_nonIEEE(R0f.w, PV1f.x); +// export +passPixelColor0 = vec4(R1f.x, R1f.y, R1f.z, 0.0); +} diff --git a/src/NewSuperMarioBrosU/Mods/RemoveHUD/rules.txt b/src/NewSuperMarioBrosU/Mods/RemoveHUD/rules.txt new file mode 100644 index 00000000..2b9a17f3 --- /dev/null +++ b/src/NewSuperMarioBrosU/Mods/RemoveHUD/rules.txt @@ -0,0 +1,6 @@ +[Definition] +titleIds = 0005000010101D00,0005000010101E00,000500001014B700,000500001014B800,0005000010101C00,0005000010142300,0005000010142400,0005000010142200 +name = Remove HUD +path = "New Super Mario Bros. U/Mods/Remove HUD (breaks menus)" +description = Removes the in-game HUD.|Breaks menus so should only be used for screenshots/videos.||Made by Seb. +version = 6 \ No newline at end of file diff --git a/src/NewSuperMarioBrosU/Workarounds/CrashFix/patch_CrashFix.asm b/src/NewSuperMarioBrosU/Workarounds/CrashFix/patch_CrashFix.asm new file mode 100644 index 00000000..4034c120 --- /dev/null +++ b/src/NewSuperMarioBrosU/Workarounds/CrashFix/patch_CrashFix.asm @@ -0,0 +1,22 @@ +[NSMBU+LU_CrashFix_V0] +moduleMatches = 0x1049CED8, 0x777D7B44 + +; remove check for mii data +0x024D7394 = b .+0xE8 + +[NSMBU_CrashFix_V64USV80EU] +moduleMatches = 0x6CAEA914, 0xFA29C89F + +0x024D71C4 = b .+0xE8 + +[NSMBU_CrashFix_V0USV0EU] +moduleMatches = 0xA7A5ECF1, 0xC7B938AD + +0x024BDE70 = b .+0xE8 + +[NSLU_CrashFix_V0EU] +moduleMatches = 0xA3705C0B + +0x024D7158 = b .+0xE8 + +; Note: for future versions take the crash log and get the module checksum from the user. Subtract 0x7c from the link register in the crash log to be the address we patch. \ No newline at end of file diff --git a/Workarounds/NewSuperMarioBrosU_CrashFix/rules.txt b/src/NewSuperMarioBrosU/Workarounds/CrashFix/rules.txt similarity index 51% rename from Workarounds/NewSuperMarioBrosU_CrashFix/rules.txt rename to src/NewSuperMarioBrosU/Workarounds/CrashFix/rules.txt index 99d29f88..c34b7d93 100644 --- a/Workarounds/NewSuperMarioBrosU_CrashFix/rules.txt +++ b/src/NewSuperMarioBrosU/Workarounds/CrashFix/rules.txt @@ -1,6 +1,6 @@ [Definition] titleIds = 0005000010101D00,0005000010101E00,000500001014B700,000500001014B800,0005000010101C00,0005000010142300,0005000010142400,0005000010142200 -name = Crash Fix -path = "New Super Mario Bros. U/Workarounds/Crash Fix" #and luigi -description = Allows NSMBU and NSLU to be played without the required system files. Made by Xalphenos. -version = 4 +name = Title Screen Crash Fix +path = "New Super Mario Bros. U/Workarounds/Title Screen Crash Fix" #and luigi +description = Allows NSMBU and NSLU to be played without the required system files.|Only tested to work on the latest update of the game.||Made by Xalphenos. +version = 6