Hyrule warriors 1.4.x Soruce + Contrasty

This commit is contained in:
getdls 2018-10-31 18:51:13 +01:00
parent 8957a6387a
commit ccadb951b8
10 changed files with 2594 additions and 0 deletions

View File

@ -0,0 +1,253 @@
#version 420
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
// shader 572a6cfa3943923d
//ingame contrasty
uniform vec2 uf_fragCoordScale;
const float hazeFactor = 0.1;
const float gamma = $gamma; // 1.0 is neutral Botw is already colour graded at this stage
const float exposure = $exposure; // 1.0 is neutral
const float vibrance = $vibrance; // 0.0 is neutral
const float crushContrast = $crushContrast; // 0.0 is neutral. Use small increments, loss of shadow detail
const float contrastCurve = $contrastCurve;
vec3 RGB_Lift = vec3($redShadows, $greenShadows , $blueSadows); // [0.000 to 2.000] Adjust shadows for Red, Green and Blue.
vec3 RGB_Gamma = vec3($redMid ,$greenMid, $blueMid); // [0.000 to 2.000] Adjust midtones for Red, Green and Blue
vec3 RGB_Gain = vec3($redHilight, $greenHilight, $blueHilight); // [0.000 to 2.000] Adjust highlights for Red, Green and Blue
//lumasharpen
const float sharp_mix = $sharp_mix;
const float sharp_strength = 2.0;
const float sharp_clamp = 0.75;
const float offset_bias = 1.0;
float Sigmoid (float x) {
return 1.0 / (1.0 + (exp(-(x - 0.5) * 5.5)));
}
#define px (1.0/1920.0*uf_fragCoordScale.x)
#define py (1.0/1080.0*uf_fragCoordScale.y)
#define CoefLuma vec3(0.2126, 0.7152, 0.0722)
float lumasharping(sampler2D tex, vec2 pos) {
vec4 colorInput = texture(tex, pos);
vec3 ori = colorInput.rgb;
// -- Combining the strength and luma multipliers --
vec3 sharp_strength_luma = (CoefLuma * sharp_strength);
// -- Gaussian filter --
// [ .25, .50, .25] [ 1 , 2 , 1 ]
// [ .50, 1, .50] = [ 2 , 4 , 2 ]
// [ .25, .50, .25] [ 1 , 2 , 1 ]
vec3 blur_ori = texture(tex, pos + vec2(px, -py) * 0.5 * offset_bias).rgb; // South East
blur_ori += texture(tex, pos + vec2(-px, -py) * 0.5 * offset_bias).rgb; // South West
blur_ori += texture(tex, pos + vec2(px, py) * 0.5 * offset_bias).rgb; // North East
blur_ori += texture(tex, pos + vec2(-px, py) * 0.5 * offset_bias).rgb; // North West
blur_ori *= 0.25; // ( /= 4) Divide by the number of texture fetches
// -- Calculate the sharpening --
vec3 sharp = ori - blur_ori; //Subtracting the blurred image from the original image
// -- Adjust strength of the sharpening and clamp it--
vec4 sharp_strength_luma_clamp = vec4(sharp_strength_luma * (0.5 / sharp_clamp), 0.5); //Roll part of the clamp into the dot
float sharp_luma = clamp((dot(vec4(sharp, 1.0), sharp_strength_luma_clamp)), 0.0, 1.0); //Calculate the luma, adjust the strength, scale up and clamp
sharp_luma = (sharp_clamp * 2.0) * sharp_luma - sharp_clamp; //scale down
return sharp_luma;
}
vec3 LiftGammaGainPass(vec3 colorInput)
{ //reshade BSD https://reshade.me , Alexkiri port
vec3 color = colorInput;
color = color * (1.5 - 0.5 * RGB_Lift) + 0.5 * RGB_Lift - 0.5;
color = clamp(color, 0.0, 1.0);
color *= RGB_Gain;
color = pow(color, 1.0 / RGB_Gamma);
return clamp(color, 0.0, 1.0);
}
vec3 contrasty(vec3 colour){
vec3 fColour = (colour.xyz);
//fColour = LiftGammaGainPass(fColour);
fColour = clamp(exposure * fColour, 0.0, 1.0);
fColour = pow(fColour, vec3(1.0 / gamma));
float luminance = fColour.r*0.299 + fColour.g*0.587 + fColour.b*0.114;
float mn = min(min(fColour.r, fColour.g), fColour.b);
float mx = max(max(fColour.r, fColour.g), fColour.b);
float sat = (1.0 - (mx - mn)) * (1.0 - mx) * luminance * 5.0;
vec3 lightness = vec3((mn + mx) / 2.0);
fColour = LiftGammaGainPass(fColour);
// vibrance
fColour = mix(fColour, mix(fColour, lightness, -vibrance), sat);
fColour = max(vec3(0.0), fColour - vec3(crushContrast));
return fColour;
}
uniform ivec4 uf_remappedPS[5];
layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf4e13800 res 1280x720x1 dim 1 tm: 4 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 0
layout(binding = 1) uniform sampler2D textureUnitPS1;// Tex1 addr 0x1abf4800 res 1x1x1 dim 1 tm: 2 format 080e compSel: 0 4 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler1 ClampX/Y/Z: 2 2 2 border: 0
layout(binding = 2) uniform sampler2D textureUnitPS2;// Tex2 addr 0x1abdd800 res 160x90x1 dim 1 tm: 4 format 041a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler2 ClampX/Y/Z: 2 2 2 border: 0
layout(location = 0) in vec4 passParameterSem128;
layout(location = 0) out vec4 passPixelColor0;
//uniform vec2 uf_fragCoordScale;
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 R123f = vec4(0.0);
vec4 R125f = vec4(0.0);
vec4 R126f = vec4(0.0);
vec4 R127f = vec4(0.0);
float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f;
vec4 PV0f = vec4(0.0), PV1f = vec4(0.0);
float PS0f = 0.0, PS1f = 0.0;
vec4 tempf = vec4(0.0);
float tempResultf;
int tempResulti;
ivec4 ARi = ivec4(0);
bool predResult = true;
vec3 cubeMapSTM;
int cubeMapFaceId;
R0f = passParameterSem128;
R1f.xyzw = (texture(textureUnitPS0, R0f.xy).xyzw);
R2f.xyz = (texture(textureUnitPS2, R0f.xy).xyz);
// 0
R0f.y = intBitsToFloat(0x3f000000);
R0f.x = (texture(textureUnitPS1, R0f.yy).x);
// 0
R127f.x = mul_nonIEEE(R1f.x, R0f.x);
PV0f.x = R127f.x;
PV0f.y = mul_nonIEEE(R1f.w, R0f.x);
R126f.z = mul_nonIEEE(R1f.z, R0f.x);
PV0f.z = R126f.z;
R127f.w = mul_nonIEEE(R1f.y, R0f.x);
PV0f.w = R127f.w;
// 1
PV1f.x = PV0f.x * intBitsToFloat(0x3e6147ae);
R127f.z = PV0f.z * intBitsToFloat(0x3e6147ae);
PV1f.z = R127f.z;
PV1f.w = PV0f.w * intBitsToFloat(0x3e6147ae);
R0f.w = mul_nonIEEE(PV0f.y, intBitsToFloat(uf_remappedPS[0].x));
PS1f = R0f.w;
// 2
PV0f.x = PV1f.w + intBitsToFloat(0x3e99999a);
PV0f.y = PV1f.x + intBitsToFloat(0x3e99999a);
PV0f.z = PV1f.x + intBitsToFloat(0x3cf5c28f);
PV0f.w = PV1f.z + intBitsToFloat(0x3e99999a);
R125f.z = PV1f.w + intBitsToFloat(0x3cf5c28f);
PS0f = R125f.z;
// 3
backupReg0f = R127f.x;
R126f.x = (mul_nonIEEE(R126f.z,PV0f.w) + intBitsToFloat(0x3d75c28f));
PV1f.y = R127f.z + intBitsToFloat(0x3cf5c28f);
R123f.z = (mul_nonIEEE(R127f.x,PV0f.y) + intBitsToFloat(0x3d75c28f));
PV1f.z = R123f.z;
R126f.w = (mul_nonIEEE(R127f.w,PV0f.x) + intBitsToFloat(0x3d75c28f));
R127f.x = (mul_nonIEEE(backupReg0f,PV0f.z) + intBitsToFloat(0x3b03126f));
PS1f = R127f.x;
// 4
backupReg0f = R126f.z;
backupReg1f = R127f.w;
R126f.z = (mul_nonIEEE(backupReg0f,PV1f.y) + intBitsToFloat(0x3b03126f));
R127f.w = (mul_nonIEEE(backupReg1f,R125f.z) + intBitsToFloat(0x3b03126f));
PS0f = 1.0 / PV1f.z;
// 5
PV1f.z = R127f.x * PS0f;
PS1f = 1.0 / R126f.w;
// 6
PV0f.y = R127f.w * PS1f;
PV0f.w = PV1f.z + -(intBitsToFloat(0x3d086595));
PS0f = 1.0 / R126f.x;
// 7
PV1f.x = R126f.z * PS0f;
PV1f.y = mul_nonIEEE(PV0f.w, intBitsToFloat(uf_remappedPS[0].x));
PV1f.z = PV0f.y + -(intBitsToFloat(0x3d086595));
// 8
R126f.x = (mul_nonIEEE(R2f.x,intBitsToFloat(uf_remappedPS[1].x)) + PV1f.y);
PV0f.y = PV1f.x + -(intBitsToFloat(0x3d086595));
PV0f.w = mul_nonIEEE(PV1f.z, intBitsToFloat(uf_remappedPS[0].x));
// 9
R123f.x = (mul_nonIEEE(R2f.y,intBitsToFloat(uf_remappedPS[1].x)) + PV0f.w);
PV1f.x = R123f.x;
PV1f.z = mul_nonIEEE(PV0f.y, intBitsToFloat(uf_remappedPS[0].x));
// 10
backupReg0f = R126f.x;
R126f.x = mul_nonIEEE(backupReg0f, intBitsToFloat(uf_remappedPS[2].x));
R127f.y = mul_nonIEEE(PV1f.x, intBitsToFloat(uf_remappedPS[2].y));
R123f.w = (mul_nonIEEE(R2f.z,intBitsToFloat(uf_remappedPS[1].x)) + PV1f.z);
PV0f.w = R123f.w;
// 11
R126f.z = mul_nonIEEE(PV0f.w, intBitsToFloat(uf_remappedPS[2].z));
PV1f.z = R126f.z;
// 12
tempf.x = dot(vec4(R126f.x,R127f.y,PV1f.z,-0.0),vec4(intBitsToFloat(0x3e990abb),intBitsToFloat(0x3f162c13),intBitsToFloat(0x3dea747e),0.0));
PV0f.x = tempf.x;
PV0f.y = tempf.x;
PV0f.z = tempf.x;
PV0f.w = tempf.x;
R125f.z = tempf.x;
// 13
PV1f.x = R127f.y + -(PV0f.x);
PV1f.y = R126f.x + -(PV0f.x);
PV1f.w = R126f.z + -(PV0f.x);
// 14
R126f.x = (mul_nonIEEE(PV1f.w,intBitsToFloat(uf_remappedPS[3].z)) + R125f.z);
R127f.y = (mul_nonIEEE(PV1f.x,intBitsToFloat(uf_remappedPS[3].y)) + R125f.z);
R123f.z = (mul_nonIEEE(PV1f.y,intBitsToFloat(uf_remappedPS[3].x)) + R125f.z);
PV0f.z = R123f.z;
// 15
tempResultf = log2(PV0f.z);
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
PS1f = tempResultf;
// 16
R125f.z = mul_nonIEEE(PS1f, intBitsToFloat(uf_remappedPS[4].x));
tempResultf = log2(R127f.y);
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
PS0f = tempResultf;
// 17
R127f.w = mul_nonIEEE(PS0f, intBitsToFloat(uf_remappedPS[4].x));
tempResultf = log2(R126f.x);
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
PS1f = tempResultf;
// 18
R126f.x = mul_nonIEEE(PS1f, intBitsToFloat(uf_remappedPS[4].x));
PS0f = exp2(R125f.z);
// 19
R0f.x = PS0f;
PS1f = exp2(R127f.w);
// 20
R0f.y = PS1f;
PS0f = exp2(R126f.x);
// 21
R0f.z = PS0f;
// export
R0f.xyz = contrasty(R0f.xyz);
R0f.xyz = mix(R0f.xyz, smoothstep(0.0, 1.0, R0f.xyz), contrastCurve);
float smask = lumasharping(textureUnitPS0, passParameterSem128.xy);
vec3 temp3 = R0f.xyz;
R0f.xyz = mix(R0f.xyz, (temp3.xyz += (smask)), sharp_mix);
passPixelColor0 = vec4(R0f.x, R0f.y, R0f.z, R0f.w);
}

View File

@ -0,0 +1,343 @@
#version 420
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
// shader 6ea8b1aa69c0b6f7
//cutscene contrasty
uniform vec2 uf_fragCoordScale;
const float hazeFactor = 0.1;
const float gamma = $gamma; // 1.0 is neutral Botw is already colour graded at this stage
const float exposure = $exposure; // 1.0 is neutral
const float vibrance = $vibrance; // 0.0 is neutral
const float crushContrast = $crushContrast; // 0.0 is neutral. Use small increments, loss of shadow detail
const float contrastCurve = $contrastCurve;
vec3 RGB_Lift = vec3($redShadows, $greenShadows , $blueSadows); // [0.000 to 2.000] Adjust shadows for Red, Green and Blue.
vec3 RGB_Gamma = vec3($redMid ,$greenMid, $blueMid); // [0.000 to 2.000] Adjust midtones for Red, Green and Blue
vec3 RGB_Gain = vec3($redHilight, $greenHilight, $blueHilight); // [0.000 to 2.000] Adjust highlights for Red, Green and Blue
//lumasharpen
const float sharp_mix = $sharp_mix;
const float sharp_strength = 2.0;
const float sharp_clamp = 0.75;
const float offset_bias = 1.0;
float Sigmoid (float x) {
return 1.0 / (1.0 + (exp(-(x - 0.5) * 5.5)));
}
#define px (1.0/1920.0*uf_fragCoordScale.x)
#define py (1.0/1080.0*uf_fragCoordScale.y)
#define CoefLuma vec3(0.2126, 0.7152, 0.0722)
float lumasharping(sampler2D tex, vec2 pos) {
vec4 colorInput = texture(tex, pos);
vec3 ori = colorInput.rgb;
// -- Combining the strength and luma multipliers --
vec3 sharp_strength_luma = (CoefLuma * sharp_strength);
// -- Gaussian filter --
// [ .25, .50, .25] [ 1 , 2 , 1 ]
// [ .50, 1, .50] = [ 2 , 4 , 2 ]
// [ .25, .50, .25] [ 1 , 2 , 1 ]
vec3 blur_ori = texture(tex, pos + vec2(px, -py) * 0.5 * offset_bias).rgb; // South East
blur_ori += texture(tex, pos + vec2(-px, -py) * 0.5 * offset_bias).rgb; // South West
blur_ori += texture(tex, pos + vec2(px, py) * 0.5 * offset_bias).rgb; // North East
blur_ori += texture(tex, pos + vec2(-px, py) * 0.5 * offset_bias).rgb; // North West
blur_ori *= 0.25; // ( /= 4) Divide by the number of texture fetches
// -- Calculate the sharpening --
vec3 sharp = ori - blur_ori; //Subtracting the blurred image from the original image
// -- Adjust strength of the sharpening and clamp it--
vec4 sharp_strength_luma_clamp = vec4(sharp_strength_luma * (0.5 / sharp_clamp), 0.5); //Roll part of the clamp into the dot
float sharp_luma = clamp((dot(vec4(sharp, 1.0), sharp_strength_luma_clamp)), 0.0, 1.0); //Calculate the luma, adjust the strength, scale up and clamp
sharp_luma = (sharp_clamp * 2.0) * sharp_luma - sharp_clamp; //scale down
return sharp_luma;
}
vec3 LiftGammaGainPass(vec3 colorInput)
{ //reshade BSD https://reshade.me , Alexkiri port
vec3 color = colorInput;
color = color * (1.5 - 0.5 * RGB_Lift) + 0.5 * RGB_Lift - 0.5;
color = clamp(color, 0.0, 1.0);
color *= RGB_Gain;
color = pow(color, 1.0 / RGB_Gamma);
return clamp(color, 0.0, 1.0);
}
vec3 contrasty(vec3 colour){
vec3 fColour = (colour.xyz);
//fColour = LiftGammaGainPass(fColour);
fColour = clamp(exposure * fColour, 0.0, 1.0);
fColour = pow(fColour, vec3(1.0 / gamma));
float luminance = fColour.r*0.299 + fColour.g*0.587 + fColour.b*0.114;
float mn = min(min(fColour.r, fColour.g), fColour.b);
float mx = max(max(fColour.r, fColour.g), fColour.b);
float sat = (1.0 - (mx - mn)) * (1.0 - mx) * luminance * 5.0;
vec3 lightness = vec3((mn + mx) / 2.0);
fColour = LiftGammaGainPass(fColour);
// vibrance
fColour = mix(fColour, mix(fColour, lightness, -vibrance), sat);
fColour = max(vec3(0.0), fColour - vec3(crushContrast));
return fColour;
}
uniform ivec4 uf_remappedPS[5];
layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf4e13800 res 1280x720x1 dim 1 tm: 4 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 0
layout(binding = 2) uniform sampler2D textureUnitPS2;// Tex2 addr 0x1b163800 res 512x1x1 dim 1 tm: 4 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler2 ClampX/Y/Z: 2 2 2 border: 0
layout(binding = 3) uniform sampler2D textureUnitPS3;// Tex3 addr 0x10ea5000 res 1280x720x1 dim 1 tm: 4 format 0011 compSel: 0 0 0 0 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler3 ClampX/Y/Z: 2 2 2 border: 0
layout(binding = 4) uniform sampler2D textureUnitPS4;// Tex4 addr 0x1aff9000 res 320x180x1 dim 1 tm: 4 format 0820 compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler4 ClampX/Y/Z: 2 2 2 border: 0
layout(binding = 5) uniform sampler2D textureUnitPS5;// Tex5 addr 0x1b072000 res 320x180x1 dim 1 tm: 4 format 0820 compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler5 ClampX/Y/Z: 2 2 2 border: 0
layout(binding = 6) uniform sampler2D textureUnitPS6;// Tex6 addr 0x1b17b000 res 1x1x1 dim 1 tm: 2 format 080e compSel: 0 4 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler6 ClampX/Y/Z: 2 2 2 border: 0
layout(binding = 7) uniform sampler2D textureUnitPS7;// Tex7 addr 0x1abdd800 res 160x90x1 dim 1 tm: 4 format 041a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler7 ClampX/Y/Z: 2 2 2 border: 0
layout(location = 0) in vec4 passParameterSem128;
layout(location = 0) out vec4 passPixelColor0;
//uniform vec2 uf_fragCoordScale;
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()
{
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 R122i = ivec4(0);
ivec4 R123i = ivec4(0);
ivec4 R125i = ivec4(0);
ivec4 R126i = ivec4(0);
ivec4 R127i = ivec4(0);
int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i;
ivec4 PV0i = ivec4(0), PV1i = ivec4(0);
int PS0i = 0, PS1i = 0;
ivec4 tempi = ivec4(0);
float tempResultf;
int tempResulti;
ivec4 ARi = ivec4(0);
bool predResult = true;
vec3 cubeMapSTM;
int cubeMapFaceId;
R0i = floatBitsToInt(passParameterSem128);
R1i.x = floatBitsToInt(texture(textureUnitPS3, intBitsToFloat(R0i.xy)).x);
R4i.xyzw = floatBitsToInt(texture(textureUnitPS4, intBitsToFloat(R0i.xy)).xyzw);
R3i.xyzw = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R0i.xy)).xyzw);
R2i.xyzw = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.xy)).xyzw);
R5i.xyz = floatBitsToInt(texture(textureUnitPS7, intBitsToFloat(R0i.xy)).xyz);
// 0
R0i.x = 0x3f000000;
R1i.y = 0x3f000000;
R0i.w = floatBitsToInt(intBitsToFloat(R4i.w) + -(0.5));
R1i.x = floatBitsToInt(texture(textureUnitPS2, intBitsToFloat(R1i.xy)).w);
R0i.x = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R0i.xx)).x);
// 0
PV0i.x = floatBitsToInt(intBitsToFloat(R1i.x) + -(0.5));
R127i.y = ((0.5 > intBitsToFloat(R1i.x))?int(0xFFFFFFFF):int(0x0));
PV0i.y = R127i.y;
PV0i.z = floatBitsToInt(max(intBitsToFloat(R0i.w), -(intBitsToFloat(R0i.w))));
PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) * 2.0);
// 1
R123i.x = ((PV0i.y == 0)?(R2i.x):(R3i.x));
PV1i.x = R123i.x;
PV1i.y = floatBitsToInt(-(intBitsToFloat(PV0i.z)) + 1.0);
PV1i.y = clampFI32(PV1i.y);
R123i.z = ((PV0i.y == 0)?(R2i.y):(R3i.y));
PV1i.z = R123i.z;
PV1i.w = floatBitsToInt(max(intBitsToFloat(PV0i.x), -(intBitsToFloat(PV0i.x))));
PV1i.w = floatBitsToInt(intBitsToFloat(PV1i.w) * 2.0);
R122i.x = ((PV0i.y == 0)?(R2i.z):(R3i.z));
PS1i = R122i.x;
// 2
PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(0x3727c5ac));
R126i.y = floatBitsToInt(-(intBitsToFloat(R3i.y)) + intBitsToFloat(PV1i.z));
PV0i.z = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + 1.0);
PV0i.z = clampFI32(PV0i.z);
R127i.w = floatBitsToInt(-(intBitsToFloat(R3i.x)) + intBitsToFloat(PV1i.x));
R125i.y = floatBitsToInt(-(intBitsToFloat(R3i.z)) + intBitsToFloat(PS1i));
PS0i = R125i.y;
// 3
R123i.x = ((R127i.y == 0)?(R2i.w):(R3i.w));
PV1i.x = R123i.x;
PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(0x3727c5ac));
PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.x));
// 4
R127i.x = floatBitsToInt(-(intBitsToFloat(R3i.w)) + intBitsToFloat(PV1i.x));
PV0i.z = floatBitsToInt(intBitsToFloat(PS1i) + -(1.0));
PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.y));
// 5
PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + 4.0);
PV1i.w = floatBitsToInt(intBitsToFloat(PS0i) + -(1.0));
// 6
PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.y) + -(4.0));
PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) + 4.0);
// 7
PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + -(4.0));
R126i.w = floatBitsToInt(intBitsToFloat(PV0i.x) * 0.25);
R126i.w = clampFI32(R126i.w);
// 8
PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.y) * 0.25);
PV0i.x = clampFI32(PV0i.x);
// 9
backupReg0i = R127i.x;
backupReg1i = R126i.y;
backupReg2i = R127i.w;
R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(PV0i.x)) + intBitsToFloat(R3i.w)));
PV1i.x = R127i.x;
R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(PV0i.x)) + intBitsToFloat(R3i.z)));
PV1i.y = R126i.y;
R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg1i),intBitsToFloat(PV0i.x)) + intBitsToFloat(R3i.y)));
PV1i.z = R127i.z;
R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg2i),intBitsToFloat(PV0i.x)) + intBitsToFloat(R3i.x)));
PV1i.w = R127i.w;
// 10
PV0i.x = floatBitsToInt(intBitsToFloat(R4i.z) + -(intBitsToFloat(PV1i.y)));
PV0i.y = floatBitsToInt(intBitsToFloat(R4i.y) + -(intBitsToFloat(PV1i.z)));
PV0i.z = floatBitsToInt(intBitsToFloat(R4i.x) + -(intBitsToFloat(PV1i.w)));
PV0i.w = floatBitsToInt(intBitsToFloat(R4i.w) + -(intBitsToFloat(PV1i.x)));
// 11
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(R126i.w)) + intBitsToFloat(R127i.x)));
PV1i.x = R123i.x;
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(R126i.w)) + intBitsToFloat(R127i.z)));
PV1i.y = R123i.y;
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(R126i.w)) + intBitsToFloat(R127i.w)));
PV1i.z = R123i.z;
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R126i.w)) + intBitsToFloat(R126i.y)));
PV1i.w = R123i.w;
// 12
R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(R0i.x)));
PV0i.x = R127i.x;
PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R0i.x)));
R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R0i.x)));
PV0i.z = R126i.z;
R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(R0i.x)));
PV0i.w = R127i.w;
// 13
PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(0x3e6147ae));
R127i.z = floatBitsToInt(intBitsToFloat(PV0i.z) * intBitsToFloat(0x3e6147ae));
PV1i.z = R127i.z;
PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.w) * intBitsToFloat(0x3e6147ae));
R0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(uf_remappedPS[0].x)));
PS1i = R0i.w;
// 14
PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(0x3e99999a));
PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(0x3e99999a));
PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(0x3cf5c28f));
PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(0x3e99999a));
R125i.z = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(0x3cf5c28f));
PS0i = R125i.z;
// 15
backupReg0i = R127i.x;
R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(PV0i.w)) + intBitsToFloat(0x3d75c28f)));
PV1i.y = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(0x3cf5c28f));
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(PV0i.y)) + intBitsToFloat(0x3d75c28f)));
PV1i.z = R123i.z;
R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.w),intBitsToFloat(PV0i.x)) + intBitsToFloat(0x3d75c28f)));
R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(PV0i.z)) + intBitsToFloat(0x3b03126f)));
PS1i = R127i.x;
// 16
backupReg0i = R126i.z;
backupReg1i = R127i.w;
R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(PV1i.y)) + intBitsToFloat(0x3b03126f)));
R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg1i),intBitsToFloat(R125i.z)) + intBitsToFloat(0x3b03126f)));
PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.z));
// 17
PV1i.z = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(PS0i));
PS1i = floatBitsToInt(1.0 / intBitsToFloat(R126i.w));
// 18
PV0i.y = floatBitsToInt(intBitsToFloat(R127i.w) * intBitsToFloat(PS1i));
PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.z) + -(intBitsToFloat(0x3d086595)));
PS0i = floatBitsToInt(1.0 / intBitsToFloat(R126i.x));
// 19
PV1i.x = floatBitsToInt(intBitsToFloat(R126i.z) * intBitsToFloat(PS0i));
PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(uf_remappedPS[0].x)));
PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.y) + -(intBitsToFloat(0x3d086595)));
// 20
R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.x),intBitsToFloat(uf_remappedPS[1].x)) + intBitsToFloat(PV1i.y)));
PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.x) + -(intBitsToFloat(0x3d086595)));
PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(uf_remappedPS[0].x)));
// 21
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),intBitsToFloat(uf_remappedPS[1].x)) + intBitsToFloat(PV0i.w)));
PV1i.x = R123i.x;
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(uf_remappedPS[0].x)));
// 22
backupReg0i = R126i.x;
R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(uf_remappedPS[2].x)));
R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(uf_remappedPS[2].y)));
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.z),intBitsToFloat(uf_remappedPS[1].x)) + intBitsToFloat(PV1i.z)));
PV0i.w = R123i.w;
// 23
R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(uf_remappedPS[2].z)));
PV1i.z = R126i.z;
// 24
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R126i.x),intBitsToFloat(R126i.y),intBitsToFloat(PV1i.z),-0.0),vec4(intBitsToFloat(0x3e990abb),intBitsToFloat(0x3f162c13),intBitsToFloat(0x3dea747e),0.0)));
PV0i.x = tempi.x;
PV0i.y = tempi.x;
PV0i.z = tempi.x;
PV0i.w = tempi.x;
R125i.z = tempi.x;
// 25
PV1i.x = floatBitsToInt(intBitsToFloat(R126i.y) + -(intBitsToFloat(PV0i.x)));
PV1i.y = floatBitsToInt(intBitsToFloat(R126i.x) + -(intBitsToFloat(PV0i.x)));
PV1i.w = floatBitsToInt(intBitsToFloat(R126i.z) + -(intBitsToFloat(PV0i.x)));
// 26
R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(uf_remappedPS[3].z)) + intBitsToFloat(R125i.z)));
R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(uf_remappedPS[3].y)) + intBitsToFloat(R125i.z)));
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(uf_remappedPS[3].x)) + intBitsToFloat(R125i.z)));
PV0i.z = R123i.z;
// 27
tempResultf = log2(intBitsToFloat(PV0i.z));
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
PS1i = floatBitsToInt(tempResultf);
// 28
R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), intBitsToFloat(uf_remappedPS[4].x)));
tempResultf = log2(intBitsToFloat(R126i.y));
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
PS0i = floatBitsToInt(tempResultf);
// 29
R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(uf_remappedPS[4].x)));
tempResultf = log2(intBitsToFloat(R126i.x));
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
PS1i = floatBitsToInt(tempResultf);
// 30
R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), intBitsToFloat(uf_remappedPS[4].x)));
PS0i = floatBitsToInt(exp2(intBitsToFloat(R125i.z)));
// 31
R0i.x = PS0i;
PS1i = floatBitsToInt(exp2(intBitsToFloat(R127i.w)));
// 32
R0i.y = PS1i;
R4i.w = floatBitsToInt(exp2(intBitsToFloat(R126i.x)));
PS0i = R4i.w;
// 33
R0i.z = R4i.w;
// export
passPixelColor0 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), intBitsToFloat(R0i.w));
passPixelColor0.xyz = contrasty(passPixelColor0.xyz);
passPixelColor0.xyz = mix(passPixelColor0.xyz, smoothstep(0.0, 1.0, passPixelColor0.xyz), contrastCurve);
float smask = lumasharping(textureUnitPS0, passParameterSem128.xy);
vec3 temp3 = passPixelColor0.xyz;
passPixelColor0.xyz = mix(passPixelColor0.xyz, (temp3.xyz += (smask)), sharp_mix);
}

View File

@ -0,0 +1,94 @@
[Definition]
titleIds = 000500001017D800,000500001017D900,000500001017CD00
name = Contrasty
path = "Hyrule warriors/Graphics/Contrasty "
description = Colour and contrast.
version = 3
[Preset]
name = default
$redShadows = 1.0
$greenShadows = 1.0
$blueSadows = 1.0
$redMid = 1.0
$greenMid = 1.0
$blueMid = 1.0
$redHilight = 1.0
$greenHilight =1.0
$blueHilight = 1.0
$contrastCurve = 0.0
$hazeFactor = 1.0
$bloom = 1.0
$gamma = 1.0
$exposure = 1.0
$vibrance = 0.0
$crushContrast = 0.0
$bleach = 1.0
$sharp_mix = 0.0
[Preset]
name = High Contrasty
$redShadows = 1.02
$greenShadows = 1.01
$blueSadows = 1.01
$redMid = 0.98
$greenMid = 0.98
$blueMid = 0.96
$redHilight = 1.02
$greenHilight = 1.01
$blueHilight = 1.0
$contrastCurve = 0.45
$hazeFactor = 0.25
$bloom = 0.85
$gamma = 1.0
$exposure = 1.5
$vibrance = 0.35
$crushContrast = 0.00
$bleach = 0.85
$sharp_mix = 0.35
[Preset]
name = Colourfull
$redShadows = 0.999
$greenShadows = 0.99
$blueSadows = 0.99
$redMid = 1.0
$greenMid = 0.99
$blueMid = 0.99
$redHilight = 0.99
$greenHilight =0.99
$blueHilight = 0.99
$contrastCurve = 0.1
$hazeFactor = 1.0
$bloom = 0.85
$gamma = 1.05
$exposure = 1.1
$vibrance = 0.5
$crushContrast = 0.00
$bleach = 0.85
$sharp_mix = 0.3
[Preset]
name = Neutral Contrasty
$redShadows = 1.01
$greenShadows = 1.01
$blueSadows = 1.01
$redMid = 1.0
$greenMid = 1.0
$blueMid = 1.0
$redHilight = 0.99
$greenHilight =0.99
$blueHilight = 0.99
$contrastCurve = 0.25
$hazeFactor = 1.0
$bloom = 0.85
$gamma = 1.075
$exposure = 1.25
$vibrance = 0.15
$crushContrast = 0.00
$bleach = 0.85
$sharp_mix = 0.25

View File

@ -0,0 +1,269 @@
#version 420
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#extension GL_ARB_shading_language_packing : enable
// shader 492839ddc5f8f43e //3rd level dof
const float resScale = ($height/$gameHeight)*$internalRes;
uniform ivec4 uf_uniformRegisterVS[256];
uniform vec2 uf_windowSpaceToClipSpaceTransform;
layout(location = 0) in uvec4 attrDataSem0;
layout(location = 1) in uvec4 attrDataSem1;
out gl_PerVertex
{
vec4 gl_Position;
float gl_PointSize;
};
layout(location = 0) out vec4 passParameterSem128;
layout(location = 1) out vec4 passParameterSem129;
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()
{
ivec4 Ri[128];
Ri[0] = ivec4(0);
Ri[1] = ivec4(0);
Ri[2] = ivec4(0);
Ri[3] = ivec4(0);
Ri[4] = ivec4(0);
Ri[5] = ivec4(0);
Ri[6] = ivec4(0);
Ri[7] = ivec4(0);
Ri[8] = ivec4(0);
Ri[9] = ivec4(0);
Ri[10] = ivec4(0);
Ri[11] = ivec4(0);
Ri[12] = ivec4(0);
Ri[13] = ivec4(0);
Ri[14] = ivec4(0);
Ri[15] = ivec4(0);
Ri[16] = ivec4(0);
Ri[17] = ivec4(0);
Ri[18] = ivec4(0);
Ri[19] = ivec4(0);
Ri[20] = ivec4(0);
Ri[21] = ivec4(0);
Ri[22] = ivec4(0);
Ri[23] = ivec4(0);
Ri[24] = ivec4(0);
Ri[25] = ivec4(0);
Ri[26] = ivec4(0);
Ri[27] = ivec4(0);
Ri[28] = ivec4(0);
Ri[29] = ivec4(0);
Ri[30] = ivec4(0);
Ri[31] = ivec4(0);
Ri[32] = ivec4(0);
Ri[33] = ivec4(0);
Ri[34] = ivec4(0);
Ri[35] = ivec4(0);
Ri[36] = ivec4(0);
Ri[37] = ivec4(0);
Ri[38] = ivec4(0);
Ri[39] = ivec4(0);
Ri[40] = ivec4(0);
Ri[41] = ivec4(0);
Ri[42] = ivec4(0);
Ri[43] = ivec4(0);
Ri[44] = ivec4(0);
Ri[45] = ivec4(0);
Ri[46] = ivec4(0);
Ri[47] = ivec4(0);
Ri[48] = ivec4(0);
Ri[49] = ivec4(0);
Ri[50] = ivec4(0);
Ri[51] = ivec4(0);
Ri[52] = ivec4(0);
Ri[53] = ivec4(0);
Ri[54] = ivec4(0);
Ri[55] = ivec4(0);
Ri[56] = ivec4(0);
Ri[57] = ivec4(0);
Ri[58] = ivec4(0);
Ri[59] = ivec4(0);
Ri[60] = ivec4(0);
Ri[61] = ivec4(0);
Ri[62] = ivec4(0);
Ri[63] = ivec4(0);
Ri[64] = ivec4(0);
Ri[65] = ivec4(0);
Ri[66] = ivec4(0);
Ri[67] = ivec4(0);
Ri[68] = ivec4(0);
Ri[69] = ivec4(0);
Ri[70] = ivec4(0);
Ri[71] = ivec4(0);
Ri[72] = ivec4(0);
Ri[73] = ivec4(0);
Ri[74] = ivec4(0);
Ri[75] = ivec4(0);
Ri[76] = ivec4(0);
Ri[77] = ivec4(0);
Ri[78] = ivec4(0);
Ri[79] = ivec4(0);
Ri[80] = ivec4(0);
Ri[81] = ivec4(0);
Ri[82] = ivec4(0);
Ri[83] = ivec4(0);
Ri[84] = ivec4(0);
Ri[85] = ivec4(0);
Ri[86] = ivec4(0);
Ri[87] = ivec4(0);
Ri[88] = ivec4(0);
Ri[89] = ivec4(0);
Ri[90] = ivec4(0);
Ri[91] = ivec4(0);
Ri[92] = ivec4(0);
Ri[93] = ivec4(0);
Ri[94] = ivec4(0);
Ri[95] = ivec4(0);
Ri[96] = ivec4(0);
Ri[97] = ivec4(0);
Ri[98] = ivec4(0);
Ri[99] = ivec4(0);
Ri[100] = ivec4(0);
Ri[101] = ivec4(0);
Ri[102] = ivec4(0);
Ri[103] = ivec4(0);
Ri[104] = ivec4(0);
Ri[105] = ivec4(0);
Ri[106] = ivec4(0);
Ri[107] = ivec4(0);
Ri[108] = ivec4(0);
Ri[109] = ivec4(0);
Ri[110] = ivec4(0);
Ri[111] = ivec4(0);
Ri[112] = ivec4(0);
Ri[113] = ivec4(0);
Ri[114] = ivec4(0);
Ri[115] = ivec4(0);
Ri[116] = ivec4(0);
Ri[117] = ivec4(0);
Ri[118] = ivec4(0);
Ri[119] = ivec4(0);
Ri[120] = ivec4(0);
Ri[121] = ivec4(0);
Ri[122] = ivec4(0);
Ri[123] = ivec4(0);
Ri[124] = ivec4(0);
Ri[125] = ivec4(0);
Ri[126] = ivec4(0);
Ri[127] = ivec4(0);
uvec4 attrDecoder;
int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i;
ivec4 PV0i = ivec4(0), PV1i = ivec4(0);
int PS0i = 0, PS1i = 0;
ivec4 tempi = ivec4(0);
float tempResultf;
int tempResulti;
ivec4 ARi = ivec4(0);
bool predResult = true;
bool activeMaskStack[1];
bool activeMaskStackC[2];
activeMaskStackC[0] = false;
activeMaskStack[0] = true;
activeMaskStackC[0] = true;
activeMaskStackC[1] = true;
vec3 cubeMapSTM;
int cubeMapFaceId;
Ri[0] = ivec4(gl_VertexID, 0, 0, gl_InstanceID);
attrDecoder = attrDataSem0;
attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24));
Ri[1] = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w));
attrDecoder.xy = attrDataSem1.xy;
attrDecoder.xy = (attrDecoder.xy>>24)|((attrDecoder.xy>>8)&0xFF00)|((attrDecoder.xy<<8)&0xFF0000)|((attrDecoder.xy<<24));
attrDecoder.z = 0;
attrDecoder.w = 0;
Ri[2] = ivec4(int(attrDecoder.x), int(attrDecoder.y), floatBitsToInt(0.0), floatBitsToInt(1.0));
if( activeMaskStackC[1] == true ) {
// 0
Ri[3].y = 0;
PV0i.z = floatBitsToInt(intBitsToFloat(Ri[1].y) + intBitsToFloat(uf_uniformRegisterVS[0].y));
PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) * 2.0);
PV0i.w = floatBitsToInt(intBitsToFloat(Ri[1].x) + intBitsToFloat(uf_uniformRegisterVS[0].x));
PV0i.w = floatBitsToInt(intBitsToFloat(PV0i.w) * 2.0);
// 1
PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.z) + -(1.0));
Ri[1].x = floatBitsToInt(intBitsToFloat(PV0i.w) + -(1.0));
PS1i = Ri[1].x;
// 2
Ri[1].y = floatBitsToInt(intBitsToFloat(PV1i.x) * -(1.0));
// 3
Ri[8].xyz = ivec3(Ri[1].x,Ri[1].y,Ri[1].z);
Ri[8].w = Ri[1].w;
}
while( activeMaskStackC[1] == true )
{
if( activeMaskStackC[1] == true ) {
// 0
Ri[0].z = (0x00000002 > Ri[3].y)?int(0xFFFFFFFF):int(0x0);
// 1
predResult = (Ri[0].z != 0);
if( predResult == false ) break;
}
if( activeMaskStackC[1] == true ) {
// 0
backupReg0i = Ri[3].y;
backupReg0i = Ri[3].y;
Ri[1].x = Ri[3].y + 0x00000003;
Ri[3].y = backupReg0i + int(1);
Ri[127].z = floatBitsToInt(float(backupReg0i));
PS0i = Ri[127].z;
// 1
tempResultf = intBitsToFloat(PS0i);
tempResultf = floor(tempResultf);
tempResultf = clamp(tempResultf, -256.0, 255.0);
ARi.x = int(tempResultf);
PV1i.x = floatBitsToInt(tempResultf);
// 2
PV0i.x = floatBitsToInt(intBitsToFloat(Ri[2].y) + intBitsToFloat(uf_uniformRegisterVS[ARi.x+2].y)/resScale);
PV0i.y = floatBitsToInt(intBitsToFloat(Ri[2].x) + intBitsToFloat(uf_uniformRegisterVS[ARi.x+2].x)/resScale);
PV0i.z = floatBitsToInt(intBitsToFloat(Ri[2].y) + intBitsToFloat(uf_uniformRegisterVS[ARi.x+2].w)/resScale);
PV0i.w = floatBitsToInt(intBitsToFloat(Ri[2].x) + intBitsToFloat(uf_uniformRegisterVS[ARi.x+2].z)/resScale);
// 3
PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(uf_uniformRegisterVS[1].y)));
PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(uf_uniformRegisterVS[1].x)));
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(uf_uniformRegisterVS[1].x)));
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(uf_uniformRegisterVS[1].y)));
// 4
Ri[0].xyz = floatBitsToInt(vec3(intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.w),intBitsToFloat(PV1i.z)) + vec3(intBitsToFloat(uf_uniformRegisterVS[1].z)/resScale,intBitsToFloat(uf_uniformRegisterVS[1].w)/resScale,intBitsToFloat(uf_uniformRegisterVS[1].z)/resScale));
Ri[0].w = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(uf_uniformRegisterVS[1].w)/resScale);
// 5
tempResulti = Ri[1].x;
tempResulti = clamp(tempResulti, -256, 255);
ARi.x = tempResulti;
PV1i.x = tempResulti;
// 6
Ri[6+ARi.x].x = Ri[0].x;
Ri[6+ARi.x].y = Ri[0].y;
Ri[6+ARi.x].z = Ri[0].z;
Ri[6+ARi.x].w = Ri[0].w;
}
}
if( activeMaskStackC[1] == true ) {
// 0
Ri[0].xyz = ivec3(Ri[8].x,Ri[8].y,Ri[8].z);
Ri[0].w = Ri[8].w;
// 1
Ri[1].xyz = ivec3(Ri[9].x,Ri[9].y,Ri[9].z);
Ri[1].w = Ri[9].w;
// 2
Ri[2].xyz = ivec3(Ri[10].x,Ri[10].y,Ri[10].z);
Ri[2].w = Ri[10].w;
}
// export
gl_Position = vec4(intBitsToFloat(Ri[0].x), intBitsToFloat(Ri[0].y), intBitsToFloat(Ri[0].z), intBitsToFloat(Ri[0].w));
// export
passParameterSem128 = vec4(intBitsToFloat(Ri[1].x), intBitsToFloat(Ri[1].y), intBitsToFloat(Ri[1].z), intBitsToFloat(Ri[1].w));
// export
passParameterSem129 = vec4(intBitsToFloat(Ri[2].x), intBitsToFloat(Ri[2].y), intBitsToFloat(Ri[2].z), intBitsToFloat(Ri[2].w));
if( activeMaskStackC[1] == true ) {
// 0
}
}

View File

@ -0,0 +1,293 @@
#version 420
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#extension GL_ARB_shading_language_packing : enable
// shader 945d9672d0114248
const float resScale = ($height/$gameHeight);
uniform ivec4 uf_uniformRegisterVS[256];
uniform vec2 uf_windowSpaceToClipSpaceTransform;
layout(location = 0) in uvec4 attrDataSem0;
layout(location = 1) in uvec4 attrDataSem1;
out gl_PerVertex
{
vec4 gl_Position;
float gl_PointSize;
};
layout(location = 1) out vec4 passParameterSem129;
layout(location = 2) out vec4 passParameterSem130;
layout(location = 3) out vec4 passParameterSem131;
layout(location = 0) out vec4 passParameterSem128;
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 Ri[128];
Ri[0] = ivec4(0);
Ri[1] = ivec4(0);
Ri[2] = ivec4(0);
Ri[3] = ivec4(0);
Ri[4] = ivec4(0);
Ri[5] = ivec4(0);
Ri[6] = ivec4(0);
Ri[7] = ivec4(0);
Ri[8] = ivec4(0);
Ri[9] = ivec4(0);
Ri[10] = ivec4(0);
Ri[11] = ivec4(0);
Ri[12] = ivec4(0);
Ri[13] = ivec4(0);
Ri[14] = ivec4(0);
Ri[15] = ivec4(0);
Ri[16] = ivec4(0);
Ri[17] = ivec4(0);
Ri[18] = ivec4(0);
Ri[19] = ivec4(0);
Ri[20] = ivec4(0);
Ri[21] = ivec4(0);
Ri[22] = ivec4(0);
Ri[23] = ivec4(0);
Ri[24] = ivec4(0);
Ri[25] = ivec4(0);
Ri[26] = ivec4(0);
Ri[27] = ivec4(0);
Ri[28] = ivec4(0);
Ri[29] = ivec4(0);
Ri[30] = ivec4(0);
Ri[31] = ivec4(0);
Ri[32] = ivec4(0);
Ri[33] = ivec4(0);
Ri[34] = ivec4(0);
Ri[35] = ivec4(0);
Ri[36] = ivec4(0);
Ri[37] = ivec4(0);
Ri[38] = ivec4(0);
Ri[39] = ivec4(0);
Ri[40] = ivec4(0);
Ri[41] = ivec4(0);
Ri[42] = ivec4(0);
Ri[43] = ivec4(0);
Ri[44] = ivec4(0);
Ri[45] = ivec4(0);
Ri[46] = ivec4(0);
Ri[47] = ivec4(0);
Ri[48] = ivec4(0);
Ri[49] = ivec4(0);
Ri[50] = ivec4(0);
Ri[51] = ivec4(0);
Ri[52] = ivec4(0);
Ri[53] = ivec4(0);
Ri[54] = ivec4(0);
Ri[55] = ivec4(0);
Ri[56] = ivec4(0);
Ri[57] = ivec4(0);
Ri[58] = ivec4(0);
Ri[59] = ivec4(0);
Ri[60] = ivec4(0);
Ri[61] = ivec4(0);
Ri[62] = ivec4(0);
Ri[63] = ivec4(0);
Ri[64] = ivec4(0);
Ri[65] = ivec4(0);
Ri[66] = ivec4(0);
Ri[67] = ivec4(0);
Ri[68] = ivec4(0);
Ri[69] = ivec4(0);
Ri[70] = ivec4(0);
Ri[71] = ivec4(0);
Ri[72] = ivec4(0);
Ri[73] = ivec4(0);
Ri[74] = ivec4(0);
Ri[75] = ivec4(0);
Ri[76] = ivec4(0);
Ri[77] = ivec4(0);
Ri[78] = ivec4(0);
Ri[79] = ivec4(0);
Ri[80] = ivec4(0);
Ri[81] = ivec4(0);
Ri[82] = ivec4(0);
Ri[83] = ivec4(0);
Ri[84] = ivec4(0);
Ri[85] = ivec4(0);
Ri[86] = ivec4(0);
Ri[87] = ivec4(0);
Ri[88] = ivec4(0);
Ri[89] = ivec4(0);
Ri[90] = ivec4(0);
Ri[91] = ivec4(0);
Ri[92] = ivec4(0);
Ri[93] = ivec4(0);
Ri[94] = ivec4(0);
Ri[95] = ivec4(0);
Ri[96] = ivec4(0);
Ri[97] = ivec4(0);
Ri[98] = ivec4(0);
Ri[99] = ivec4(0);
Ri[100] = ivec4(0);
Ri[101] = ivec4(0);
Ri[102] = ivec4(0);
Ri[103] = ivec4(0);
Ri[104] = ivec4(0);
Ri[105] = ivec4(0);
Ri[106] = ivec4(0);
Ri[107] = ivec4(0);
Ri[108] = ivec4(0);
Ri[109] = ivec4(0);
Ri[110] = ivec4(0);
Ri[111] = ivec4(0);
Ri[112] = ivec4(0);
Ri[113] = ivec4(0);
Ri[114] = ivec4(0);
Ri[115] = ivec4(0);
Ri[116] = ivec4(0);
Ri[117] = ivec4(0);
Ri[118] = ivec4(0);
Ri[119] = ivec4(0);
Ri[120] = ivec4(0);
Ri[121] = ivec4(0);
Ri[122] = ivec4(0);
Ri[123] = ivec4(0);
Ri[124] = ivec4(0);
Ri[125] = ivec4(0);
Ri[126] = ivec4(0);
Ri[127] = ivec4(0);
uvec4 attrDecoder;
int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i;
ivec4 PV0i = ivec4(0), PV1i = ivec4(0);
int PS0i = 0, PS1i = 0;
ivec4 tempi = ivec4(0);
float tempResultf;
int tempResulti;
ivec4 ARi = ivec4(0);
bool predResult = true;
bool activeMaskStack[1];
bool activeMaskStackC[2];
activeMaskStackC[0] = false;
activeMaskStack[0] = true;
activeMaskStackC[0] = true;
activeMaskStackC[1] = true;
vec3 cubeMapSTM;
int cubeMapFaceId;
Ri[0] = ivec4(gl_VertexID, 0, 0, gl_InstanceID);
attrDecoder = attrDataSem0;
attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24));
Ri[1] = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w));
attrDecoder.xy = attrDataSem1.xy;
attrDecoder.xy = (attrDecoder.xy>>24)|((attrDecoder.xy>>8)&0xFF00)|((attrDecoder.xy<<8)&0xFF0000)|((attrDecoder.xy<<24));
attrDecoder.z = 0;
attrDecoder.w = 0;
Ri[2] = ivec4(int(attrDecoder.x), int(attrDecoder.y), floatBitsToInt(0.0), floatBitsToInt(1.0));
if( activeMaskStackC[1] == true ) {
// 0
Ri[3].y = 0;
PV0i.z = floatBitsToInt(intBitsToFloat(Ri[1].y) + intBitsToFloat(uf_uniformRegisterVS[0].y)/resScale);
PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) * 2.0);
PV0i.w = floatBitsToInt(intBitsToFloat(Ri[1].x) + intBitsToFloat(uf_uniformRegisterVS[0].x)/resScale);
PV0i.w = floatBitsToInt(intBitsToFloat(PV0i.w) * 2.0);
// 1
PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.z) + -(1.0));
Ri[1].x = floatBitsToInt(intBitsToFloat(PV0i.w) + -(1.0));
PS1i = Ri[1].x;
// 2
Ri[1].y = floatBitsToInt(intBitsToFloat(PV1i.x) * -(1.0));
// 3
Ri[10].xyz = ivec3(Ri[1].x,Ri[1].y,Ri[1].z);
Ri[10].w = Ri[1].w;
}
while( activeMaskStackC[1] == true )
{
if( activeMaskStackC[1] == true ) {
// 0
Ri[0].z = (0x00000003 > Ri[3].y)?int(0xFFFFFFFF):int(0x0);
// 1
predResult = (Ri[0].z != 0);
if( predResult == false ) break;
}
if( activeMaskStackC[1] == true ) {
// 0
backupReg0i = Ri[3].y;
backupReg0i = Ri[3].y;
Ri[1].x = Ri[3].y + 0x00000005;
Ri[3].y = backupReg0i + int(1);
Ri[127].z = floatBitsToInt(float(backupReg0i));
PS0i = Ri[127].z;
// 1
tempResultf = intBitsToFloat(PS0i);
tempResultf = floor(tempResultf);
tempResultf = clamp(tempResultf, -256.0, 255.0);
ARi.x = int(tempResultf);
PV1i.x = floatBitsToInt(tempResultf);
// 2
PV0i.x = floatBitsToInt(intBitsToFloat(Ri[2].y) + intBitsToFloat(uf_uniformRegisterVS[ARi.x+2].y)/resScale);
PV0i.y = floatBitsToInt(intBitsToFloat(Ri[2].x) + intBitsToFloat(uf_uniformRegisterVS[ARi.x+2].x)/resScale);
PV0i.z = floatBitsToInt(intBitsToFloat(Ri[2].y) + intBitsToFloat(uf_uniformRegisterVS[ARi.x+2].w)/resScale);
PV0i.w = floatBitsToInt(intBitsToFloat(Ri[2].x) + intBitsToFloat(uf_uniformRegisterVS[ARi.x+2].z)/resScale);
// 3
PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(uf_uniformRegisterVS[1].y)));
PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(uf_uniformRegisterVS[1].x)));
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(uf_uniformRegisterVS[1].x)));
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(uf_uniformRegisterVS[1].y)));
// 4
Ri[0].xyz = floatBitsToInt(vec3(intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.w),intBitsToFloat(PV1i.z)) + vec3(intBitsToFloat(uf_uniformRegisterVS[1].z)/resScale,intBitsToFloat(uf_uniformRegisterVS[1].w)/resScale,intBitsToFloat(uf_uniformRegisterVS[1].z)/resScale));
Ri[0].w = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(uf_uniformRegisterVS[1].w)/resScale);
// 5
tempResulti = Ri[1].x;
tempResulti = clamp(tempResulti, -256, 255);
ARi.x = tempResulti;
PV1i.x = tempResulti;
// 6
Ri[7+ARi.x].x = Ri[0].x;
Ri[7+ARi.x].y = Ri[0].y;
Ri[7+ARi.x].z = Ri[0].z;
Ri[7+ARi.x].w = Ri[0].w;
}
}
if( activeMaskStackC[1] == true ) {
// 0
PV0i.x = floatBitsToInt(intBitsToFloat(Ri[2].y) + intBitsToFloat(uf_uniformRegisterVS[5].y));
PV0i.y = floatBitsToInt(intBitsToFloat(Ri[2].x) + intBitsToFloat(uf_uniformRegisterVS[5].x));
// 1
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(uf_uniformRegisterVS[1].y)));
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(uf_uniformRegisterVS[1].x)));
// 2
Ri[4].x = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(uf_uniformRegisterVS[1].z));
Ri[4].y = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(uf_uniformRegisterVS[1].w));
// 3
Ri[11].x = Ri[4].x;
Ri[11].y = Ri[4].y;
// 4
Ri[2].xyz = ivec3(Ri[10].x,Ri[10].y,Ri[10].z);
Ri[2].w = Ri[10].w;
// 5
Ri[0].xyz = ivec3(Ri[12].x,Ri[12].y,Ri[12].z);
Ri[0].w = Ri[12].w;
// 6
Ri[7].xyz = ivec3(Ri[0].x,Ri[0].y,Ri[0].z);
Ri[7].w = Ri[0].w;
// 7
Ri[1].xyz = ivec3(Ri[13].x,Ri[13].y,Ri[13].z);
Ri[1].w = Ri[13].w;
// 8
Ri[3].xyz = ivec3(Ri[14].x,Ri[14].y,Ri[14].z);
Ri[3].w = Ri[14].w;
}
// export
gl_Position = vec4(intBitsToFloat(Ri[2].x), intBitsToFloat(Ri[2].y), intBitsToFloat(Ri[2].z), intBitsToFloat(Ri[2].w));
// export
passParameterSem129 = vec4(intBitsToFloat(Ri[0].x), intBitsToFloat(Ri[0].y), intBitsToFloat(Ri[0].z), intBitsToFloat(Ri[0].w));
// export
passParameterSem130 = vec4(intBitsToFloat(Ri[1].x), intBitsToFloat(Ri[1].y), intBitsToFloat(Ri[1].z), intBitsToFloat(Ri[1].w));
// export
passParameterSem131 = vec4(intBitsToFloat(Ri[3].x), intBitsToFloat(Ri[3].y), intBitsToFloat(Ri[3].z), intBitsToFloat(Ri[3].w));
// export
passParameterSem128 = vec4(intBitsToFloat(Ri[4].x), intBitsToFloat(Ri[4].y), intBitsToFloat(Ri[4].z), intBitsToFloat(Ri[4].z));
if( activeMaskStackC[1] == true ) {
// 0
}
}

View File

@ -0,0 +1,324 @@
#version 420
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#extension GL_ARB_shading_language_packing : enable
// shader b3609db7d1363f6a
//cutscene dof
const float resScale = ($height/$gameHeight)*$internalRes;
uniform ivec4 uf_uniformRegisterVS[256];
uniform vec2 uf_windowSpaceToClipSpaceTransform;
layout(location = 0) in uvec4 attrDataSem0;
layout(location = 1) in uvec4 attrDataSem1;
out gl_PerVertex
{
vec4 gl_Position;
float gl_PointSize;
};
layout(location = 0) out vec4 passParameterSem128;
layout(location = 1) out vec4 passParameterSem129;
layout(location = 2) out vec4 passParameterSem130;
layout(location = 3) out vec4 passParameterSem131;
layout(location = 4) out vec4 passParameterSem132;
layout(location = 5) out vec4 passParameterSem133;
layout(location = 6) out vec4 passParameterSem134;
layout(location = 7) out vec4 passParameterSem135;
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()
{
ivec4 Ri[128];
Ri[0] = ivec4(0);
Ri[1] = ivec4(0);
Ri[2] = ivec4(0);
Ri[3] = ivec4(0);
Ri[4] = ivec4(0);
Ri[5] = ivec4(0);
Ri[6] = ivec4(0);
Ri[7] = ivec4(0);
Ri[8] = ivec4(0);
Ri[9] = ivec4(0);
Ri[10] = ivec4(0);
Ri[11] = ivec4(0);
Ri[12] = ivec4(0);
Ri[13] = ivec4(0);
Ri[14] = ivec4(0);
Ri[15] = ivec4(0);
Ri[16] = ivec4(0);
Ri[17] = ivec4(0);
Ri[18] = ivec4(0);
Ri[19] = ivec4(0);
Ri[20] = ivec4(0);
Ri[21] = ivec4(0);
Ri[22] = ivec4(0);
Ri[23] = ivec4(0);
Ri[24] = ivec4(0);
Ri[25] = ivec4(0);
Ri[26] = ivec4(0);
Ri[27] = ivec4(0);
Ri[28] = ivec4(0);
Ri[29] = ivec4(0);
Ri[30] = ivec4(0);
Ri[31] = ivec4(0);
Ri[32] = ivec4(0);
Ri[33] = ivec4(0);
Ri[34] = ivec4(0);
Ri[35] = ivec4(0);
Ri[36] = ivec4(0);
Ri[37] = ivec4(0);
Ri[38] = ivec4(0);
Ri[39] = ivec4(0);
Ri[40] = ivec4(0);
Ri[41] = ivec4(0);
Ri[42] = ivec4(0);
Ri[43] = ivec4(0);
Ri[44] = ivec4(0);
Ri[45] = ivec4(0);
Ri[46] = ivec4(0);
Ri[47] = ivec4(0);
Ri[48] = ivec4(0);
Ri[49] = ivec4(0);
Ri[50] = ivec4(0);
Ri[51] = ivec4(0);
Ri[52] = ivec4(0);
Ri[53] = ivec4(0);
Ri[54] = ivec4(0);
Ri[55] = ivec4(0);
Ri[56] = ivec4(0);
Ri[57] = ivec4(0);
Ri[58] = ivec4(0);
Ri[59] = ivec4(0);
Ri[60] = ivec4(0);
Ri[61] = ivec4(0);
Ri[62] = ivec4(0);
Ri[63] = ivec4(0);
Ri[64] = ivec4(0);
Ri[65] = ivec4(0);
Ri[66] = ivec4(0);
Ri[67] = ivec4(0);
Ri[68] = ivec4(0);
Ri[69] = ivec4(0);
Ri[70] = ivec4(0);
Ri[71] = ivec4(0);
Ri[72] = ivec4(0);
Ri[73] = ivec4(0);
Ri[74] = ivec4(0);
Ri[75] = ivec4(0);
Ri[76] = ivec4(0);
Ri[77] = ivec4(0);
Ri[78] = ivec4(0);
Ri[79] = ivec4(0);
Ri[80] = ivec4(0);
Ri[81] = ivec4(0);
Ri[82] = ivec4(0);
Ri[83] = ivec4(0);
Ri[84] = ivec4(0);
Ri[85] = ivec4(0);
Ri[86] = ivec4(0);
Ri[87] = ivec4(0);
Ri[88] = ivec4(0);
Ri[89] = ivec4(0);
Ri[90] = ivec4(0);
Ri[91] = ivec4(0);
Ri[92] = ivec4(0);
Ri[93] = ivec4(0);
Ri[94] = ivec4(0);
Ri[95] = ivec4(0);
Ri[96] = ivec4(0);
Ri[97] = ivec4(0);
Ri[98] = ivec4(0);
Ri[99] = ivec4(0);
Ri[100] = ivec4(0);
Ri[101] = ivec4(0);
Ri[102] = ivec4(0);
Ri[103] = ivec4(0);
Ri[104] = ivec4(0);
Ri[105] = ivec4(0);
Ri[106] = ivec4(0);
Ri[107] = ivec4(0);
Ri[108] = ivec4(0);
Ri[109] = ivec4(0);
Ri[110] = ivec4(0);
Ri[111] = ivec4(0);
Ri[112] = ivec4(0);
Ri[113] = ivec4(0);
Ri[114] = ivec4(0);
Ri[115] = ivec4(0);
Ri[116] = ivec4(0);
Ri[117] = ivec4(0);
Ri[118] = ivec4(0);
Ri[119] = ivec4(0);
Ri[120] = ivec4(0);
Ri[121] = ivec4(0);
Ri[122] = ivec4(0);
Ri[123] = ivec4(0);
Ri[124] = ivec4(0);
Ri[125] = ivec4(0);
Ri[126] = ivec4(0);
Ri[127] = ivec4(0);
uvec4 attrDecoder;
int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i;
ivec4 PV0i = ivec4(0), PV1i = ivec4(0);
int PS0i = 0, PS1i = 0;
ivec4 tempi = ivec4(0);
float tempResultf;
int tempResulti;
ivec4 ARi = ivec4(0);
bool predResult = true;
bool activeMaskStack[1];
bool activeMaskStackC[2];
activeMaskStackC[0] = false;
activeMaskStack[0] = true;
activeMaskStackC[0] = true;
activeMaskStackC[1] = true;
vec3 cubeMapSTM;
int cubeMapFaceId;
Ri[0] = ivec4(gl_VertexID, 0, 0, gl_InstanceID);
attrDecoder = attrDataSem0;
attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24));
Ri[1] = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w));
attrDecoder.xy = attrDataSem1.xy;
attrDecoder.xy = (attrDecoder.xy>>24)|((attrDecoder.xy>>8)&0xFF00)|((attrDecoder.xy<<8)&0xFF0000)|((attrDecoder.xy<<24));
attrDecoder.z = 0;
attrDecoder.w = 0;
Ri[2] = ivec4(int(attrDecoder.x), int(attrDecoder.y), floatBitsToInt(0.0), floatBitsToInt(1.0));
if( activeMaskStackC[1] == true ) {
// 0
Ri[3].y = 0;
PV0i.z = floatBitsToInt(intBitsToFloat(Ri[1].y) + intBitsToFloat(uf_uniformRegisterVS[0].y)/resScale);
PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) * 2.0);
PV0i.w = floatBitsToInt(intBitsToFloat(Ri[1].x) + intBitsToFloat(uf_uniformRegisterVS[0].x)/resScale);
PV0i.w = floatBitsToInt(intBitsToFloat(PV0i.w) * 2.0);
// 1
PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.z) + -(1.0));
Ri[1].x = floatBitsToInt(intBitsToFloat(PV0i.w) + -(1.0));
PS1i = Ri[1].x;
// 2
Ri[1].y = floatBitsToInt(intBitsToFloat(PV1i.x) * -(1.0));
// 3
Ri[20].xyz = ivec3(Ri[1].x,Ri[1].y,Ri[1].z);
Ri[20].w = Ri[1].w;
}
while( activeMaskStackC[1] == true )
{
if( activeMaskStackC[1] == true ) {
// 0
Ri[0].z = (0x00000008 > Ri[3].y)?int(0xFFFFFFFF):int(0x0);
// 1
predResult = (Ri[0].z != 0);
if( predResult == false ) break;
}
if( activeMaskStackC[1] == true ) {
// 0
backupReg0i = Ri[3].y;
backupReg0i = Ri[3].y;
Ri[1].x = Ri[3].y + 0x00000009;
Ri[3].y = backupReg0i + int(1);
Ri[127].z = floatBitsToInt(float(backupReg0i));
PS0i = Ri[127].z;
// 1
tempResultf = intBitsToFloat(PS0i);
tempResultf = floor(tempResultf);
tempResultf = clamp(tempResultf, -256.0, 255.0);
ARi.x = int(tempResultf);
PV1i.x = floatBitsToInt(tempResultf);
// 2
PV0i.x = floatBitsToInt(intBitsToFloat(Ri[2].y) + intBitsToFloat(uf_uniformRegisterVS[ARi.x+2].y)/resScale);
PV0i.y = floatBitsToInt(intBitsToFloat(Ri[2].x) + intBitsToFloat(uf_uniformRegisterVS[ARi.x+2].x)/resScale);
PV0i.z = floatBitsToInt(intBitsToFloat(Ri[2].y) + intBitsToFloat(uf_uniformRegisterVS[ARi.x+2].w)/resScale);
PV0i.w = floatBitsToInt(intBitsToFloat(Ri[2].x) + intBitsToFloat(uf_uniformRegisterVS[ARi.x+2].z)/resScale);
// 3
PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(uf_uniformRegisterVS[1].y)));
PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(uf_uniformRegisterVS[1].x)));
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(uf_uniformRegisterVS[1].x)));
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(uf_uniformRegisterVS[1].y)));
// 4
Ri[0].xyz = floatBitsToInt(vec3(intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.w),intBitsToFloat(PV1i.z)) + vec3(intBitsToFloat(uf_uniformRegisterVS[1].z)/resScale,intBitsToFloat(uf_uniformRegisterVS[1].w)/resScale,intBitsToFloat(uf_uniformRegisterVS[1].z)/resScale));
Ri[0].w = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(uf_uniformRegisterVS[1].w)/resScale);
// 5
tempResulti = Ri[1].x;
tempResulti = clamp(tempResulti, -256, 255);
ARi.x = tempResulti;
PV1i.x = tempResulti;
// 6
Ri[12+ARi.x].x = Ri[0].x;
Ri[12+ARi.x].y = Ri[0].y;
Ri[12+ARi.x].z = Ri[0].z;
Ri[12+ARi.x].w = Ri[0].w;
}
}
if( activeMaskStackC[1] == true ) {
// 0
Ri[0].xyz = ivec3(Ri[20].x,Ri[20].y,Ri[20].z);
Ri[0].w = Ri[20].w;
// 1
Ri[1].xyz = ivec3(Ri[21].x,Ri[21].y,Ri[21].z);
Ri[1].w = Ri[21].w;
// 2
Ri[12].xyz = ivec3(Ri[1].x,Ri[1].y,Ri[1].z);
Ri[12].w = Ri[1].w;
// 3
Ri[2].xyz = ivec3(Ri[22].x,Ri[22].y,Ri[22].z);
Ri[2].w = Ri[22].w;
// 4
Ri[13].xyz = ivec3(Ri[2].x,Ri[2].y,Ri[2].z);
Ri[13].w = Ri[2].w;
// 5
Ri[3].xyz = ivec3(Ri[23].x,Ri[23].y,Ri[23].z);
Ri[3].w = Ri[23].w;
// 6
Ri[14].xyz = ivec3(Ri[3].x,Ri[3].y,Ri[3].z);
Ri[14].w = Ri[3].w;
// 7
Ri[4].xyz = ivec3(Ri[24].x,Ri[24].y,Ri[24].z);
Ri[4].w = Ri[24].w;
// 8
Ri[15].xyz = ivec3(Ri[4].x,Ri[4].y,Ri[4].z);
Ri[15].w = Ri[4].w;
// 9
Ri[5].xyz = ivec3(Ri[25].x,Ri[25].y,Ri[25].z);
Ri[5].w = Ri[25].w;
// 10
Ri[16].xyz = ivec3(Ri[5].x,Ri[5].y,Ri[5].z);
Ri[16].w = Ri[5].w;
// 11
Ri[6].xyz = ivec3(Ri[26].x,Ri[26].y,Ri[26].z);
Ri[6].w = Ri[26].w;
// 12
Ri[17].xyz = ivec3(Ri[6].x,Ri[6].y,Ri[6].z);
Ri[17].w = Ri[6].w;
// 13
Ri[7].xyz = ivec3(Ri[27].x,Ri[27].y,Ri[27].z);
Ri[7].w = Ri[27].w;
// 14
Ri[8].xyz = ivec3(Ri[28].x,Ri[28].y,Ri[28].z);
Ri[8].w = Ri[28].w;
}
// export
gl_Position = vec4(intBitsToFloat(Ri[0].x), intBitsToFloat(Ri[0].y), intBitsToFloat(Ri[0].z), intBitsToFloat(Ri[0].w));
// export
passParameterSem128 = vec4(intBitsToFloat(Ri[1].x), intBitsToFloat(Ri[1].y), intBitsToFloat(Ri[1].z), intBitsToFloat(Ri[1].w));
// export
passParameterSem129 = vec4(intBitsToFloat(Ri[2].x), intBitsToFloat(Ri[2].y), intBitsToFloat(Ri[2].z), intBitsToFloat(Ri[2].w));
// export
passParameterSem130 = vec4(intBitsToFloat(Ri[3].x), intBitsToFloat(Ri[3].y), intBitsToFloat(Ri[3].z), intBitsToFloat(Ri[3].w));
// export
passParameterSem131 = vec4(intBitsToFloat(Ri[4].x), intBitsToFloat(Ri[4].y), intBitsToFloat(Ri[4].z), intBitsToFloat(Ri[4].w));
// export
passParameterSem132 = vec4(intBitsToFloat(Ri[5].x), intBitsToFloat(Ri[5].y), intBitsToFloat(Ri[5].z), intBitsToFloat(Ri[5].w));
// export
passParameterSem133 = vec4(intBitsToFloat(Ri[6].x), intBitsToFloat(Ri[6].y), intBitsToFloat(Ri[6].z), intBitsToFloat(Ri[6].w));
// export
passParameterSem134 = vec4(intBitsToFloat(Ri[7].x), intBitsToFloat(Ri[7].y), intBitsToFloat(Ri[7].z), intBitsToFloat(Ri[7].w));
// export
passParameterSem135 = vec4(intBitsToFloat(Ri[8].x), intBitsToFloat(Ri[8].y), intBitsToFloat(Ri[8].z), intBitsToFloat(Ri[8].w));
if( activeMaskStackC[1] == true ) {
// 0
}
}

View File

@ -0,0 +1,101 @@
#version 420
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
// shader bbf87e1769bdcea3 //foreground blur?
const float dither = $dither ;
const float scaleShader = $scaleShader;
const float scaleBlur = ($scaleBlur*$internalRes);
const int sampleScale = 2;
const float lightBloom = 0.95;
uniform ivec4 uf_remappedPS[1];
layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0x1aa0b000 res 320x180x1 dim 1 tm: 4 format 0820 compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 0
layout(location = 0) in vec4 passParameterSem128;
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);
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));
}
return O / O.a;
}
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);
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 = passParameterSem128;
vec2 coord = passParameterSem128.xy*textureSize(textureUnitPS0, 0); //
vec2 ps = vec2(1.0) / textureSize(textureUnitPS0, 0);
vec2 uv = coord * ps;
R0f.xyz = blur(textureUnitPS0, R0f.xy, ps*scaleBlur).xyz; //1.0 4k //.66 2k //0.075 1k //.51 4kx2
//R0f.xyzw = (texture(textureUnitPS0, R0f.xy).xyzw);
// 0
PV0f.x = R0f.z * intBitsToFloat(0x3dea747e);
PV0f.w = intBitsToFloat(uf_remappedPS[0].x);
PV0f.w = clamp(PV0f.w, 0.0, 1.0);
// 1
backupReg0f = R0f.x;
backupReg1f = R0f.y;
tempf.x = dot(vec4(backupReg0f,backupReg1f,PV0f.x,-0.0),vec4(intBitsToFloat(0x3e990abb),intBitsToFloat(0x3f162c13),1.0,0.0));
PV1f.x = tempf.x;
PV1f.y = tempf.x;
PV1f.z = tempf.x;
PV1f.w = tempf.x;
PS1f = -(PV0f.w) + intBitsToFloat(0x3f800054);
// 2
PV0f.z = PV1f.x + -(intBitsToFloat(uf_remappedPS[0].x));
PS0f = 1.0 / PS1f;
// 3
PV1f.w = PV0f.z * PS0f;
PV1f.w = clamp(PV1f.w, 0.0, 1.0);
// 4
backupReg0f = R0f.x;
backupReg1f = R0f.y;
backupReg2f = R0f.z;
R0f.x = mul_nonIEEE(backupReg0f, PV1f.w);
R0f.y = mul_nonIEEE(backupReg1f, PV1f.w);
R0f.z = mul_nonIEEE(backupReg2f, PV1f.w);
// export
passPixelColor0 = vec4(R0f.x, R0f.y, R0f.z, R0f.w);
}

View File

@ -0,0 +1,325 @@
#version 420
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
// shader bfccd6ff47ca5ce8
//DOF base
const float dither = $dither ;
const float scaleShader = $scaleShader;
const float scaleBlur = $scaleBlur;
const int sampleScale = 2;
const float lightBloom = 0.95;
highp float lineRand(vec2 co)
{
highp float a = 12.9898;
highp float b = 78.233;
highp float c = 43758.5453;
highp float dt = dot(co.xy, vec2(a, b));
highp float sn = mod(dt, 3.14);
return fract(sin(sn) * c);
}
layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf4e13800 res 1280x720x1 dim 1 tm: 4 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 0
layout(binding = 1) uniform sampler2D textureUnitPS1;// Tex1 addr 0xf5198000 res 1024x2048x1 dim 1 tm: 4 format 0005 compSel: 0 0 0 0 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler1 ClampX/Y/Z: 2 2 2 border: 0
layout(binding = 2) uniform sampler2D textureUnitPS2;// Tex2 addr 0x10ea5000 res 1280x720x1 dim 1 tm: 4 format 0011 compSel: 0 0 0 0 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler2 ClampX/Y/Z: 2 2 2 border: 0
layout(location = 0) in vec4 passParameterSem128;
layout(location = 1) in vec4 passParameterSem129;
layout(location = 0) out vec4 passPixelColor0;
layout(location = 1) out vec4 passPixelColor1;
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);
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));
}
return O / O.a;
}
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()
{
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 R122i = ivec4(0);
ivec4 R123i = ivec4(0);
ivec4 R124i = ivec4(0);
ivec4 R125i = ivec4(0);
ivec4 R126i = ivec4(0);
ivec4 R127i = ivec4(0);
int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i;
ivec4 PV0i = ivec4(0), PV1i = ivec4(0);
int PS0i = 0, PS1i = 0;
ivec4 tempi = ivec4(0);
float tempResultf;
int tempResulti;
ivec4 ARi = ivec4(0);
bool predResult = true;
vec3 cubeMapSTM;
int cubeMapFaceId;
R0i = floatBitsToInt(passParameterSem128);
R1i = floatBitsToInt(passParameterSem129);
vec2 coord = passParameterSem128.xy*textureSize(textureUnitPS0, 0); //
vec2 ps = vec2(1.0) / textureSize(textureUnitPS0, 0);
vec2 uv = coord * ps;
R5i.xyz = floatBitsToInt(blur(textureUnitPS0, passParameterSem128.xy, ps*scaleBlur)).xyz; //1.0 4k //.66 2k //0.075 1k //.51 4kx2
//R5i.xyz = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R0i.xy)).xyz);
R2i.x = floatBitsToInt(texture(textureUnitPS2, intBitsToFloat(R0i.xy)).x);
R6i.xyz = R5i.xyz;
R0i.x = R2i.x;
R7i.xyz = R6i.xyz;
R3i.x = R0i.x;
R8i.xyz = R7i.xyz;
R1i.x = R3i.x;
/*
R6i.xyz = floatBitsToInt(blur(textureUnitPS0, passParameterSem128.zw, ps*scaleBlur)).xyz;
R6i.xyz = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R0i.zw)).xyz);
R0i.x = floatBitsToInt(texture(textureUnitPS2, intBitsToFloat(R0i.zw)).x);
R7i.xyz = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R1i.xy)).xyz);
R3i.x = floatBitsToInt(texture(textureUnitPS2, intBitsToFloat(R1i.xy)).x);
R8i.xyz = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R1i.zw)).xyz);
R1i.x = floatBitsToInt(texture(textureUnitPS2, intBitsToFloat(R1i.zw)).x);
*/
// 0
R4i.x = 0x3727c5ac;
R2i.y = 0x3f000000;
R0i.z = 0x3f000000;
R1i.w = 0x3727c5ac;
R3i.y = 0x3f000000;
PS0i = R3i.y;
// 1
R1i.y = 0x3f000000;
R2i.x = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R2i.xy)).w);
R0i.x = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R0i.xz)).w);
R3i.x = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R3i.xy)).w);
R1i.x = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R1i.xy)).w);
// 0
R127i.x = R0i.x;
PV0i.x = R127i.x;
PV0i.y = floatBitsToInt(intBitsToFloat(R2i.x) + -(0.5));
PV0i.z = floatBitsToInt(intBitsToFloat(R0i.x) + -(0.5));
R126i.w = R2i.x;
PV0i.w = R126i.w;
R124i.w = R3i.x;
PS0i = R124i.w;
// 1
PV1i.x = floatBitsToInt(max(intBitsToFloat(PV0i.z), -(intBitsToFloat(PV0i.z))));
PV1i.x = floatBitsToInt(intBitsToFloat(PV1i.x) * 2.0);
R126i.y = ((0.5 > intBitsToFloat(PV0i.w))?int(0xFFFFFFFF):int(0x0));
PV1i.z = floatBitsToInt(max(intBitsToFloat(PV0i.y), -(intBitsToFloat(PV0i.y))));
PV1i.z = floatBitsToInt(intBitsToFloat(PV1i.z) * 2.0);
R127i.w = ((0.5 > intBitsToFloat(PV0i.x))?int(0xFFFFFFFF):int(0x0));
R124i.x = R1i.x;
PS1i = R124i.x;
// 2
PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0);
PV0i.x = clampFI32(PV0i.x);
PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + 1.0);
PV0i.y = clampFI32(PV0i.y);
PV0i.z = floatBitsToInt(intBitsToFloat(R1i.x) + -(0.5));
PV0i.w = floatBitsToInt(intBitsToFloat(R3i.x) + -(0.5));
// 3
PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.y) + intBitsToFloat(0x3727c5ac));
R127i.y = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(0x3727c5ac));
PV1i.z = floatBitsToInt(max(intBitsToFloat(PV0i.w), -(intBitsToFloat(PV0i.w))));
PV1i.z = floatBitsToInt(intBitsToFloat(PV1i.z) * 2.0);
PV1i.w = floatBitsToInt(max(intBitsToFloat(PV0i.z), -(intBitsToFloat(PV0i.z))));
PV1i.w = floatBitsToInt(intBitsToFloat(PV1i.w) * 2.0);
// 4
PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + 1.0);
PV0i.x = clampFI32(PV0i.x);
PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + 1.0);
PV0i.y = clampFI32(PV0i.y);
PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.x));
// 5
backupReg0i = R127i.y;
PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.y) + intBitsToFloat(0x3727c5ac));
R127i.y = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(0x3727c5ac));
PV1i.z = floatBitsToInt(intBitsToFloat(PS0i) + -(1.0));
PS1i = floatBitsToInt(1.0 / intBitsToFloat(backupReg0i));
// 6
PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.z) + 1.0);
PV0i.z = floatBitsToInt(intBitsToFloat(PS1i) + -(1.0));
PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.x));
// 7
PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.y) + -(intBitsToFloat(0x3f7dff82)));
PV1i.x = clampFI32(PV1i.x);
PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + 1.0);
PV1i.z = floatBitsToInt(intBitsToFloat(PS0i) + -(1.0));
PS1i = floatBitsToInt(1.0 / intBitsToFloat(R127i.y));
// 8
backupReg0i = R126i.y;
backupReg0i = R126i.y;
PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.y) + -(intBitsToFloat(0x3f7dff82)));
PV0i.x = clampFI32(PV0i.x);
R126i.y = ((backupReg0i == 0)?(R1i.w):(PV1i.x));
PV0i.y = R126i.y;
R127i.z = floatBitsToInt(intBitsToFloat(PV1i.z) + 1.0);
R125i.w = ((backupReg0i == 0)?(PV1i.x):(R1i.w));
R126i.z = floatBitsToInt(intBitsToFloat(PS1i) + -(1.0));
PS0i = R126i.z;
// 9
R126i.x = ((R127i.w == 0)?(PV0i.x):(R4i.x));
R127i.y = ((R127i.w == 0)?(R4i.x):(PV0i.x));
PV1i.y = R127i.y;
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),intBitsToFloat(PV0i.y)) + 0.0));
PV1i.z = R123i.z;
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.x),intBitsToFloat(PV0i.y)) + 0.0));
PV1i.w = R123i.w;
R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.z),intBitsToFloat(PV0i.y)) + 0.0));
PS1i = R122i.x;
// 10
backupReg0i = R126i.y;
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.w),intBitsToFloat(R126i.y)) + 0.0));
PV0i.x = R123i.x;
R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.z),intBitsToFloat(PV1i.y)) + intBitsToFloat(PS1i)));
R125i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(PV1i.y)) + intBitsToFloat(PV1i.z)));
R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.x),intBitsToFloat(PV1i.y)) + intBitsToFloat(PV1i.w)));
PS0i = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(PV1i.y));
// 11
R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(R127i.y)) + intBitsToFloat(PV0i.x)));
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.x),intBitsToFloat(R125i.w)) + 0.0));
PV1i.y = R123i.y;
R124i.z = floatBitsToInt(intBitsToFloat(PS0i) + 0.0);
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),intBitsToFloat(R125i.w)) + 0.0));
PV1i.w = R123i.w;
R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.z),intBitsToFloat(R125i.w)) + 0.0));
PS1i = R122i.x;
// 12
backupReg0i = R6i.z;
backupReg1i = R125i.w;
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.w),intBitsToFloat(R125i.w)) + 0.0));
PV0i.x = R123i.x;
R125i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.x),intBitsToFloat(R126i.x)) + intBitsToFloat(PV1i.y)));
R6i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R126i.x)) + intBitsToFloat(PS1i)));
R125i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R126i.x)) + intBitsToFloat(PV1i.w)));
PS0i = floatBitsToInt(intBitsToFloat(backupReg1i) + intBitsToFloat(R126i.x));
// 13
backupReg0i = R127i.x;
backupReg1i = R126i.z;
R127i.x = floatBitsToInt(intBitsToFloat(R127i.z) + -(intBitsToFloat(0x3f7dff82)));
R127i.x = clampFI32(R127i.x);
R124i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R126i.x)) + intBitsToFloat(PV0i.x)));
R126i.z = floatBitsToInt(intBitsToFloat(PS0i) + 0.0);
PV1i.w = floatBitsToInt(intBitsToFloat(backupReg1i) + 1.0);
R126i.w = 0x3727c5ac;
PS1i = R126i.w;
// 14
PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.w) + -(intBitsToFloat(0x3f7dff82)));
PV0i.x = clampFI32(PV0i.x);
PV0i.y = ((0.5 > intBitsToFloat(R124i.w))?int(0xFFFFFFFF):int(0x0));
PV0i.z = 0x3727c5ac;
PV0i.w = ((0.5 > intBitsToFloat(R124i.x))?int(0xFFFFFFFF):int(0x0));
// 15
backupReg0i = R126i.w;
R123i.x = ((PV0i.y == 0)?(R126i.w):(R127i.x));
PV1i.x = R123i.x;
R127i.y = ((PV0i.w == 0)?(PV0i.z):(PV0i.x));
PV1i.y = R127i.y;
R127i.z = ((PV0i.w == 0)?(PV0i.x):(PV0i.z));
R126i.w = ((PV0i.y == 0)?(R127i.x):(backupReg0i));
// 16
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.w),intBitsToFloat(PV1i.x)) + intBitsToFloat(R125i.x)));
PV0i.x = R123i.x;
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.z),intBitsToFloat(PV1i.x)) + intBitsToFloat(R126i.y)));
PV0i.y = R123i.y;
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.y),intBitsToFloat(PV1i.x)) + intBitsToFloat(R125i.z)));
PV0i.z = R123i.z;
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.x),intBitsToFloat(PV1i.x)) + intBitsToFloat(R127i.w)));
PV0i.w = R123i.w;
PS0i = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(PV1i.y));
// 17
backupReg0i = R127i.y;
backupReg0i = R127i.y;
backupReg0i = R127i.y;
R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.z),intBitsToFloat(R127i.y)) + intBitsToFloat(PV0i.y)));
R127i.y = floatBitsToInt(intBitsToFloat(R124i.z) + intBitsToFloat(PS0i));
R124i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.y),intBitsToFloat(backupReg0i)) + intBitsToFloat(PV0i.z)));
R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.x),intBitsToFloat(backupReg0i)) + intBitsToFloat(PV0i.w)));
R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.x),intBitsToFloat(backupReg0i)) + intBitsToFloat(PV0i.x)));
PS1i = R127i.x;
// 18
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.z),intBitsToFloat(R126i.w)) + intBitsToFloat(R6i.z)));
PV0i.x = R123i.x;
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.y),intBitsToFloat(R126i.w)) + intBitsToFloat(R125i.w)));
PV0i.y = R123i.y;
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.x),intBitsToFloat(R126i.w)) + intBitsToFloat(R125i.y)));
PV0i.z = R123i.z;
R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.w),intBitsToFloat(R126i.w)) + intBitsToFloat(R124i.y)));
PS0i = R122i.x;
// 19
backupReg0i = R127i.z;
backupReg1i = R124i.x;
backupReg0i = R127i.z;
backupReg2i = R126i.w;
backupReg0i = R127i.z;
R124i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.z),intBitsToFloat(R127i.z)) + intBitsToFloat(PV0i.x)));
R125i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.y),intBitsToFloat(R127i.z)) + intBitsToFloat(PV0i.y)));
R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.x),intBitsToFloat(backupReg0i)) + intBitsToFloat(PV0i.z)));
R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg1i),intBitsToFloat(backupReg0i)) + intBitsToFloat(PS0i)));
PS1i = floatBitsToInt(intBitsToFloat(backupReg2i) + intBitsToFloat(backupReg0i));
// 20
PV0i.z = floatBitsToInt(intBitsToFloat(R126i.z) + intBitsToFloat(PS1i));
PS0i = floatBitsToInt(1.0 / intBitsToFloat(R127i.y));
// 21
R6i.x = floatBitsToInt(intBitsToFloat(R127i.w) * intBitsToFloat(PS0i));
R6i.y = floatBitsToInt(intBitsToFloat(R124i.z) * intBitsToFloat(PS0i));
R6i.z = floatBitsToInt(intBitsToFloat(R125i.x) * intBitsToFloat(PS0i));
PV1i.w = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(PS0i));
PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.z));
// 22
R8i.x = floatBitsToInt(intBitsToFloat(R127i.z) * intBitsToFloat(PS1i));
R8i.y = floatBitsToInt(intBitsToFloat(R125i.y) * intBitsToFloat(PS1i));
R8i.z = floatBitsToInt(intBitsToFloat(R124i.x) * intBitsToFloat(PS1i));
PV0i.w = floatBitsToInt(intBitsToFloat(R126i.w) * intBitsToFloat(PS1i));
R6i.w = floatBitsToInt(min(intBitsToFloat(PV1i.w), 0.5));
PS0i = R6i.w;
// 23
R8i.w = floatBitsToInt(max(intBitsToFloat(PV0i.w), 0.5));
PV1i.w = R8i.w;
// 24
R1i.xyz = ivec3(R8i.x,R8i.y,R8i.z);
R1i.w = PV1i.w;
// 25
R0i.xyz = ivec3(R6i.x,R6i.y,R6i.z);
R0i.w = R6i.w;
// export
passPixelColor0 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), intBitsToFloat(R0i.w));
passPixelColor1 = vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.w));
}

View File

@ -0,0 +1,320 @@
#version 420
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#extension GL_ARB_shading_language_packing : enable
// shader f9feadb214b483b7
const float resScale = ($height/$gameHeight)*$internalRes;
uniform ivec4 uf_uniformRegisterVS[256];
uniform vec2 uf_windowSpaceToClipSpaceTransform;
layout(location = 0) in uvec4 attrDataSem0;
layout(location = 1) in uvec4 attrDataSem1;
out gl_PerVertex
{
vec4 gl_Position;
float gl_PointSize;
};
layout(location = 1) out vec4 passParameterSem129;
layout(location = 2) out vec4 passParameterSem130;
layout(location = 3) out vec4 passParameterSem131;
layout(location = 4) out vec4 passParameterSem132;
layout(location = 5) out vec4 passParameterSem133;
layout(location = 6) out vec4 passParameterSem134;
layout(location = 0) out vec4 passParameterSem128;
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 Ri[128];
Ri[0] = ivec4(0);
Ri[1] = ivec4(0);
Ri[2] = ivec4(0);
Ri[3] = ivec4(0);
Ri[4] = ivec4(0);
Ri[5] = ivec4(0);
Ri[6] = ivec4(0);
Ri[7] = ivec4(0);
Ri[8] = ivec4(0);
Ri[9] = ivec4(0);
Ri[10] = ivec4(0);
Ri[11] = ivec4(0);
Ri[12] = ivec4(0);
Ri[13] = ivec4(0);
Ri[14] = ivec4(0);
Ri[15] = ivec4(0);
Ri[16] = ivec4(0);
Ri[17] = ivec4(0);
Ri[18] = ivec4(0);
Ri[19] = ivec4(0);
Ri[20] = ivec4(0);
Ri[21] = ivec4(0);
Ri[22] = ivec4(0);
Ri[23] = ivec4(0);
Ri[24] = ivec4(0);
Ri[25] = ivec4(0);
Ri[26] = ivec4(0);
Ri[27] = ivec4(0);
Ri[28] = ivec4(0);
Ri[29] = ivec4(0);
Ri[30] = ivec4(0);
Ri[31] = ivec4(0);
Ri[32] = ivec4(0);
Ri[33] = ivec4(0);
Ri[34] = ivec4(0);
Ri[35] = ivec4(0);
Ri[36] = ivec4(0);
Ri[37] = ivec4(0);
Ri[38] = ivec4(0);
Ri[39] = ivec4(0);
Ri[40] = ivec4(0);
Ri[41] = ivec4(0);
Ri[42] = ivec4(0);
Ri[43] = ivec4(0);
Ri[44] = ivec4(0);
Ri[45] = ivec4(0);
Ri[46] = ivec4(0);
Ri[47] = ivec4(0);
Ri[48] = ivec4(0);
Ri[49] = ivec4(0);
Ri[50] = ivec4(0);
Ri[51] = ivec4(0);
Ri[52] = ivec4(0);
Ri[53] = ivec4(0);
Ri[54] = ivec4(0);
Ri[55] = ivec4(0);
Ri[56] = ivec4(0);
Ri[57] = ivec4(0);
Ri[58] = ivec4(0);
Ri[59] = ivec4(0);
Ri[60] = ivec4(0);
Ri[61] = ivec4(0);
Ri[62] = ivec4(0);
Ri[63] = ivec4(0);
Ri[64] = ivec4(0);
Ri[65] = ivec4(0);
Ri[66] = ivec4(0);
Ri[67] = ivec4(0);
Ri[68] = ivec4(0);
Ri[69] = ivec4(0);
Ri[70] = ivec4(0);
Ri[71] = ivec4(0);
Ri[72] = ivec4(0);
Ri[73] = ivec4(0);
Ri[74] = ivec4(0);
Ri[75] = ivec4(0);
Ri[76] = ivec4(0);
Ri[77] = ivec4(0);
Ri[78] = ivec4(0);
Ri[79] = ivec4(0);
Ri[80] = ivec4(0);
Ri[81] = ivec4(0);
Ri[82] = ivec4(0);
Ri[83] = ivec4(0);
Ri[84] = ivec4(0);
Ri[85] = ivec4(0);
Ri[86] = ivec4(0);
Ri[87] = ivec4(0);
Ri[88] = ivec4(0);
Ri[89] = ivec4(0);
Ri[90] = ivec4(0);
Ri[91] = ivec4(0);
Ri[92] = ivec4(0);
Ri[93] = ivec4(0);
Ri[94] = ivec4(0);
Ri[95] = ivec4(0);
Ri[96] = ivec4(0);
Ri[97] = ivec4(0);
Ri[98] = ivec4(0);
Ri[99] = ivec4(0);
Ri[100] = ivec4(0);
Ri[101] = ivec4(0);
Ri[102] = ivec4(0);
Ri[103] = ivec4(0);
Ri[104] = ivec4(0);
Ri[105] = ivec4(0);
Ri[106] = ivec4(0);
Ri[107] = ivec4(0);
Ri[108] = ivec4(0);
Ri[109] = ivec4(0);
Ri[110] = ivec4(0);
Ri[111] = ivec4(0);
Ri[112] = ivec4(0);
Ri[113] = ivec4(0);
Ri[114] = ivec4(0);
Ri[115] = ivec4(0);
Ri[116] = ivec4(0);
Ri[117] = ivec4(0);
Ri[118] = ivec4(0);
Ri[119] = ivec4(0);
Ri[120] = ivec4(0);
Ri[121] = ivec4(0);
Ri[122] = ivec4(0);
Ri[123] = ivec4(0);
Ri[124] = ivec4(0);
Ri[125] = ivec4(0);
Ri[126] = ivec4(0);
Ri[127] = ivec4(0);
uvec4 attrDecoder;
int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i;
ivec4 PV0i = ivec4(0), PV1i = ivec4(0);
int PS0i = 0, PS1i = 0;
ivec4 tempi = ivec4(0);
float tempResultf;
int tempResulti;
ivec4 ARi = ivec4(0);
bool predResult = true;
bool activeMaskStack[1];
bool activeMaskStackC[2];
activeMaskStackC[0] = false;
activeMaskStack[0] = true;
activeMaskStackC[0] = true;
activeMaskStackC[1] = true;
vec3 cubeMapSTM;
int cubeMapFaceId;
Ri[0] = ivec4(gl_VertexID, 0, 0, gl_InstanceID);
attrDecoder = attrDataSem0;
attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24));
Ri[1] = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w));
attrDecoder.xy = attrDataSem1.xy;
attrDecoder.xy = (attrDecoder.xy>>24)|((attrDecoder.xy>>8)&0xFF00)|((attrDecoder.xy<<8)&0xFF0000)|((attrDecoder.xy<<24));
attrDecoder.z = 0;
attrDecoder.w = 0;
Ri[2] = ivec4(int(attrDecoder.x), int(attrDecoder.y), floatBitsToInt(0.0), floatBitsToInt(1.0));
if( activeMaskStackC[1] == true ) {
// 0
Ri[3].y = 0;
PV0i.z = floatBitsToInt(intBitsToFloat(Ri[1].y) + intBitsToFloat(uf_uniformRegisterVS[0].y)/resScale);
PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) * 2.0);
PV0i.w = floatBitsToInt(intBitsToFloat(Ri[1].x) + intBitsToFloat(uf_uniformRegisterVS[0].x)/resScale);
PV0i.w = floatBitsToInt(intBitsToFloat(PV0i.w) * 2.0);
// 1
PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.z) + -(1.0));
Ri[1].x = floatBitsToInt(intBitsToFloat(PV0i.w) + -(1.0));
PS1i = Ri[1].x;
// 2
Ri[1].y = floatBitsToInt(intBitsToFloat(PV1i.x) * -(1.0));
// 3
Ri[16].xyz = ivec3(Ri[1].x,Ri[1].y,Ri[1].z);
Ri[16].w = Ri[1].w;
}
while( activeMaskStackC[1] == true )
{
if( activeMaskStackC[1] == true ) {
// 0
Ri[0].z = (0x00000006 > Ri[3].y)?int(0xFFFFFFFF):int(0x0);
// 1
predResult = (Ri[0].z != 0);
if( predResult == false ) break;
}
if( activeMaskStackC[1] == true ) {
// 0
backupReg0i = Ri[3].y;
backupReg0i = Ri[3].y;
Ri[1].x = Ri[3].y + 0x00000008;
Ri[3].y = backupReg0i + int(1);
Ri[127].z = floatBitsToInt(float(backupReg0i));
PS0i = Ri[127].z;
// 1
tempResultf = intBitsToFloat(PS0i);
tempResultf = floor(tempResultf);
tempResultf = clamp(tempResultf, -256.0, 255.0);
ARi.x = int(tempResultf);
PV1i.x = floatBitsToInt(tempResultf);
// 2
PV0i.x = floatBitsToInt(intBitsToFloat(Ri[2].y) + intBitsToFloat(uf_uniformRegisterVS[ARi.x+2].y)/resScale);
PV0i.y = floatBitsToInt(intBitsToFloat(Ri[2].x) + intBitsToFloat(uf_uniformRegisterVS[ARi.x+2].x)/resScale);
PV0i.z = floatBitsToInt(intBitsToFloat(Ri[2].y) + intBitsToFloat(uf_uniformRegisterVS[ARi.x+2].w)/resScale);
PV0i.w = floatBitsToInt(intBitsToFloat(Ri[2].x) + intBitsToFloat(uf_uniformRegisterVS[ARi.x+2].z)/resScale);
// 3
PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(uf_uniformRegisterVS[1].y)));
PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(uf_uniformRegisterVS[1].x)));
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(uf_uniformRegisterVS[1].x)));
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(uf_uniformRegisterVS[1].y)));
// 4
Ri[0].xyz = floatBitsToInt(vec3(intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.w),intBitsToFloat(PV1i.z)) + vec3(intBitsToFloat(uf_uniformRegisterVS[1].z)/resScale,intBitsToFloat(uf_uniformRegisterVS[1].w)/resScale,intBitsToFloat(uf_uniformRegisterVS[1].z)/resScale));
Ri[0].w = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(uf_uniformRegisterVS[1].w)/resScale);
// 5
tempResulti = Ri[1].x;
tempResulti = clamp(tempResulti, -256, 255);
ARi.x = tempResulti;
PV1i.x = tempResulti;
// 6
Ri[10+ARi.x].x = Ri[0].x;
Ri[10+ARi.x].y = Ri[0].y;
Ri[10+ARi.x].z = Ri[0].z;
Ri[10+ARi.x].w = Ri[0].w;
}
}
if( activeMaskStackC[1] == true ) {
// 0
PV0i.x = floatBitsToInt(intBitsToFloat(Ri[2].y) + intBitsToFloat(uf_uniformRegisterVS[8].y));
PV0i.y = floatBitsToInt(intBitsToFloat(Ri[2].x) + intBitsToFloat(uf_uniformRegisterVS[8].x));
// 1
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(uf_uniformRegisterVS[1].y)));
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(uf_uniformRegisterVS[1].x)));
// 2
Ri[7].x = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(uf_uniformRegisterVS[1].z));
Ri[7].y = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(uf_uniformRegisterVS[1].w));
// 3
Ri[17].x = Ri[7].x;
Ri[17].y = Ri[7].y;
// 4
Ri[2].xyz = ivec3(Ri[16].x,Ri[16].y,Ri[16].z);
Ri[2].w = Ri[16].w;
// 5
Ri[0].xyz = ivec3(Ri[18].x,Ri[18].y,Ri[18].z);
Ri[0].w = Ri[18].w;
// 6
Ri[10].xyz = ivec3(Ri[0].x,Ri[0].y,Ri[0].z);
Ri[10].w = Ri[0].w;
// 7
Ri[1].xyz = ivec3(Ri[19].x,Ri[19].y,Ri[19].z);
Ri[1].w = Ri[19].w;
// 8
Ri[11].xyz = ivec3(Ri[1].x,Ri[1].y,Ri[1].z);
Ri[11].w = Ri[1].w;
// 9
Ri[3].xyz = ivec3(Ri[20].x,Ri[20].y,Ri[20].z);
Ri[3].w = Ri[20].w;
// 10
Ri[12].xyz = ivec3(Ri[3].x,Ri[3].y,Ri[3].z);
Ri[12].w = Ri[3].w;
// 11
Ri[4].xyz = ivec3(Ri[21].x,Ri[21].y,Ri[21].z);
Ri[4].w = Ri[21].w;
// 12
Ri[13].xyz = ivec3(Ri[4].x,Ri[4].y,Ri[4].z);
Ri[13].w = Ri[4].w;
// 13
Ri[5].xyz = ivec3(Ri[22].x,Ri[22].y,Ri[22].z);
Ri[5].w = Ri[22].w;
// 14
Ri[6].xyz = ivec3(Ri[23].x,Ri[23].y,Ri[23].z);
Ri[6].w = Ri[23].w;
}
// export
gl_Position = vec4(intBitsToFloat(Ri[2].x), intBitsToFloat(Ri[2].y), intBitsToFloat(Ri[2].z), intBitsToFloat(Ri[2].w));
// export
passParameterSem129 = vec4(intBitsToFloat(Ri[0].x), intBitsToFloat(Ri[0].y), intBitsToFloat(Ri[0].z), intBitsToFloat(Ri[0].w));
// export
passParameterSem130 = vec4(intBitsToFloat(Ri[1].x), intBitsToFloat(Ri[1].y), intBitsToFloat(Ri[1].z), intBitsToFloat(Ri[1].w));
// export
passParameterSem131 = vec4(intBitsToFloat(Ri[3].x), intBitsToFloat(Ri[3].y), intBitsToFloat(Ri[3].z), intBitsToFloat(Ri[3].w));
// export
passParameterSem132 = vec4(intBitsToFloat(Ri[4].x), intBitsToFloat(Ri[4].y), intBitsToFloat(Ri[4].z), intBitsToFloat(Ri[4].w));
// export
passParameterSem133 = vec4(intBitsToFloat(Ri[5].x), intBitsToFloat(Ri[5].y), intBitsToFloat(Ri[5].z), intBitsToFloat(Ri[5].w));
// export
passParameterSem134 = vec4(intBitsToFloat(Ri[6].x), intBitsToFloat(Ri[6].y), intBitsToFloat(Ri[6].z), intBitsToFloat(Ri[6].w));
// export
passParameterSem128 = vec4(intBitsToFloat(Ri[7].x), intBitsToFloat(Ri[7].y), intBitsToFloat(Ri[7].z), intBitsToFloat(Ri[7].z));
if( activeMaskStackC[1] == true ) {
// 0
}
}

View File

@ -0,0 +1,272 @@
[Definition]
titleIds = 000500001017D800,000500001017D900,000500001017CD00
name = Resolution
path = "Hyrule warriors/Graphics/Resolution"
description = Changes the resolution of the game.
version = 3
vsyncFrequency = 30
[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 = 1.0
$scaleBlur = 0.05
// Quality
[Preset]
name = 1920x1080 (HD)
$width = 1920
$height = 1080
$gameWidth = 1280
$gameHeight = 720
$internalRes = 1
$dither = 0.15
$scaleShader = 1.0
$scaleBlur = 0.5
[Preset]
name = 1600x900
$width = 1600
$height = 900
$gameWidth = 1280
$gameHeight = 720
$internalRes = 1
$dither = 0.1
$scaleShader = 1.0
$scaleBlur = 0.5
[Preset]
name = 2560x1440 (Native x2)
$width = 2560
$height = 1440
$gameWidth = 1280
$gameHeight = 720
$internalRes = 1.5
$dither = 0.1
$scaleShader = 1.0
$scaleBlur = 0.75
[Preset]
name = 3200x1800
$width = 3200
$height = 1800
$gameWidth = 1280
$gameHeight = 720
$internalRes = 1
$dither = 0.2
$scaleShader = 1.0
$scaleBlur = 1.0
[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]
width = 1280
height = 720
#formats = 0x816,0x810,0x433,0x431,0x41a,0x011,0x008,0x001,0x01a
formatsExcluded = 0x431,0x433
tileModesExcluded = 0x001
overwriteWidth = ($width/$gameWidth) * 1280
overwriteHeight = ($height/$gameHeight) * 720
[TextureRedefine]
width = 1024
height = 2048
#formats = 0x005
overwriteWidth = ($width/$gameWidth) * 1024
overwriteHeight = ($height/$gameHeight) * 2048
[TextureRedefine]
width = 1024
height = 1023
#formats =
overwriteWidth = ($width/$gameWidth) * 1024
overwriteHeight = ($height/$gameHeight) * 1023
[TextureRedefine]
width = 1022
height = 2046
#formats =
overwriteWidth = ($width/$gameWidth) * 1022
overwriteHeight = ($height/$gameHeight) * 2046
#[TextureRedefine]
#width = 1022
#height = 1022
#formatsExcluded =
#overwriteWidth = ($width/$gameWidth) * 1022
#overwriteHeight = ($height/$gameHeight) * 1022
[TextureRedefine]
width = 864
height = 480
#formats =
overwriteWidth = ($width/$gameWidth) * 864
overwriteHeight = ($height/$gameHeight) * 480
[TextureRedefine]
width = 640
height = 360
#formats = 0x816,0x80e,0x035,0x033,0x007
tileModesExcluded = 0x001
overwriteWidth = ($width/$gameWidth) * (640*$internalRes)
overwriteHeight = ($height/$gameHeight) * (360*$internalRes)
[TextureRedefine]
width = 512
height = 512
formats = 0x005
#formatsExcluded = 0x433,0x431,0x035,0x033,0x031,0x005
overwriteWidth = ($width/$gameWidth) * 512
overwriteHeight = ($height/$gameHeight) * 512
[TextureRedefine]
width = 352
height = 192
#formats = 0x820
overwriteWidth = ($width/$gameWidth) * (352*$internalRes)
overwriteHeight = ($height/$gameHeight) * (192*$internalRes)
[TextureRedefine]
width = 322
height = 182
#formats = 0x820
overwriteWidth = ($width/$gameWidth) * (322*$internalRes)
overwriteHeight = ($height/$gameHeight) * (182*$internalRes)
[TextureRedefine]
width = 320
height = 192
#formats = 0x820,0x816,0x035,0x01a
overwriteWidth = ($width/$gameWidth) * (320*$internalRes)
overwriteHeight = ($height/$gameHeight) * (192*$internalRes)
[TextureRedefine]
width = 320
height = 180
#formats = 0x820,0x816,0x035,0x01a
overwriteWidth = ($width/$gameWidth) * (320*$internalRes)
overwriteHeight = ($height/$gameHeight) * (180*$internalRes)
#[TextureRedefine]
#width = 224
#height = 224
#formatsExcluded =
#overwriteWidth = ($width/$gameWidth) * (224*$internalRes)
#overwriteHeight = ($height/$gameHeight) * (224*$internalRes)
[TextureRedefine]
width = 192
height = 96
#formats = 0x820
overwriteWidth = ($width/$gameWidth) * (192*$internalRes)
overwriteHeight = ($height/$gameHeight) * (96*$internalRes)
[TextureRedefine]
width = 162
height = 92
#formats = 0x820
overwriteWidth = ($width/$gameWidth) * (162*$internalRes)
overwriteHeight = ($height/$gameHeight) * (92*$internalRes)
[TextureRedefine]
width = 160
height = 180
#formats =
overwriteWidth = ($width/$gameWidth) * (160*$internalRes)
overwriteHeight = ($height/$gameHeight) * (180*$internalRes)
[TextureRedefine]
width = 160
height = 90
#formats = 0x816,0x41a
overwriteWidth = ($width/$gameWidth) * (160*$internalRes)
overwriteHeight = ($height/$gameHeight) * (90*$internalRes)
#[TextureRedefine]
#width = 64
#height = 64
#formatsExcluded = 0x01a,0x820,0x816,0x433,0x035,0x034,0x033,0x032,0x031
#overwriteWidth = ($width/$gameWidth) * (64*$internalRes)
#overwriteHeight = ($height/$gameHeight) * (64*$internalRes)
#[TextureRedefine]
#width = 16
#height = 16
#formatsExcluded = 0x01a,0x034,0x41a,0x033,0x031,0x01a
#overwriteWidth = ($width/$gameWidth) * (16*$internalRes)
#overwriteHeight = ($height/$gameHeight) * (16*$internalRes)
#[TextureRedefine]
#width = 4
#height = 4
#formatsExcluded = 0x81e,0x80e
#overwriteWidth = ($width/$gameWidth) * (4*$internalRes)
#overwriteHeight = ($height/$gameHeight) * (4*$internalRes)
#[TextureRedefine]
#width = 1
#height = 1
#formatsExcluded = 0x81e,0x80e,0x008,0x01a
#overwriteWidth = ($width/$gameWidth) * 1
#overwriteHeight = ($height/$gameHeight) * 1