This commit is contained in:
Intra 2025-04-23 19:22:08 +02:00 committed by GitHub
commit bda1ffe708
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
59 changed files with 562 additions and 305 deletions

View file

@ -1,36 +0,0 @@
[Definition]
titleIds = 000500001019C800,000500001019E600,000500001019E500
name = Anisotropic Filtering
path = "The Legend of Zelda: Twilight Princess HD/Enhancements/Anisotropic Filtering"
description = Allows you to set the anisotropic filtering level to improve clarity for surfaces that are looked at an angle.
version = 7
[Default]
$anisoLevel = 1
[Preset]
name = x1 (Default)
[Preset]
name = x2
$anisoLevel = 2
[Preset]
name = x4
$anisoLevel = 4
[Preset]
name = x8
$anisoLevel = 8
[Preset]
name = x16 (Recommended)
$anisoLevel = 16
[Preset]
name = x32 (Overkill)
$anisoLevel = 32
[TextureRedefine]
formats = 0x31,0x32,0x33,0x34,0x35,0x431,0x432,0x433,0x434,0x435
overwriteAnisotropy = $anisoLevel

View file

@ -1,12 +0,0 @@
[TPHDv81]
moduleMatches = 0x1A03E108
#Move some look tweaks to patches instead of shaders
#rodata constants
###exp and haze settings
0x100C3EB8 = .float $nearExp ## Near world (over)exposure
0x100C36C4 = .float $bloomExp ## Bloom npc/object (over) "
0x100C3780 = .float $distExp ## Distant world (over)exposure
#0x100C3774 = .float $distanceFog
0x1012C898 = .float $distanceFog
#0x100871C8 = .float 0.01 #100871C8:.float 0.00050000002 ###cloud float

View file

@ -1,48 +0,0 @@
[Definition]
titleIds = 000500001019C800,000500001019E600,000500001019E500
name = Resolution
path = "The Legend of Zelda: Twilight Princess HD/Graphics/Performance Resolution"
description = Changes the resolution of certain effects in the game to increase performance. Made by getdls.
version = 4
[Preset]
name = 1280x720
$width = 1280
$height = 720
$gameWidth = 1920
$gameHeight = 1080
[Preset]
name = 640x360
$width = 640
$height = 360
$gameWidth = 1920
$gameHeight = 1080
[Preset]
name = 960x540
$width = 960
$height = 540
$gameWidth = 1920
$gameHeight = 1080
[Preset]
name = 1600x900
$width = 1600
$height = 900
$gameWidth = 1920
$gameHeight = 1080
[TextureRedefine]
width = 1920
height = 1088
#formats = 0x011,0x01a
overwriteWidth = ($width/$gameWidth) * 1920
overwriteHeight = ($height/$gameHeight) * 1088
[TextureRedefine]
width = 1920
height = 1080
#formats =
overwriteWidth = ($width/$gameWidth) * 1920
overwriteHeight = ($height/$gameHeight) * 1080

View file

@ -11,13 +11,13 @@
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.z, 1.0/gl_FragCoord.w)
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
#endif
#ifdef VULKAN
@ -26,11 +26,11 @@
uniform ivec4 uf_remappedPS[1]; // holds area specific bloom tint color
uniform vec4 uf_fragCoordScale;
};
#else
uniform ivec4 uf_remappedPS[1]; // holds area specific bloom tint color
uniform vec2 uf_fragCoordScale;
#endif
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; // bloom mask created in 6e2f31b2b2fcab1f
@ -49,34 +49,34 @@ void main()
{
// get pixel coord
vec2 coord = passParameterSem0.xy;
// get bloom mask
vec3 mask = texture(textureUnitPS0, coord).xyz;
// get area specific color tint
vec4 tint = vec4(0.0);
tint.x = intBitsToFloat(uf_remappedPS[0].x);
tint.y = intBitsToFloat(uf_remappedPS[0].y);
tint.z = intBitsToFloat(uf_remappedPS[0].z);
tint.w = intBitsToFloat(uf_remappedPS[0].w);
// get luminance of tint: removes color, keeps intended brightness
float tintLuminance = dot(tint.xyz, vec3(0.299, 0.587, 0.114)); // percieved approximation
// apply custom tint color
tint.x = mixf(tintLuminance, tint.x, $bloom_tint_strength);
tint.y = mixf(tintLuminance, tint.y, $bloom_tint_strength);
tint.z = mixf(tintLuminance, tint.z, $bloom_tint_strength);
// apply tint on mask
vec4 outColor = vec4(0.0);
outColor.x = mask.x * tint.x;
outColor.y = mask.y * tint.y;
outColor.z = mask.z * tint.z;
// custom brightness reduction, only in shadow world below 1.0
outColor.w = mixf(1.0, tint.w, $shadow_world_darkening);
// export
passPixelColor0 = vec4(outColor.x, outColor.y, outColor.z, outColor.w);
}
}

View file

@ -14,20 +14,20 @@
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.z, 1.0/gl_FragCoord.w)
layout(set = 1, binding = 1) uniform ufBlock
{
uniform ivec4 uf_remappedPS[1]; // grading
};
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
uniform ivec4 uf_remappedPS[1]; // grading
#endif

View file

@ -11,13 +11,13 @@
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.z, 1.0/gl_FragCoord.w)
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
#endif
#ifdef VULKAN
@ -26,11 +26,11 @@
uniform ivec4 uf_remappedPS[1]; // mask threshold
uniform vec4 uf_fragCoordScale;
};
#else
uniform ivec4 uf_remappedPS[1]; // mask threshold
uniform vec2 uf_fragCoordScale;
#endif
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; // frame
@ -42,26 +42,26 @@ void main()
// get mask threshold data
float cutoff = intBitsToFloat(uf_remappedPS[0].x); // ~0.39: 0-1, higher = less glowing pixels
float contrast = intBitsToFloat(uf_remappedPS[0].y); // 4.5: higher = sharper edges
// get texture coordinate of this pixel
vec4 coord = GET_FRAGCOORD();
coord.x = coord.x * intBitsToFloat(0x3b088889); // align to scale/grid?
coord.y = coord.y * intBitsToFloat(0x3b72b9d6);
// get color of this pixel
vec3 color = texture(textureUnitPS0, vec2(coord.x, coord.y)).xyz;
// calculate luminance = percieved brightness
float luminance = dot(color, vec3(0.299, 0.587, 0.114)); // percieved approximation
// apply threshold, removes dark areas from the mask
luminance = contrast * (luminance - cutoff) * $bloom_strength; // apply custom strength
// apply to color and clamp
color.x = clamp(luminance * color.x, 0.0, 1.0);
color.y = clamp(luminance * color.y, 0.0, 1.0);
color.z = clamp(luminance * color.z, 0.0, 1.0);
// export
passPixelColor0 = vec4(color.x, color.y, color.z, 0.0);
}

View file

@ -11,13 +11,13 @@
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.z, 1.0/gl_FragCoord.w)
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
#endif
#ifdef VULKAN
@ -26,11 +26,11 @@
uniform ivec4 uf_remappedPS[3];
uniform vec4 uf_fragCoordScale;
};
#else
uniform ivec4 uf_remappedPS[3];
uniform vec2 uf_fragCoordScale;
#endif
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0;
@ -60,18 +60,18 @@ void main()
ivec4 ARi = ivec4(0);
bool predResult = true;
R0f = GET_FRAGCOORD();
// 0
R7f.x = R0f.x * intBitsToFloat(0x3b088889);
R7f.y = R0f.y * intBitsToFloat(0x3b72b9d6);
// 1
R0f.x = R7f.x;
R0f.y = R7f.y + intBitsToFloat(0x3b72b9d6);
R1f.z = R7f.x;
R1f.y = R7f.y + intBitsToFloat(0xbb72b9d6);
// 2
R2f.x = R7f.x;
R2f.y = R7f.y + intBitsToFloat(0x3bf2b9d6);
@ -81,21 +81,21 @@ void main()
R0f.xyzw = (textureLod(textureUnitPS0, vec2(R0f.x,R0f.y),0.0).xyzw);
R1f.xyzw = (textureLod(textureUnitPS0, vec2(R1f.z,R1f.y),0.0).xyzw);
R2f.xyzw = (textureLod(textureUnitPS0, vec2(R2f.x,R2f.y),0.0).xyzw);
// 0
PV0fx = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].y), R0f.y);
PV0fy = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].y), R0f.z);
PV0fz = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].y), R0f.x);
PV0fw = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].y), R0f.w);
R0f.y = R7f.y + intBitsToFloat(0x3c360b60);
// 1
R123f.x = mul_nonIEEE(R3f.y,intBitsToFloat(uf_remappedPS[0].x)) + PV0fx;
R123f.y = mul_nonIEEE(R3f.w,intBitsToFloat(uf_remappedPS[0].x)) + PV0fw;
R123f.z = mul_nonIEEE(R3f.x,intBitsToFloat(uf_remappedPS[0].x)) + PV0fz;
R123f.w = mul_nonIEEE(R3f.z,intBitsToFloat(uf_remappedPS[0].x)) + PV0fy;
R0f.x = R7f.x;
// 2
backupReg0f = R123f.y;
R123f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].y),R1f.y) + R123f.x;
@ -103,7 +103,7 @@ void main()
R123f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].y),R1f.w) + backupReg0f;
R123f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].y),R1f.z) + R123f.w;
R1f.y = R7f.y + intBitsToFloat(0xbc360b60);
// 3
backupReg0f = R2f.z;
R3f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].z),R2f.x) + R123f.y;
@ -111,7 +111,7 @@ void main()
R2f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].z),R2f.w) + R123f.z;
R2f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].z),backupReg0f) + R123f.w;
R1f.x = R7f.x;
// 4
R2f.x = R7f.x;
R2f.y = R7f.y + intBitsToFloat(0x3c72b9d6);
@ -121,14 +121,14 @@ void main()
R0f.xyzw = (textureLod(textureUnitPS0, vec2(R0f.x,R0f.y),0.0).xyzw);
R1f.xyzw = (textureLod(textureUnitPS0, vec2(R1f.x,R1f.y),0.0).xyzw);
R5f.xyzw = (textureLod(textureUnitPS0, vec2(R2f.x,R2f.y),0.0).xyzw);
// 0
R123f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].z),R4f.x) + R3f.x;
R123f.y = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].z),R4f.w) + R2f.z;
R123f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].z),R4f.z) + R2f.w;
R123f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].z),R4f.y) + R3f.y;
R3f.y = R7f.y + intBitsToFloat(0x3c97b426);
// 1
backupReg0f = R123f.x;
R123f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].w),R0f.w) + R123f.y;
@ -136,7 +136,7 @@ void main()
R123f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].w),R0f.z) + R123f.z;
R123f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].w),R0f.y) + R123f.w;
R3f.x = R7f.x;
// 2
backupReg0f = R123f.y;
R123f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].w),R1f.w) + R123f.x;
@ -144,14 +144,14 @@ void main()
R123f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].w),R1f.y) + R123f.w;
R123f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].w),R1f.x) + backupReg0f;
R1f.y = R7f.y + intBitsToFloat(0xbc97b426);
// 3
R0f.x = mul_nonIEEE(R5f.z,intBitsToFloat(uf_remappedPS[1].x)) + R123f.y;
R0f.y = mul_nonIEEE(R5f.w,intBitsToFloat(uf_remappedPS[1].x)) + R123f.x;
R5f.z = mul_nonIEEE(R5f.y,intBitsToFloat(uf_remappedPS[1].x)) + R123f.z;
R5f.w = mul_nonIEEE(R5f.x,intBitsToFloat(uf_remappedPS[1].x)) + R123f.w;
R1f.x = R7f.x;
// 4
R5f.x = R7f.x;
R5f.y = R7f.y + intBitsToFloat(0x3cb60b60);
@ -161,14 +161,14 @@ void main()
R3f.xyzw = (textureLod(textureUnitPS0, vec2(R3f.x,R3f.y),0.0).xyzw);
R1f.xyzw = (textureLod(textureUnitPS0, vec2(R1f.x,R1f.y),0.0).xyzw);
R2f.xyzw = (textureLod(textureUnitPS0, vec2(R5f.x,R5f.y),0.0).xyzw);
// 0
R123f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].x),R6f.z) + R0f.x;
R123f.y = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].x),R6f.y) + R5f.z;
R123f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].x),R6f.x) + R5f.w;
R123f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].x),R6f.w) + R0f.y;
R0f.y = R7f.y + intBitsToFloat(0x3cd4629b);
// 1
backupReg0f = R123f.x;
R123f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].y),R3f.y) + R123f.y;
@ -176,7 +176,7 @@ void main()
R123f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].y),R3f.x) + R123f.z;
R123f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].y),R3f.z) + backupReg0f;
R0f.x = R7f.x;
// 2
backupReg0f = R123f.y;
R123f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].y),R1f.y) + R123f.x;
@ -184,7 +184,7 @@ void main()
R123f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].y),R1f.w) + backupReg0f;
R123f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].y),R1f.z) + R123f.w;
R1f.y = R7f.y + intBitsToFloat(0xbcd4629b);
// 3
backupReg0f = R2f.z;
R3f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].z),R2f.x) + R123f.y;
@ -192,7 +192,7 @@ void main()
R2f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].z),R2f.w) + R123f.z;
R2f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].z),backupReg0f) + R123f.w;
R1f.x = R7f.x;
// 4
R2f.x = R7f.x;
R2f.y = R7f.y + intBitsToFloat(0x3cf2b9d6);
@ -202,14 +202,14 @@ void main()
R0f.xyzw = (textureLod(textureUnitPS0, vec2(R0f.x,R0f.y),0.0).xyzw);
R1f.xyzw = (textureLod(textureUnitPS0, vec2(R1f.x,R1f.y),0.0).xyzw);
R5f.xyzw = (textureLod(textureUnitPS0, vec2(R2f.x,R2f.y),0.0).xyzw);
// 0
R123f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].z),R4f.x) + R3f.x;
R123f.y = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].z),R4f.w) + R2f.z;
R123f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].z),R4f.z) + R2f.w;
R123f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].z),R4f.y) + R3f.y;
R3f.y = R7f.y + intBitsToFloat(0x3d088888);
// 1
backupReg0f = R123f.x;
R123f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].w),R0f.w) + R123f.y;
@ -217,7 +217,7 @@ void main()
R123f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].w),R0f.z) + R123f.z;
R123f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].w),R0f.y) + R123f.w;
R3f.x = R7f.x;
// 2
backupReg0f = R123f.y;
R123f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].w),R1f.w) + R123f.x;
@ -225,14 +225,14 @@ void main()
R123f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].w),R1f.y) + R123f.w;
R123f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].w),R1f.x) + backupReg0f;
R1f.y = R7f.y + intBitsToFloat(0xbd088888);
// 3
R0f.x = mul_nonIEEE(R5f.z,intBitsToFloat(uf_remappedPS[2].x)) + R123f.y;
R0f.y = mul_nonIEEE(R5f.w,intBitsToFloat(uf_remappedPS[2].x)) + R123f.x;
R5f.z = mul_nonIEEE(R5f.y,intBitsToFloat(uf_remappedPS[2].x)) + R123f.z;
R5f.w = mul_nonIEEE(R5f.x,intBitsToFloat(uf_remappedPS[2].x)) + R123f.w;
R1f.x = R7f.x;
// 4
R5f.x = R7f.x;
R5f.y = R7f.y + intBitsToFloat(0x3d17b426);
@ -242,14 +242,14 @@ void main()
R3f.xyzw = (textureLod(textureUnitPS0, vec2(R3f.x,R3f.y),0.0).xyzw);
R1f.xyzw = (textureLod(textureUnitPS0, vec2(R1f.x,R1f.y),0.0).xyzw);
R2f.xyzw = (textureLod(textureUnitPS0, vec2(R5f.x,R5f.y),0.0).xyzw);
// 0
R123f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].x),R6f.z) + R0f.x;
R123f.y = mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].x),R6f.y) + R5f.z;
R123f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].x),R6f.x) + R5f.w;
R123f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].x),R6f.w) + R0f.y;
R0f.y = R7f.y + intBitsToFloat(0x3d26dfc3);
// 1
backupReg0f = R123f.x;
R123f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].y),R3f.y) + R123f.y;
@ -257,7 +257,7 @@ void main()
R123f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].y),R3f.x) + R123f.z;
R123f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].y),R3f.z) + backupReg0f;
R0f.x = R7f.x;
// 2
backupReg0f = R123f.y;
R123f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].y),R1f.y) + R123f.x;
@ -265,7 +265,7 @@ void main()
R123f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].y),R1f.w) + backupReg0f;
R123f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].y),R1f.z) + R123f.w;
R7f.y = R7f.y + intBitsToFloat(0xbd26dfc3);
// 3
backupReg0f = R2f.z;
R2f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].z),R2f.x) + R123f.y;
@ -294,7 +294,7 @@ void main()
R7f.y = mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].w),R7f.y) + R123f.w;
R7f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].w),R7f.z) + R123f.z;
R7f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].w),R7f.w) + R123f.x;
// export
passPixelColor0 = vec4(R7f.x, R7f.y, R7f.z, R7f.w);
}

View file

@ -11,13 +11,13 @@
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.z, 1.0/gl_FragCoord.w)
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
#endif
#ifdef VULKAN
@ -26,11 +26,11 @@
uniform ivec4 uf_remappedPS[5];
uniform vec4 uf_fragCoordScale;
};
#else
uniform ivec4 uf_remappedPS[5];
uniform vec2 uf_fragCoordScale;
#endif
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0;
@ -60,18 +60,18 @@ void main()
ivec4 ARi = ivec4(0);
bool predResult = true;
R0f = GET_FRAGCOORD();
// 0
R7f.x = R0f.x * intBitsToFloat(0x3b088889);
R7f.y = R0f.y * intBitsToFloat(0x3b72b9d6);
// 1
R0f.x = R7f.x + intBitsToFloat(0x3b088889);
R0f.y = R7f.y;
R1f.z = R7f.y;
R1f.x = R7f.x + intBitsToFloat(0xbb088889);
// 2
R2f.x = R7f.x + intBitsToFloat(0x3b888889);
R2f.y = R7f.y;
@ -81,21 +81,21 @@ void main()
R0f.xyzw = (textureLod(textureUnitPS0, vec2(R0f.x,R0f.y),0.0).xyzw);
R1f.xyzw = (textureLod(textureUnitPS0, vec2(R1f.x,R1f.z),0.0).xyzw);
R2f.xyzw = (textureLod(textureUnitPS0, vec2(R2f.x,R2f.y),0.0).xyzw);
// 0
PV0fx = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].y), R0f.z);
PV0fy = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].y), R0f.y);
PV0fz = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].y), R0f.x);
PV0fw = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].y), R0f.w);
R0f.x = R7f.x + intBitsToFloat(0x3bccccce);
// 1
R123f.x = mul_nonIEEE(R3f.w,intBitsToFloat(uf_remappedPS[0].x)) + PV0fw;
R123f.y = mul_nonIEEE(R3f.y,intBitsToFloat(uf_remappedPS[0].x)) + PV0fy;
R123f.z = mul_nonIEEE(R3f.x,intBitsToFloat(uf_remappedPS[0].x)) + PV0fz;
R123f.w = mul_nonIEEE(R3f.z,intBitsToFloat(uf_remappedPS[0].x)) + PV0fx;
R0f.y = R7f.y;
// 2
backupReg0f = R123f.x;
R123f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].y),R1f.y) + R123f.y;
@ -103,14 +103,14 @@ void main()
R123f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].y),R1f.w) + backupReg0f;
R123f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].y),R1f.z) + R123f.w;
R1f.x = R7f.x + intBitsToFloat(0xbbccccce);
// 3
R3f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].z),R2f.w) + R123f.z;
R3f.y = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].z),R2f.x) + R123f.y;
R2f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].z),R2f.z) + R123f.w;
R2f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].z),R2f.y) + R123f.x;
R1f.y = R7f.y;
// 4
R2f.x = R7f.x + intBitsToFloat(0x3c088889);
R2f.y = R7f.y;
@ -120,21 +120,21 @@ void main()
R0f.xyzw = (textureLod(textureUnitPS0, vec2(R0f.x,R0f.y),0.0).xyzw);
R1f.xyzw = (textureLod(textureUnitPS0, vec2(R1f.x,R1f.y),0.0).xyzw);
R5f.xyzw = (textureLod(textureUnitPS0, vec2(R2f.x,R2f.y),0.0).xyzw);
// 0
R123f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].z),R4f.x) + R3f.y;
R123f.y = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].z),R4f.w) + R3f.x;
R123f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].z),R4f.z) + R2f.z;
R123f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].z),R4f.y) + R2f.w;
R3f.x = R7f.x + intBitsToFloat(0x3c2aaaab);
// 1
R123f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].w),R0f.x) + R123f.x;
R123f.y = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].w),R0f.w) + R123f.y;
R123f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].w),R0f.z) + R123f.z;
R123f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].w),R0f.y) + R123f.w;
R3f.y = R7f.y;
// 2
backupReg0f = R123f.x;
R123f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].w),R1f.w) + R123f.y;
@ -142,14 +142,14 @@ void main()
R123f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].w),R1f.y) + R123f.w;
R123f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].w),R1f.x) + backupReg0f;
R1f.x = R7f.x + intBitsToFloat(0xbc2aaaab);
// 3
R0f.x = mul_nonIEEE(R5f.w,intBitsToFloat(uf_remappedPS[1].x)) + R123f.x;
R0f.y = mul_nonIEEE(R5f.z,intBitsToFloat(uf_remappedPS[1].x)) + R123f.y;
R5f.z = mul_nonIEEE(R5f.y,intBitsToFloat(uf_remappedPS[1].x)) + R123f.z;
R5f.w = mul_nonIEEE(R5f.x,intBitsToFloat(uf_remappedPS[1].x)) + R123f.w;
R1f.y = R7f.y;
// 4
R5f.x = R7f.x + intBitsToFloat(0x3c4cccce);
R5f.y = R7f.y;
@ -159,14 +159,14 @@ void main()
R3f.xyzw = (textureLod(textureUnitPS0, vec2(R3f.x,R3f.y),0.0).xyzw);
R1f.xyzw = (textureLod(textureUnitPS0, vec2(R1f.x,R1f.y),0.0).xyzw);
R2f.xyzw = (textureLod(textureUnitPS0, vec2(R5f.x,R5f.y),0.0).xyzw);
// 0
R123f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].x),R6f.z) + R0f.y;
R123f.y = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].x),R6f.y) + R5f.z;
R123f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].x),R6f.x) + R5f.w;
R123f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].x),R6f.w) + R0f.x;
R0f.x = R7f.x + intBitsToFloat(0x3c6eeef0);
// 1
backupReg0f = R123f.x;
R123f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].y),R3f.w) + R123f.w;
@ -174,7 +174,7 @@ void main()
R123f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].y),R3f.x) + R123f.z;
R123f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].y),R3f.z) + backupReg0f;
R0f.y = R7f.y;
// 2
backupReg0f = R123f.x;
R123f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].y),R1f.y) + R123f.y;
@ -182,14 +182,14 @@ void main()
R123f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].y),R1f.w) + backupReg0f;
R123f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].y),R1f.z) + R123f.w;
R1f.x = R7f.x + intBitsToFloat(0xbc6eeef0);
// 3
R3f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].z),R2f.w) + R123f.z;
R3f.y = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].z),R2f.x) + R123f.y;
R2f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].z),R2f.z) + R123f.w;
R2f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].z),R2f.y) + R123f.x;
R1f.y = R7f.y;
// 4
R2f.x = R7f.x + intBitsToFloat(0x3c888889);
R2f.y = R7f.y;
@ -199,21 +199,21 @@ void main()
R0f.xyzw = (textureLod(textureUnitPS0, vec2(R0f.x,R0f.y),0.0).xyzw);
R1f.xyzw = (textureLod(textureUnitPS0, vec2(R1f.x,R1f.y),0.0).xyzw);
R5f.xyzw = (textureLod(textureUnitPS0, vec2(R2f.x,R2f.y),0.0).xyzw);
// 0
R123f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].z),R4f.x) + R3f.y;
R123f.y = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].z),R4f.w) + R3f.x;
R123f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].z),R4f.z) + R2f.z;
R123f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].z),R4f.y) + R2f.w;
R3f.x = R7f.x + intBitsToFloat(0x3c99999a);
// 1
R123f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].w),R0f.x) + R123f.x;
R123f.y = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].w),R0f.w) + R123f.y;
R123f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].w),R0f.z) + R123f.z;
R123f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].w),R0f.y) + R123f.w;
R3f.y = R7f.y;
// 2
backupReg0f = R123f.x;
R123f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].w),R1f.w) + R123f.y;
@ -221,14 +221,14 @@ void main()
R123f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].w),R1f.y) + R123f.w;
R123f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].w),R1f.x) + backupReg0f;
R1f.x = R7f.x + intBitsToFloat(0xbc99999a);
// 3
R0f.x = mul_nonIEEE(R5f.w,intBitsToFloat(uf_remappedPS[2].x)) + R123f.x;
R0f.y = mul_nonIEEE(R5f.z,intBitsToFloat(uf_remappedPS[2].x)) + R123f.y;
R5f.z = mul_nonIEEE(R5f.y,intBitsToFloat(uf_remappedPS[2].x)) + R123f.z;
R5f.w = mul_nonIEEE(R5f.x,intBitsToFloat(uf_remappedPS[2].x)) + R123f.w;
R1f.y = R7f.y;
// 4
R5f.x = R7f.x + intBitsToFloat(0x3caaaaab);
R5f.y = R7f.y;
@ -238,14 +238,14 @@ void main()
R3f.xyzw = (textureLod(textureUnitPS0, vec2(R3f.x,R3f.y),0.0).xyzw);
R1f.xyzw = (textureLod(textureUnitPS0, vec2(R1f.x,R1f.y),0.0).xyzw);
R2f.xyzw = (textureLod(textureUnitPS0, vec2(R5f.x,R5f.y),0.0).xyzw);
// 0
R123f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].x),R6f.z) + R0f.y;
R123f.y = mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].x),R6f.y) + R5f.z;
R123f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].x),R6f.x) + R5f.w;
R123f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].x),R6f.w) + R0f.x;
R0f.x = R7f.x + intBitsToFloat(0x3cbbbbbc);
// 1
backupReg0f = R123f.x;
R123f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].y),R3f.w) + R123f.w;
@ -253,7 +253,7 @@ void main()
R123f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].y),R3f.x) + R123f.z;
R123f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].y),R3f.z) + backupReg0f;
R0f.y = R7f.y;
// 2
backupReg0f = R123f.x;
R123f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].y),R1f.y) + R123f.y;
@ -261,14 +261,14 @@ void main()
R123f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].y),R1f.w) + backupReg0f;
R123f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].y),R1f.z) + R123f.w;
R1f.x = R7f.x + intBitsToFloat(0xbcbbbbbc);
// 3
R3f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].z),R2f.w) + R123f.z;
R3f.y = mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].z),R2f.x) + R123f.y;
R2f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].z),R2f.z) + R123f.w;
R2f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].z),R2f.y) + R123f.x;
R1f.y = R7f.y;
// 4
R2f.x = R7f.x + intBitsToFloat(0x3cccccce);
R2f.y = R7f.y;
@ -278,21 +278,21 @@ void main()
R0f.xyzw = (textureLod(textureUnitPS0, vec2(R0f.x,R0f.y),0.0).xyzw);
R1f.xyzw = (textureLod(textureUnitPS0, vec2(R1f.x,R1f.y),0.0).xyzw);
R5f.xyzw = (textureLod(textureUnitPS0, vec2(R2f.x,R2f.y),0.0).xyzw);
// 0
R123f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].z),R4f.x) + R3f.y;
R123f.y = mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].z),R4f.w) + R3f.x;
R123f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].z),R4f.z) + R2f.z;
R123f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].z),R4f.y) + R2f.w;
R3f.x = R7f.x + intBitsToFloat(0x3cdddddf);
// 1
R123f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].w),R0f.x) + R123f.x;
R123f.y = mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].w),R0f.w) + R123f.y;
R123f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].w),R0f.z) + R123f.z;
R123f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].w),R0f.y) + R123f.w;
R3f.y = R7f.y;
// 2
backupReg0f = R123f.x;
R123f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].w),R1f.w) + R123f.y;
@ -300,14 +300,14 @@ void main()
R123f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].w),R1f.y) + R123f.w;
R123f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].w),R1f.x) + backupReg0f;
R1f.x = R7f.x + intBitsToFloat(0xbcdddddf);
// 3
R0f.x = mul_nonIEEE(R5f.w,intBitsToFloat(uf_remappedPS[3].x)) + R123f.x;
R0f.y = mul_nonIEEE(R5f.z,intBitsToFloat(uf_remappedPS[3].x)) + R123f.y;
R5f.z = mul_nonIEEE(R5f.y,intBitsToFloat(uf_remappedPS[3].x)) + R123f.z;
R5f.w = mul_nonIEEE(R5f.x,intBitsToFloat(uf_remappedPS[3].x)) + R123f.w;
R1f.y = R7f.y;
// 4
R5f.x = R7f.x + intBitsToFloat(0x3ceeeef0);
R5f.y = R7f.y;
@ -317,14 +317,14 @@ void main()
R3f.xyzw = (textureLod(textureUnitPS0, vec2(R3f.x,R3f.y),0.0).xyzw);
R1f.xyzw = (textureLod(textureUnitPS0, vec2(R1f.x,R1f.y),0.0).xyzw);
R2f.xyzw = (textureLod(textureUnitPS0, vec2(R5f.x,R5f.y),0.0).xyzw);
// 0
R123f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].x),R6f.z) + R0f.y;
R123f.y = mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].x),R6f.y) + R5f.z;
R123f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].x),R6f.x) + R5f.w;
R123f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].x),R6f.w) + R0f.x;
R0f.x = R7f.x + 0.03125;
// 1
backupReg0f = R123f.x;
R123f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].y),R3f.w) + R123f.w;
@ -332,7 +332,7 @@ void main()
R123f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].y),R3f.x) + R123f.z;
R123f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].y),R3f.z) + backupReg0f;
R0f.y = R7f.y;
// 2
backupReg0f = R123f.x;
R123f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].y),R1f.y) + R123f.y;
@ -340,14 +340,14 @@ void main()
R123f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].y),R1f.w) + backupReg0f;
R123f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].y),R1f.z) + R123f.w;
R1f.x = R7f.x + -0.03125;
// 3
R3f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].z),R2f.w) + R123f.z;
R3f.y = mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].z),R2f.x) + R123f.y;
R2f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].z),R2f.z) + R123f.w;
R2f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].z),R2f.y) + R123f.x;
R1f.y = R7f.y;
// 4
R2f.x = R7f.x + intBitsToFloat(0x3d088889);
R2f.y = R7f.y;
@ -357,21 +357,21 @@ void main()
R0f.xyzw = (textureLod(textureUnitPS0, vec2(R0f.x,R0f.y),0.0).xyzw);
R1f.xyzw = (textureLod(textureUnitPS0, vec2(R1f.x,R1f.y),0.0).xyzw);
R5f.xyzw = (textureLod(textureUnitPS0, vec2(R2f.x,R2f.y),0.0).xyzw);
// 0
R123f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].z),R4f.x) + R3f.y;
R123f.y = mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].z),R4f.w) + R3f.x;
R123f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].z),R4f.z) + R2f.z;
R123f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].z),R4f.y) + R2f.w;
R3f.x = R7f.x + intBitsToFloat(0x3d111112);
// 1
R123f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].w),R0f.x) + R123f.x;
R123f.y = mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].w),R0f.w) + R123f.y;
R123f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].w),R0f.z) + R123f.z;
R123f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].w),R0f.y) + R123f.w;
R3f.y = R7f.y;
// 2
backupReg0f = R123f.x;
R123f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].w),R1f.w) + R123f.y;
@ -379,14 +379,14 @@ void main()
R123f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].w),R1f.y) + R123f.w;
R123f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].w),R1f.x) + backupReg0f;
R1f.x = R7f.x + intBitsToFloat(0xbd111112);
// 3
R0f.x = mul_nonIEEE(R5f.w,intBitsToFloat(uf_remappedPS[4].x)) + R123f.x;
R0f.y = mul_nonIEEE(R5f.z,intBitsToFloat(uf_remappedPS[4].x)) + R123f.y;
R5f.z = mul_nonIEEE(R5f.y,intBitsToFloat(uf_remappedPS[4].x)) + R123f.z;
R5f.w = mul_nonIEEE(R5f.x,intBitsToFloat(uf_remappedPS[4].x)) + R123f.w;
R1f.y = R7f.y;
// 4
R5f.x = R7f.x + intBitsToFloat(0x3d19999a);
R5f.y = R7f.y;
@ -396,14 +396,14 @@ void main()
R3f.xyzw = (textureLod(textureUnitPS0, vec2(R3f.x,R3f.y),0.0).xyzw);
R1f.xyzw = (textureLod(textureUnitPS0, vec2(R1f.x,R1f.y),0.0).xyzw);
R2f.xyzw = (textureLod(textureUnitPS0, vec2(R5f.x,R5f.y),0.0).xyzw);
// 0
R123f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[4].x),R6f.z) + R0f.y;
R123f.y = mul_nonIEEE(intBitsToFloat(uf_remappedPS[4].x),R6f.y) + R5f.z;
R123f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[4].x),R6f.x) + R5f.w;
R123f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[4].x),R6f.w) + R0f.x;
R0f.x = R7f.x + intBitsToFloat(0x3d222223);
// 1
backupReg0f = R123f.x;
R123f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[4].y),R3f.w) + R123f.w;
@ -411,7 +411,7 @@ void main()
R123f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[4].y),R3f.x) + R123f.z;
R123f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[4].y),R3f.z) + backupReg0f;
R0f.y = R7f.y;
// 2
backupReg0f = R123f.x;
R123f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[4].y),R1f.y) + R123f.y;
@ -419,7 +419,7 @@ void main()
R123f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[4].y),R1f.w) + backupReg0f;
R123f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[4].y),R1f.z) + R123f.w;
R7f.x = R7f.x + intBitsToFloat(0xbd222223);
// 3
backupReg0f = R2f.x;
backupReg1f = R2f.y;
@ -430,25 +430,25 @@ void main()
R4f.xyzw = (textureLod(textureUnitPS0, vec2(R4f.x,R4f.z),0.0).xyzw);
R0f.xyzw = (textureLod(textureUnitPS0, vec2(R0f.x,R0f.y),0.0).xyzw);
R7f.xyzw = (textureLod(textureUnitPS0, vec2(R7f.x,R7f.y),0.0).xyzw);
// 0
R123f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[4].z),R4f.x) + R2f.y;
R123f.y = mul_nonIEEE(intBitsToFloat(uf_remappedPS[4].z),R4f.w) + R2f.x;
R123f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[4].z),R4f.z) + R2f.z;
R123f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[4].z),R4f.y) + R2f.w;
// 1
R123f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[4].w),R0f.x) + R123f.x;
R123f.y = mul_nonIEEE(intBitsToFloat(uf_remappedPS[4].w),R0f.w) + R123f.y;
R123f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[4].w),R0f.z) + R123f.z;
R123f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[4].w),R0f.y) + R123f.w;
// 2
R7f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[4].w),R7f.x) + R123f.x;
R7f.y = mul_nonIEEE(intBitsToFloat(uf_remappedPS[4].w),R7f.y) + R123f.w;
R7f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[4].w),R7f.z) + R123f.z;
R7f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[4].w),R7f.w) + R123f.y;
// export
passPixelColor0 = vec4(R7f.x, R7f.y, R7f.z, R7f.w);
}

View file

@ -1,8 +1,9 @@
[Definition]
titleIds = 000500001019C800,000500001019E600,000500001019E500
name = Bloom (Glow) and Shadow World Color Grading
path = The Legend of Zelda: Twilight Princess HD/Graphics/Bloom
path = "The Legend of Zelda: Twilight Princess HD/Enhancements/Bloom"
description = This pack allows you to adjust bloom and color grading in the shadow world.||It's not recommended to fully disable bloom, as it removes the intended tone of the game.|Bloom is particularly strong in the shadow world with a strong yellow tint, but is also used in the normal world.||Color grading only affects the shadow world. By default, the game darkens and desaturates the image in the shadow world to further distinguish it.
#Credits: KoB-Kirito
version = 7

View file

@ -31,8 +31,8 @@ layout(location = 0) out vec4 passPixelColor0;
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 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.
@ -40,18 +40,18 @@ vec3 RGB_Gamma = vec3($redMid ,$greenMid, $blueMid); // [0.000 to 2.000] Adju
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_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)));
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)
#define CoefLuma vec3(0.2126, 0.7152, 0.0722)
float lumasharping(sampler2D tex, vec2 pos) {
vec4 colorInput = texture(tex, pos);
@ -89,8 +89,8 @@ 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 = clamp(color, 0.0, 1.0);
color *= RGB_Gain;
color = pow(color, 1.0 / RGB_Gamma);
return clamp(color, 0.0, 1.0);
}
@ -98,7 +98,7 @@ vec3 LiftGammaGainPass(vec3 colorInput)
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;

View file

@ -2,11 +2,11 @@
titleIds = 000500001019C800,000500001019E600,000500001019E500
name = Contrasty
path = "The Legend of Zelda: Twilight Princess HD/Enhancements/Contrasty"
description = This pack tweaks the colors and contrast to whatever preset you set it as. You can also make your own preset by editing the Default preset in the Contrasty folder from the game's graphic packs. Made by getdls.
version = 4
description = This pack tweaks the colors and contrast to whatever preset you set it as. You can also make your own preset by editing the Default preset in the Contrasty folder from the game's graphic packs.|Made by getdls.
#Credits: getdls
version = 6
[Preset]
name = default
[Default]
$redShadows = 1.0
$greenShadows = 1.0
$blueSadows = 1.0
@ -27,6 +27,9 @@ $crushContrast = 0.0
# $bleach = 1.0
$sharp_mix = 0.0
[Preset]
name = default
[Preset] # Preserve original washed out look, but balances bloom white point towards neutral
name = Neutral Hi-lights
$redShadows = 1.0

View file

@ -1,4 +1,4 @@
#version 420
#version 430
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN

View file

@ -1,4 +1,4 @@
#version 420
#version 430
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN

View file

@ -1,4 +1,4 @@
#version 420
#version 430
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN

View file

@ -1,16 +1,16 @@
#version 420
#version 430
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
// shader e334517825fdd599
//water, sun, fog.
//water, sun, fog.
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 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;
@ -19,18 +19,18 @@ vec3 RGB_Gamma = vec3($redMid ,$greenMid, $blueMid); // [0.000 to 2.000] Adju
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_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)));
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)
#define CoefLuma vec3(0.2126, 0.7152, 0.0722)
float lumasharping(sampler2D tex, vec2 pos) {
vec4 colorInput = texture(tex, pos);
@ -68,8 +68,8 @@ 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 = clamp(color, 0.0, 1.0);
color *= RGB_Gain;
color = pow(color, 1.0 / RGB_Gamma);
return clamp(color, 0.0, 1.0);
}
@ -77,7 +77,7 @@ vec3 LiftGammaGainPass(vec3 colorInput)
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;

View file

@ -2,17 +2,29 @@
titleIds = 000500001019C800,000500001019E600,000500001019E500
name = Level of detail
path = "The Legend of Zelda: Twilight Princess HD/Enhancements/Negative Texture LOD"
description = Sharper textures at risk of shimmering when set too high. Made by getdls.
version = 4
description = Sharper textures at risk of shimmering when set too high.|Made by getdls.
#Credits: getdls
version = 6
[Preset]
name = LOD Default
[Default]
$0x031 = 0
$0x033 = 0
$0x034 = 0
$0x035 = 0
$0x01a = 0
[Preset]
name = LOD +2 (Simulate WiiU LOD on higher resolution)
$0x031 = +2
$0x033 = +2
$0x034 = +2
$0x035 = +2
$0x01a = 0
[Preset]
name = LOD Default
default = 1
[Preset]
name = LOD -0.5 (Sharper)
$0x031 = -.5
@ -21,7 +33,7 @@ $0x034 = -.5
$0x035 = -.5
$0x01a = -.5
[Preset]
name = LOD -1 (Max for gameplay)
name = LOD -1 (Super Sharp)
$0x031 = -1
$0x033 = -1
$0x034 = -1
@ -36,14 +48,6 @@ $0x034 = -4
$0x035 = -4
$0x01a = -4
[Preset]
name = LOD +2 (Simulate WiiU LOD on higher resolution)
$0x031 = +2
$0x033 = +2
$0x034 = +2
$0x035 = +2
$0x01a = 0
[TextureRedefine]
formats = 0x031 #0x431,0x432,0x433,0x434,0x435 not used.
overwriteRelativeLodBias = $0x031

View file

@ -1,4 +1,4 @@
#version 420
#version 430
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN

View file

@ -1,4 +1,4 @@
#version 420
#version 430
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN

View file

@ -1,4 +1,4 @@
#version 420
#version 430
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN

View file

@ -1,4 +1,4 @@
#version 420
#version 430
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN

View file

@ -1,4 +1,4 @@
#version 420
#version 430
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN

View file

@ -1,4 +1,4 @@
#version 420
#version 430
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN

View file

@ -1,4 +1,4 @@
#version 420
#version 430
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN

View file

@ -1,4 +1,4 @@
#version 420
#version 430
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN

View file

@ -1,4 +1,4 @@
#version 420
#version 430
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN

View file

@ -1,4 +1,4 @@
#version 420
#version 430
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN

View file

@ -1,4 +1,4 @@
#version 420
#version 430
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN

View file

@ -1,4 +1,4 @@
#version 420
#version 430
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN

View file

@ -1,4 +1,4 @@
#version 420
#version 430
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN

View file

@ -1,4 +1,4 @@
#version 420
#version 430
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN

View file

@ -1,4 +1,4 @@
#version 420
#version 430
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN

View file

@ -1,4 +1,4 @@
#version 420
#version 430
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#extension GL_ARB_shading_language_packing : enable

View file

@ -1,4 +1,4 @@
#version 420
#version 430
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN

View file

@ -1,4 +1,4 @@
#version 420
#version 430
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN

View file

@ -1,4 +1,4 @@
#version 420
#version 430
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN

View file

@ -1,4 +1,4 @@
#version 420
#version 430
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN
@ -18,13 +18,6 @@
#endif
// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL.
// shader c14019840473ff86
//scale boxblur fx
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0;
TEXTURE_LAYOUT(1, 1, 1) uniform sampler2D textureUnitPS1;
layout(location = 0) in vec4 passParameterSem0;
layout(location = 0) out vec4 passPixelColor0;
#ifdef VULKAN
layout(set = 1, binding = 2) uniform ufBlock
{
@ -33,6 +26,16 @@ uniform vec4 uf_fragCoordScale;
#else
uniform vec2 uf_fragCoordScale;
#endif
#define AAENABLE $AAEnable
#if (AAENABLE == 1)
// shader c14019840473ff86
//scale boxblur fx
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0;
TEXTURE_LAYOUT(1, 1, 1) uniform sampler2D textureUnitPS1;
layout(location = 0) in vec4 passParameterSem0;
layout(location = 0) out vec4 passPixelColor0;
int clampFI32(int v)
{
if( v == 0x7FFFFFFF )
@ -157,3 +160,4 @@ R0f.w = PV0f.x * 0.25;
// export
passPixelColor0 = vec4(R0f.x, R0f.y, R0f.z, R0f.w);
}
#endif

View file

@ -1,4 +1,4 @@
#version 420
#version 430
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN

View file

@ -1,4 +1,4 @@
#version 420
#version 430
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN

View file

@ -1,4 +1,4 @@
#version 420
#version 430
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN

View file

@ -1,4 +1,4 @@
#version 420
#version 430
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN

View file

@ -1,4 +1,4 @@
#version 420
#version 430
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN

View file

@ -1,4 +1,4 @@
#version 420
#version 430
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN

View file

@ -1,4 +1,4 @@
#version 420
#version 430
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN
@ -19,7 +19,7 @@
// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL.
// shader fc148873ef522f50
// objective shadow
// objective shadow
const float UIx = $UIAspectX;
const float UIy = $UIAspectY;
#ifdef VULKAN

View file

@ -1,12 +1,7 @@
[TPHDv81]
moduleMatches = 0x1A03E108
#rodata constants
[TwilightPrincessHD_Resolution]
moduleMatches = 0x1A03E108, 0xA3175EEA ; v81(EU/NA), v82(JP)
0x1005AAD8 = .float $aspectRatio
_aspectAddr = 0x1006AAD8
#code changes
0x028D75B8 = lis r11, _aspectAddr@h
0x028D75C0 = lfs f0, _aspectAddr@l(r11) ; Main 3d Aspect
0x029BB184 = lis r12, _aspectAddr@h

View file

@ -1,12 +1,12 @@
[Definition]
titleIds = 000500001019C800,000500001019E600,000500001019E500
name = Resolution
path = "The Legend of Zelda: Twilight Princess HD/Graphics/Resolution"
description = Changes the resolution of the game. Made by getdls.
version = 4
name = Graphics Settings
path = "The Legend of Zelda: Twilight Princess HD/Graphics"
description = Changes the resolution of the game.|Made by getdls.
#Credits: getdls, NineKain
version = 6
[Preset]
name = 1920x1080 (Native)
[Default]
$width = 1920
$height = 1080
$gameWidth = 1920
@ -19,8 +19,52 @@ $aspectRatio = (16.0/9.0)
$UIAspectX = 1.0
$UIAspectY = 1.0
$UItransp = 1.0
$anisoLevel = 1
$AAEnable:int = 1
# Performance
[Preset]
category = Resolution
name = 640x360
$width = 640
$height = 360
$gameWidth = 1920
$gameHeight = 1080
[Preset]
category = Resolution
name = 960x540
$width = 960
$height = 540
$gameWidth = 1920
$gameHeight = 1080
[Preset]
category = Resolution
name = 1280x720
$width = 1280
$height = 720
$gameWidth = 1920
$gameHeight = 1080
[Preset]
category = Resolution
name = 1600x900
$width = 1600
$height = 900
$gameWidth = 1920
$gameHeight = 1080
[Preset]
category = Resolution
name = 1920x1080 (Native)
default = 1
# HD Resolutions
[Preset]
category = Resolution
name = 2560x1440
$width = 2560
$height = 1440
@ -36,6 +80,7 @@ $UIAspectY = 1.0
$UItransp = 1.0
[Preset]
category = Resolution
name = 2732x1536
$width = 2732
$height = 1536
@ -51,6 +96,7 @@ $UIAspectY = 1.0
$UItransp = 1.0
[Preset]
category = Resolution
name = 3200x1800
$width = 3200
$height = 1800
@ -66,6 +112,7 @@ $UIAspectY = 1.0
$UItransp = 1.0
[Preset]
category = Resolution
name = 3840x2160 (4k - Native x2)
$width = 3840
$height = 2160
@ -81,6 +128,7 @@ $UIAspectY = 1.0
$UItransp = 1.0
[Preset]
category = Resolution
name = 5120x2880
$width = 5120
$height = 2880
@ -95,9 +143,10 @@ $UIAspectX = 1.0
$UIAspectY = 1.0
$UItransp = 1.0
// Enthusiast
# Enthusiast
[Preset]
category = Resolution
name = 7680x4320 (8k - Native x3)
$width = 7680
$height = 4320
@ -113,6 +162,7 @@ $UIAspectY = 1.0
$UItransp = 1.0
[Preset]
category = Resolution
name = -- 21:9 -- resolutions
$width = 2560
$height = 1080
@ -128,6 +178,7 @@ $UIAspectY = 1.0
$UItransp = 1.0
[Preset]
category = Resolution
name = 2560x1080 (21:9 HD)
$width = 2560
$height = 1080
@ -143,6 +194,7 @@ $UIAspectY = 1.0
$UItransp = 1.0
[Preset]
category = Resolution
name = 3440x1440 (21:9)
$width = 3440
$height = 1440
@ -158,6 +210,7 @@ $UIAspectY = 1.0
$UItransp = 1.0
[Preset]
category = Resolution
name = 5120x2160 (21:9)
$width = 5120
$height = 2160
@ -173,6 +226,7 @@ $UIAspectY = 1.0
$UItransp = 1.0
[Preset]
category = Resolution
name = -- 16:10 -- resolutions
$width = 1440
$height = 900
@ -188,6 +242,7 @@ $UIAspectY = ( 1440.0 / 900.0 ) / (1920.0 / 1080.0)
$UItransp = 1.0
[Preset]
category = Resolution
name = 1280x800 (16:10)
$width = 1280
$height = 800
@ -203,6 +258,7 @@ $UIAspectY = ( 1280.0 / 800.0 ) / (1920.0 / 1080.0)
$UItransp = 1.0
[Preset]
category = Resolution
name = 1440x900 (16:10)
$width = 1440
$height = 900
@ -218,6 +274,7 @@ $UIAspectY = ( 1440.0 / 900.0 ) / (1920.0 / 1080.0)
$UItransp = 1.0
[Preset]
category = Resolution
name = 1680x1050 (16:10)
$width = 1680
$height = 1050
@ -233,6 +290,7 @@ $UIAspectY = ( 1680.0 / 1050.0 ) / (1920.0 / 1080.0)
$UItransp = 1.0
[Preset]
category = Resolution
name = 1920x1200 (16:10)
$width = 1920
$height = 1200
@ -248,6 +306,7 @@ $UIAspectY = ( 1920.0 / 1200.0 ) / (1920.0 / 1080.0)
$UItransp = 1.0
[Preset]
category = Resolution
name = 2560x1600 (16:10)
$width = 2560
$height = 1600
@ -263,6 +322,7 @@ $UIAspectY = ( 2560.0 / 1600.0 ) / (1920.0 / 1080.0)
$UItransp = 1.0
[Preset]
category = Resolution
name = 2880x1800 (16:10)
$width = 2880
$height = 1800
@ -278,6 +338,7 @@ $UIAspectY = ( 2880.0 / 1800.0 ) / (1920.0 / 1080.0)
$UItransp = 1.0
[Preset]
category = Resolution
name = 3840x2400 (16:10)
$width = 3840
$height = 2400
@ -293,6 +354,7 @@ $UIAspectY = ( 3840.0 / 2400.0 ) / (1920.0 / 1080.0)
$UItransp = 1.0
[Preset]
category = Resolution
name = 5120x3200 (16:10)
$width = 5120
$height = 3200
@ -308,6 +370,7 @@ $UIAspectY = ( 5120.0 / 3200.0 ) / (1920.0 / 1080.0)
$UItransp = 1.0
[Preset]
category = Resolution
name = -- 48:9 -- resolutions
$width = 5760
$height = 1080
@ -323,6 +386,7 @@ $UIAspectY = 1.0
$UItransp = 1.0
[Preset]
category = Resolution
name = 5760x1080 (48:9)
$width = 5760
$height = 1080
@ -338,6 +402,7 @@ $UIAspectY = 1.0
$UItransp = 1.0
[Preset]
category = Resolution
name = 7680x1440 (48:9)
$width = 7680
$height = 1440
@ -353,6 +418,7 @@ $UIAspectY = 1.0
$UItransp = 1.0
[Preset] # Should work fine on a 1070 and fixes most of horizontal shimmering
category = Resolution
name = -- SSAA vert res x2 - Set scaling to Stretch
$width = 1920
$height = 2160
@ -368,6 +434,7 @@ $UIAspectY = 1.0
$UItransp = 1.0
[Preset]
category = Resolution
name = 1920x2160 (Vertical x2)
$width = 1920
$height = 2160
@ -383,6 +450,7 @@ $UIAspectY = 1.0
$UItransp = 1.0
[Preset]
category = Resolution
name = 2560x2880 (Vertical x2 - 0.75 sub scaling)
$width = 2560
$height = 2880
@ -398,6 +466,7 @@ $UIAspectY = 1.0
$UItransp = 1.0
[Preset] #
category = Resolution
name = 3840x4320 (Vertical x2 - 0.5 sub scaling)
$width = 3840
$height = 4320
@ -413,6 +482,7 @@ $UIAspectY = 1.0
$UItransp = 1.0
[Preset]
category = Resolution
name = 2560x2160 (21:9 Vertical x2)
$width = 2560
$height = 2160
@ -428,6 +498,7 @@ $UIAspectY = 1.0
$UItransp = 1.0
[Preset]
category = Resolution
name = 3440x2880 (21:9 Vertical x2 - 0.75 sub scaling)
$width = 3440
$height = 2880
@ -443,6 +514,7 @@ $UIAspectY = 1.0
$UItransp = 1.0
[Preset]
category = Resolution
name = 10240x4320 (21:9 0.5 subscale)
$width = 10240
$height = 4320
@ -459,6 +531,7 @@ $UItransp = 1.0
[Preset]
category = Resolution
name = 5760x1080 (48:9 Vertical x2 - 0.5 sub scaling)
$width = 5760
$height = 2160
@ -474,6 +547,7 @@ $UIAspectY = 1.0
$UItransp = 1.0
[Preset]
category = Resolution
name = -- UI 25% transparency, reduces risk of burn in --
$width = 1920
$height = 1080
@ -489,6 +563,7 @@ $UIAspectY = 1.0
$UItransp = 0.75
[Preset]
category = Resolution
name = 1920x1080 (Native) - UI 25% transp
$width = 1920
$height = 1080
@ -504,6 +579,7 @@ $UIAspectY = 1.0
$UItransp = 0.75
[Preset]
category = Resolution
name = 2560x1440 - UI 25% transp
$width = 2560
$height = 1440
@ -519,6 +595,7 @@ $UIAspectY = 1.0
$UItransp = 0.75
[Preset]
category = Resolution
name = 2732x1536 - UI 25% transp
$width = 2732
$height = 1536
@ -534,6 +611,7 @@ $UIAspectY = 1.0
$UItransp = 0.75
[Preset]
category = Resolution
name = 3200x1800 - UI 25% transp
$width = 3200
$height = 1800
@ -549,6 +627,7 @@ $UIAspectY = 1.0
$UItransp = 0.75
[Preset]
category = Resolution
name = 3840x2160 (4k - Native x2) - UI 25% transp
$width = 3840
$height = 2160
@ -564,6 +643,7 @@ $UIAspectY = 1.0
$UItransp = 0.75
[Preset]
category = Resolution
name = 5120x2880 - UI 25% transp
$width = 5120
$height = 2880
@ -578,9 +658,10 @@ $UIAspectX = 1.0
$UIAspectY = 1.0
$UItransp = 0.75
// Enthusiast
# Enthusiast
[Preset]
category = Resolution
name = 7680x4320 (8k - Native x3) - UI 25% transp
$width = 7680
$height = 4320
@ -596,6 +677,7 @@ $UIAspectY = 1.0
$UItransp = 0.75
[Preset]
category = Resolution
name = -- 21:9 -- resolutions - UI 25% transp
$width = 2560
$height = 1080
@ -611,6 +693,7 @@ $UIAspectY = 1.0
$UItransp = 0.75
[Preset]
category = Resolution
name = 2560x1080 (21:9 HD) - UI 25% transp
$width = 2560
$height = 1080
@ -626,6 +709,7 @@ $UIAspectY = 1.0
$UItransp = 0.75
[Preset]
category = Resolution
name = 3440x1440 (21:9) - UI 25% transp
$width = 3440
$height = 1440
@ -641,6 +725,7 @@ $UIAspectY = 1.0
$UItransp = 0.75
[Preset]
category = Resolution
name = 5120x2160 (21:9) - UI 25% transp
$width = 5120
$height = 2160
@ -656,6 +741,7 @@ $UIAspectY = 1.0
$UItransp = 0.75
[Preset]
category = Resolution
name = 10240x4320 (21:9) - UI 25% transp
$width = 10240
$height = 4320
@ -671,6 +757,7 @@ $UIAspectY = 1.0
$UItransp = 0.75
[Preset]
category = Resolution
name = -- 16:10 -- resolutions - UI 25% transp
$width = 1440
$height = 900
@ -686,6 +773,7 @@ $UIAspectY = ( 1440.0 / 900.0 ) / (1920.0 / 1080.0)
$UItransp = 0.75
[Preset]
category = Resolution
name = 1280x800 (16:10) - UI 25% transp
$width = 1280
$height = 800
@ -701,6 +789,7 @@ $UIAspectY = ( 1280.0 / 800.0 ) / (1920.0 / 1080.0)
$UItransp = 0.75
[Preset]
category = Resolution
name = 1440x900 (16:10) - UI 25% transp
$width = 1440
$height = 900
@ -716,6 +805,7 @@ $UIAspectY = ( 1440.0 / 900.0 ) / (1920.0 / 1080.0)
$UItransp = 0.75
[Preset]
category = Resolution
name = 1680x1050 (16:10) - UI 25% transp
$width = 1680
$height = 1050
@ -731,6 +821,7 @@ $UIAspectY = ( 1680.0 / 1050.0 ) / (1920.0 / 1080.0)
$UItransp = 0.75
[Preset]
category = Resolution
name = 1920x1200 (16:10) - UI 25% transp
$width = 1920
$height = 1200
@ -746,6 +837,7 @@ $UIAspectY = ( 1920.0 / 1200.0 ) / (1920.0 / 1080.0)
$UItransp = 0.75
[Preset]
category = Resolution
name = 2560x1600 (16:10) - UI 25% transp
$width = 2560
$height = 1600
@ -761,6 +853,7 @@ $UIAspectY = ( 2560.0 / 1600.0 ) / (1920.0 / 1080.0)
$UItransp = 0.75
[Preset]
category = Resolution
name = 2880x1800 (16:10) - UI 25% transp
$width = 2880
$height = 1800
@ -776,6 +869,7 @@ $UIAspectY = ( 2880.0 / 1800.0 ) / (1920.0 / 1080.0)
$UItransp = 0.75
[Preset]
category = Resolution
name = 3840x2400 (16:10) - UI 25% transp
$width = 3840
$height = 2400
@ -791,6 +885,7 @@ $UIAspectY = ( 3840.0 / 2400.0 ) / (1920.0 / 1080.0)
$UItransp = 0.75
[Preset]
category = Resolution
name = 5120x3200 (16:10) - UI 25% transp
$width = 5120
$height = 3200
@ -806,6 +901,7 @@ $UIAspectY = ( 5120.0 / 3200.0 ) / (1920.0 / 1080.0)
$UItransp = 0.75
[Preset]
category = Resolution
name = -- 48:9 -- resolutions - UI 25% transp
$width = 5760
$height = 1080
@ -821,6 +917,7 @@ $UIAspectY = 1.0
$UItransp = 0.75
[Preset]
category = Resolution
name = 5760x1080 (48:9) - UI 25% transp
$width = 5760
$height = 1080
@ -836,6 +933,7 @@ $UIAspectY = 1.0
$UItransp = 0.75
[Preset]
category = Resolution
name = 7680x1440 (48:9) - UI 25% transp
$width = 7680
$height = 1440
@ -851,6 +949,7 @@ $UIAspectY = 1.0
$UItransp = 0.75
[Preset] # Should work fine on a 1070 and fixes most of horizontal shimmering
category = Resolution
name = --- SSAA vert res x2 - Set scaling to Stretch
$width = 1920
$height = 2160
@ -866,6 +965,7 @@ $UIAspectY = 1.0
$UItransp = 0.75
[Preset]
category = Resolution
name = 1920x2160 (Vertical x2) - UI 25% transp
$width = 1920
$height = 2160
@ -881,6 +981,7 @@ $UIAspectY = 1.0
$UItransp = 0.75
[Preset]
category = Resolution
name = 2560x2880 (Vertical x2 - 0.75 sub scaling) - UI 25% transp
$width = 2560
$height = 2880
@ -896,6 +997,7 @@ $UIAspectY = 1.0
$UItransp = 0.75
[Preset] #
category = Resolution
name = 3840x4320 (Vertical x2 - 0.5 sub scaling) - UI 25% transp
$width = 3840
$height = 4320
@ -911,6 +1013,7 @@ $UIAspectY = 1.0
$UItransp = 0.75
[Preset]
category = Resolution
name = 2560x2160 (21:9 Vertical x2) - UI 25% transp
$width = 2560
$height = 2160
@ -926,6 +1029,7 @@ $UIAspectY = 1.0
$UItransp = 0.75
[Preset]
category = Resolution
name = 3440x2880 (21:9 Vertical x2 - 0.75 sub scaling) - UI 25% transp
$width = 3440
$height = 2880
@ -941,6 +1045,7 @@ $UIAspectY = 1.0
$UItransp = 0.75
[Preset]
category = Resolution
name = 5760x1080 (48:9 Vertical x2 - 0.5 sub scaling) - UI 25% transp
$width = 5760
$height = 2160
@ -955,6 +1060,52 @@ $UIAspectX = ( 1920.0 / 1080.0 ) / ( 5760.0 / 1080.0 )
$UIAspectY = 1.0
$UItransp = 0.75
[Preset]
category = Anisotropic Filtering
name = 1x (Default)
[Preset]
category = Anisotropic Filtering
name = 2x
$anisoLevel = 2
[Preset]
category = Anisotropic Filtering
name = 4x
$anisoLevel = 4
[Preset]
category = Anisotropic Filtering
name = 8x
$anisoLevel = 8
[Preset]
category = Anisotropic Filtering
name = 16x (Recommended)
$anisoLevel = 16
[Preset]
category = Anisotropic Filtering
name = 32x (Overkill)
$anisoLevel = 32
[Preset]
category = Anti-Aliasing
name = Enable
$AAEnable:int = 1
[Preset]
category = Anti-Aliasing
name = Disable
$AAEnable:int = 0
[TextureRedefine]
formats = 0x31,0x32,0x33,0x34,0x35,0x431,0x432,0x433,0x434,0x435
overwriteAnisotropy = $anisoLevel
[TextureRedefine]
width = 1920
height = 1088

View file

@ -0,0 +1,67 @@
#version 430
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
// shader 7d7d874efcc7ba4b: textbox continue icon
#ifdef VULKAN
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.z, 1.0/gl_FragCoord.w)
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
#endif
#ifdef VULKAN
layout(set = 1, binding = 1) uniform ufBlock
{
uniform vec4 uf_fragCoordScale;
};
#else
uniform vec2 uf_fragCoordScale;
#endif
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0;
layout(location = 0) in vec4 passParameterSem0;
layout(location = 1) in vec4 passParameterSem1;
layout(location = 0) out vec4 passPixelColor0;
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);
float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f;
float PV0fx = 0.0, PV0fy = 0.0, PV0fz = 0.0, PV0fw = 0.0, PV1fx = 0.0, PV1fy = 0.0, PV1fz = 0.0, PV1fw = 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;
R0f = passParameterSem0;
R1f = passParameterSem1;
R1f.xyzw = (texture(textureUnitPS0, vec2(R1f.x,R1f.y)).xyzw);
// 0
R0f.x = mul_nonIEEE(R0f.x, R1f.x);
R0f.x = clamp(R0f.x, 0.0, 1.0);
R0f.y = mul_nonIEEE(R0f.y, R1f.y);
R0f.y = clamp(R0f.y, 0.0, 1.0);
R0f.z = mul_nonIEEE(R0f.z, R1f.z);
R0f.z = clamp(R0f.z, 0.0, 1.0);
R0f.w = mul_nonIEEE(R0f.w, R1f.w);
R0f.w = clamp(R0f.w, 0.0, 1.0);
// export
passPixelColor0 = vec4(R0f.x, R0f.y, R0f.z, 0.0);
}

View file

@ -0,0 +1,115 @@
#version 430
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
// shader d80a321ea97e9415: text shadow
#ifdef VULKAN
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.z, 1.0/gl_FragCoord.w)
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
#endif
#ifdef VULKAN
layout(set = 1, binding = 1) uniform ufBlock
{
uniform ivec4 uf_remappedPS[2];
uniform vec4 uf_fragCoordScale;
};
#else
uniform ivec4 uf_remappedPS[2];
uniform vec2 uf_fragCoordScale;
#endif
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0;
layout(location = 0) in vec4 passParameterSem0;
layout(location = 1) in vec4 passParameterSem2;
layout(location = 0) out vec4 passPixelColor0;
int clampFI32(int v)
{
if( v == 0x7FFFFFFF )
return floatBitsToInt(1.0);
else if( v == 0xFFFFFFFF )
return floatBitsToInt(0.0);
return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0));
}
float mul_nonIEEE(float a, float b){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 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;
float PV0fx = 0.0, PV0fy = 0.0, PV0fz = 0.0, PV0fw = 0.0, PV1fx = 0.0, PV1fy = 0.0, PV1fz = 0.0, PV1fw = 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;
R0f = passParameterSem0;
R1f = passParameterSem2;
R1f.xyzw = (texture(textureUnitPS0, vec2(R1f.x,R1f.y)).xyzw);
// 0
PV0fx = intBitsToFloat(uf_remappedPS[0].w) * 0.99609375;
PV0fy = intBitsToFloat(uf_remappedPS[0].z) * 0.99609375;
PV0fz = intBitsToFloat(uf_remappedPS[0].y) * 0.99609375;
PV0fw = intBitsToFloat(uf_remappedPS[0].x) * 0.99609375;
// 1
PV1fx = fract(PV0fw);
R127f.y = fract(PV0fx);
R127f.z = fract(PV0fy);
PV1fw = fract(PV0fz);
R127f.w = intBitsToFloat(uf_remappedPS[1].x) * 0.99609375;
// 2
R127f.x = intBitsToFloat(uf_remappedPS[1].w) * 0.99609375;
PV0fy = intBitsToFloat(uf_remappedPS[1].z) * 0.99609375;
PV0fz = intBitsToFloat(uf_remappedPS[1].y) * 0.99609375;
R126f.w = PV1fx * intBitsToFloat(0x3f808081);
R126f.x = PV1fw * intBitsToFloat(0x3f808081);
// 3
R125f.x = R127f.y * intBitsToFloat(0x3f808081);
PV1fy = fract(R127f.w);
PV1fz = fract(PV0fz);
R127f.w = R127f.z * intBitsToFloat(0x3f808081);
PS1f = fract(PV0fy);
// 4
PV0fx = fract(R127f.x);
R123f.y = PS1f * intBitsToFloat(0x3f808081) + -(R127f.w);
R123f.z = PV1fz * intBitsToFloat(0x3f808081) + -(R126f.x);
R123f.w = PV1fy * intBitsToFloat(0x3f808081) + -(R126f.w);
// 5
backupReg0f = R123f.y;
backupReg1f = R123f.z;
R123f.x = mul_nonIEEE(R123f.w,R1f.x) + R126f.w;
R123f.x = clamp(R123f.x, 0.0, 1.0);
R123f.y = PV0fx * intBitsToFloat(0x3f808081) + -(R125f.x);
R123f.z = mul_nonIEEE(backupReg0f,R1f.z) + R127f.w;
R123f.z = clamp(R123f.z, 0.0, 1.0);
R123f.w = mul_nonIEEE(backupReg1f,R1f.y) + R126f.x;
R123f.w = clamp(R123f.w, 0.0, 1.0);
// 6
backupReg0f = R123f.x;
R123f.x = mul_nonIEEE(R123f.y,R1f.w) + R125f.x;
R123f.x = clamp(R123f.x, 0.0, 1.0);
R1f.y = mul_nonIEEE(R0f.y, R123f.w);
R1f.y = clamp(R1f.y, 0.0, 1.0);
R1f.z = mul_nonIEEE(R0f.z, R123f.z);
R1f.z = clamp(R1f.z, 0.0, 1.0);
R1f.x = mul_nonIEEE(R0f.x, backupReg0f);
R1f.x = clamp(R1f.x, 0.0, 1.0);
// 7
R1f.w = mul_nonIEEE(R0f.w, R123f.x);
R1f.w = clamp(R1f.w, 0.0, 1.0);
// export
passPixelColor0 = vec4(R1f.x, R1f.y, R1f.z, 0.0);
}

View file

@ -3,4 +3,5 @@ titleIds = 000500001019E500,000500001019E600,000500001019C800
name = Remove HUD
path = "The Legend of Zelda: Twilight Princess HD/Mods/Remove HUD (breaks menus)"
description = Hides the HUD elements like the hearts, controller buttons and rupees count.|You should only enable this graphic pack when you want to make a screenshot without the HUD.
version = 7
#Credits: Crementif, KoB-Kirito
version = 7

View file

@ -0,0 +1,9 @@
[TwilightPrincessHD_RemoveHaze]
moduleMatches = 0x1A03E108, 0xA3175EEA ; v81(EU/NA), v82(JP)
;##exp and haze settings
0x100C3EB8 = .float $nearExp ; Near world (over)exposure
0x100C36C4 = .float $bloomExp ; Bloom npc/object (over) "
0x100C3780 = .float $distExp ; Distant world (over)exposure
;0x100C3774 = .float $distanceFog
0x1012C898 = .float $distanceFog
;0x100871C8 = .float 0.01 ;100871C8:.float 0.00050000002 ;cloud float

View file

@ -2,16 +2,19 @@
titleIds = 000500001019C800,000500001019E600,000500001019E500
name = Distant Fog
path = "The Legend of Zelda: Twilight Princess HD/Mods/Distant Fog"
description = Sets the depth and exposure of distant fog. Possible issues with disappearing objects. Made by getdls.
version = 4
description = Sets the depth and exposure of distant fog. Possible issues with disappearing objects.|Made by getdls.
#Credits: getdls
version = 6
[Preset]
name = Default
[Default]
$distanceFog = 21.0
$nearExp = 0.0039
$bloomExp = 0.0039
$distExp = 0.0039
[Preset]
name = Default
[Preset]
name = Half-distant fog
$distanceFog = 22.0