mirror of
https://github.com/cemu-project/cemu_graphic_packs.git
synced 2024-11-22 09:39:17 +01:00
Hyrule warriors 1.4.x Soruce + Contrasty
This commit is contained in:
parent
8957a6387a
commit
ccadb951b8
@ -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);
|
||||||
|
}
|
@ -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);
|
||||||
|
|
||||||
|
}
|
94
Enhancements/HyruleWarriors_Contrasty/rules.txt
Normal file
94
Enhancements/HyruleWarriors_Contrasty/rules.txt
Normal 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
|
269
Source/HyruleWarriors/492839ddc5f8f43e_0000000000000000_vs.txt
Normal file
269
Source/HyruleWarriors/492839ddc5f8f43e_0000000000000000_vs.txt
Normal 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
|
||||||
|
}
|
||||||
|
}
|
293
Source/HyruleWarriors/945d9672d0114248_0000000000000000_vs.txt
Normal file
293
Source/HyruleWarriors/945d9672d0114248_0000000000000000_vs.txt
Normal 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
|
||||||
|
}
|
||||||
|
}
|
324
Source/HyruleWarriors/b3609db7d1363f6a_0000000000000000_vs.txt
Normal file
324
Source/HyruleWarriors/b3609db7d1363f6a_0000000000000000_vs.txt
Normal 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
|
||||||
|
}
|
||||||
|
}
|
101
Source/HyruleWarriors/bbf87e1769bdcea3_0000000000000079_ps.txt
Normal file
101
Source/HyruleWarriors/bbf87e1769bdcea3_0000000000000079_ps.txt
Normal 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);
|
||||||
|
}
|
325
Source/HyruleWarriors/bfccd6ff47ca5ce8_000000000001fe49_ps.txt
Normal file
325
Source/HyruleWarriors/bfccd6ff47ca5ce8_000000000001fe49_ps.txt
Normal 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));
|
||||||
|
}
|
320
Source/HyruleWarriors/f9feadb214b483b7_0000000000000000_vs.txt
Normal file
320
Source/HyruleWarriors/f9feadb214b483b7_0000000000000000_vs.txt
Normal 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
|
||||||
|
}
|
||||||
|
}
|
272
Source/HyruleWarriors/rules.txt
Normal file
272
Source/HyruleWarriors/rules.txt
Normal 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
|
Loading…
Reference in New Issue
Block a user