From a12e7da0e26728f5dedb83b1b41105702854123b Mon Sep 17 00:00:00 2001 From: Alex Chirila Date: Thu, 12 Oct 2017 09:28:24 +0300 Subject: [PATCH] [BOTW] Antialiasing restoration v2 code cleanup --- .../0bcd653c18367d59_0000000000000000_vs.txt | 22 ++++++++++------- .../1a14de8e58d5b30a_0000000000000000_vs.txt | 18 ++++++++------ .../4721609a424e9a1f_0000000000000000_vs.txt | 18 ++++++++------ .../0bcd653c18367d59_0000000000000000_vs.txt | 22 ++++++++++------- .../1a14de8e58d5b30a_0000000000000000_vs.txt | 18 ++++++++------ .../4721609a424e9a1f_0000000000000000_vs.txt | 18 ++++++++------ .../0bcd653c18367d59_0000000000000000_vs.txt | 22 ++++++++++------- .../1a14de8e58d5b30a_0000000000000000_vs.txt | 18 ++++++++------ .../4721609a424e9a1f_0000000000000000_vs.txt | 18 ++++++++------ .../0bcd653c18367d59_0000000000000000_vs.txt | 22 ++++++++++------- .../1a14de8e58d5b30a_0000000000000000_vs.txt | 18 ++++++++------ .../4721609a424e9a1f_0000000000000000_vs.txt | 18 ++++++++------ .../0bcd653c18367d59_0000000000000000_vs.txt | 24 +++++++++++-------- .../1a14de8e58d5b30a_0000000000000000_vs.txt | 18 ++++++++------ .../4721609a424e9a1f_0000000000000000_vs.txt | 18 ++++++++------ .../0bcd653c18367d59_0000000000000000_vs.txt | 22 ++++++++++------- .../1a14de8e58d5b30a_0000000000000000_vs.txt | 18 ++++++++------ .../4721609a424e9a1f_0000000000000000_vs.txt | 18 ++++++++------ .../0bcd653c18367d59_0000000000000000_vs.txt | 22 ++++++++++------- .../1a14de8e58d5b30a_0000000000000000_vs.txt | 18 ++++++++------ .../4721609a424e9a1f_0000000000000000_vs.txt | 18 ++++++++------ .../0bcd653c18367d59_0000000000000000_vs.txt | 22 ++++++++++------- .../1a14de8e58d5b30a_0000000000000000_vs.txt | 18 ++++++++------ .../4721609a424e9a1f_0000000000000000_vs.txt | 18 ++++++++------ .../0bcd653c18367d59_0000000000000000_vs.txt | 22 ++++++++++------- .../1a14de8e58d5b30a_0000000000000000_vs.txt | 18 ++++++++------ .../4721609a424e9a1f_0000000000000000_vs.txt | 18 ++++++++------ .../0bcd653c18367d59_0000000000000000_vs.txt | 22 ++++++++++------- .../1a14de8e58d5b30a_0000000000000000_vs.txt | 18 ++++++++------ .../4721609a424e9a1f_0000000000000000_vs.txt | 18 ++++++++------ .../0bcd653c18367d59_0000000000000000_vs.txt | 22 ++++++++++------- .../1a14de8e58d5b30a_0000000000000000_vs.txt | 18 ++++++++------ .../4721609a424e9a1f_0000000000000000_vs.txt | 18 ++++++++------ 33 files changed, 386 insertions(+), 254 deletions(-) diff --git a/Enthusiast/BreathOfTheWild_2880p/0bcd653c18367d59_0000000000000000_vs.txt b/Enthusiast/BreathOfTheWild_2880p/0bcd653c18367d59_0000000000000000_vs.txt index ad1d32d5..c5bc78d6 100644 --- a/Enthusiast/BreathOfTheWild_2880p/0bcd653c18367d59_0000000000000000_vs.txt +++ b/Enthusiast/BreathOfTheWild_2880p/0bcd653c18367d59_0000000000000000_vs.txt @@ -2,7 +2,11 @@ #extension GL_ARB_texture_gather : enable #extension GL_ARB_shading_language_packing : enable // shader 0bcd653c18367d59 -// TAA restore +// AARestore v2 - restores native aa in game +// original shader dumped using cemu 1.10.0f, BotW 1.3.1 +const float resXScale = 4.0; +const float resYScale = 4.0; + uniform ivec4 uf_remappedVS[5]; uniform vec2 uf_windowSpaceToClipSpaceTransform; layout(binding = 32) uniform sampler2D textureUnitVS0;// Tex0 addr 0x3db8b000 res 12x1x1 dim 1 tm: 2 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler18 ClampX/Y/Z: 2 2 2 border: 1 @@ -139,9 +143,9 @@ PS0i = R127i.y; R127i.x = floatBitsToInt(-(intBitsToFloat(R6i.y))); R127i.x = floatBitsToInt(intBitsToFloat(R127i.x) / 2.0); R126i.y = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(R4i.w)); -PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(uf_remappedVS[4].w)/4.0); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(uf_remappedVS[4].w)/resYScale); PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(R3i.x)); -R127i.w = floatBitsToInt(intBitsToFloat(R7i.z) + intBitsToFloat(uf_remappedVS[4].z)/4.0); +R127i.w = floatBitsToInt(intBitsToFloat(R7i.z) + intBitsToFloat(uf_remappedVS[4].z)/resXScale); PS1i = R127i.w; // 2 backupReg0i = R127i.y; @@ -149,26 +153,26 @@ R125i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(R126i.x)); R127i.y = floatBitsToInt(intBitsToFloat(R5i.x) + intBitsToFloat(R125i.y)); R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.y), intBitsToFloat(PV1i.w))); R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.x),intBitsToFloat(R4i.w)) + intBitsToFloat(backupReg0i))); -R125i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/4.0); +R125i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/resXScale); PS0i = R125i.w; // 3 backupReg0i = R126i.y; backupReg1i = R127i.x; -R127i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[4].w)/4.0)); +R127i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[4].w)/resYScale)); R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.x), intBitsToFloat(backupReg0i))); R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R3i.x)) + intBitsToFloat(backupReg1i))); -R124i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*4.0); +R124i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*resXScale); R124i.w = floatBitsToInt(intBitsToFloat(R124i.w) / 2.0); -R125i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*4.0); +R125i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*resYScale); R125i.z = floatBitsToInt(intBitsToFloat(R125i.z) / 2.0); PS1i = R125i.z; // 4 backupReg0i = R126i.x; backupReg1i = R127i.w; backupReg2i = R127i.y; -R126i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/4.0); +R126i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/resYScale); R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) * 2.0); -R127i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/4.0); +R127i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/resXScale); R127i.y = floatBitsToInt(intBitsToFloat(R127i.y) * 2.0); R124i.z = floatBitsToInt(intBitsToFloat(R5i.y) + intBitsToFloat(backupReg0i)); R127i.w = floatBitsToInt(intBitsToFloat(backupReg1i) + intBitsToFloat(R125i.y)); diff --git a/Enthusiast/BreathOfTheWild_2880p/1a14de8e58d5b30a_0000000000000000_vs.txt b/Enthusiast/BreathOfTheWild_2880p/1a14de8e58d5b30a_0000000000000000_vs.txt index 0ec527a2..d9a8f3cb 100644 --- a/Enthusiast/BreathOfTheWild_2880p/1a14de8e58d5b30a_0000000000000000_vs.txt +++ b/Enthusiast/BreathOfTheWild_2880p/1a14de8e58d5b30a_0000000000000000_vs.txt @@ -2,7 +2,11 @@ #extension GL_ARB_texture_gather : enable #extension GL_ARB_shading_language_packing : enable // shader 1a14de8e58d5b30a -// TAA restore +// AARestore v2 - restores native aa in game +// original shader dumped using cemu 1.10.0f, BotW 1.3.1 +const float resXScale = 4.0; +const float resYScale = 4.0; + uniform ivec4 uf_remappedVS[5]; uniform vec2 uf_windowSpaceToClipSpaceTransform; layout(binding = 32) uniform sampler2D textureUnitVS0;// Tex0 addr 0x3db8b000 res 12x1x1 dim 1 tm: 2 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler18 ClampX/Y/Z: 2 2 2 border: 1 @@ -141,7 +145,7 @@ R126i.x = floatBitsToInt(intBitsToFloat(R126i.z) + -(0.5)); PV0i.x = R126i.x; PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.x))); PV0i.y = floatBitsToInt(intBitsToFloat(PV0i.y) / 2.0); -PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(uf_remappedVS[4].w)/4.0); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(uf_remappedVS[4].w)/resYScale); R127i.w = floatBitsToInt(-(intBitsToFloat(PV1i.y))); R127i.w = floatBitsToInt(intBitsToFloat(R127i.w) / 2.0); R127i.y = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(R127i.x)); @@ -150,7 +154,7 @@ PS0i = R127i.y; PV1i.x = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(R126i.z)); R125i.y = floatBitsToInt(intBitsToFloat(R5i.x) + intBitsToFloat(R126i.y)); R127i.z = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(PV0i.x)); -R126i.w = floatBitsToInt(intBitsToFloat(R1i.z) + intBitsToFloat(uf_remappedVS[4].z)/4.0); +R126i.w = floatBitsToInt(intBitsToFloat(R1i.z) + intBitsToFloat(uf_remappedVS[4].z)/resXScale); R125i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.x),intBitsToFloat(R127i.x)) + intBitsToFloat(PV0i.y))); PS1i = R125i.w; // 4 @@ -159,18 +163,18 @@ backupReg1i = R126i.z; R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(PV1i.x))); R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(backupReg0i))); R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y),intBitsToFloat(backupReg1i)) + intBitsToFloat(R127i.w))); -R127i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*4.0); +R127i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*resXScale); R127i.w = floatBitsToInt(intBitsToFloat(R127i.w) / 2.0); -R125i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*4.0); +R125i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*resYScale); R125i.z = floatBitsToInt(intBitsToFloat(R125i.z) / 2.0); PS0i = R125i.z; // 5 backupReg0i = R126i.x; backupReg1i = R126i.w; backupReg2i = R126i.y; -R126i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/4.0); +R126i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/resYScale); R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) * 2.0); -R126i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/4.0); +R126i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/resXScale); R126i.y = floatBitsToInt(intBitsToFloat(R126i.y) * 2.0); R124i.z = floatBitsToInt(intBitsToFloat(R5i.y) + intBitsToFloat(backupReg0i)); R126i.w = floatBitsToInt(intBitsToFloat(backupReg1i) + intBitsToFloat(backupReg2i)); diff --git a/Enthusiast/BreathOfTheWild_2880p/4721609a424e9a1f_0000000000000000_vs.txt b/Enthusiast/BreathOfTheWild_2880p/4721609a424e9a1f_0000000000000000_vs.txt index 3508611f..d63cbbc0 100644 --- a/Enthusiast/BreathOfTheWild_2880p/4721609a424e9a1f_0000000000000000_vs.txt +++ b/Enthusiast/BreathOfTheWild_2880p/4721609a424e9a1f_0000000000000000_vs.txt @@ -2,7 +2,11 @@ #extension GL_ARB_texture_gather : enable #extension GL_ARB_shading_language_packing : enable // shader 4721609a424e9a1f -// TAA restore +// AARestore v2 - restores native aa in game +// original shader dumped using cemu 1.10.0f, BotW 1.3.1 +const float resXScale = 4.0; +const float resYScale = 4.0; + uniform ivec4 uf_remappedVS[5]; uniform vec2 uf_windowSpaceToClipSpaceTransform; layout(binding = 32) uniform sampler2D textureUnitVS0;// Tex0 addr 0x3db8b000 res 12x1x1 dim 1 tm: 2 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler18 ClampX/Y/Z: 2 2 2 border: 1 @@ -135,25 +139,25 @@ PS0i = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(R4i.w)); // 1 PV1i.x = floatBitsToInt(intBitsToFloat(R3i.x) + intBitsToFloat(R4i.x)); R126i.y = floatBitsToInt(intBitsToFloat(R5i.x) + intBitsToFloat(R3i.y)); -PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(uf_remappedVS[4].w)/4.0); -R127i.w = floatBitsToInt(intBitsToFloat(R6i.z) + intBitsToFloat(uf_remappedVS[4].z)/4.0); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(uf_remappedVS[4].w)/resYScale); +R127i.w = floatBitsToInt(intBitsToFloat(R6i.z) + intBitsToFloat(uf_remappedVS[4].z)/resXScale); R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(PS0i))); PS1i = R127i.y; // 2 PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(R127i.x)); R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV1i.x))); -R126i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*4.0); +R126i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*resYScale); R126i.z = floatBitsToInt(intBitsToFloat(R126i.z) / 2.0); -R126i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*4.0); +R126i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*resXScale); R126i.w = floatBitsToInt(intBitsToFloat(R126i.w) / 2.0); -R124i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/4.0); +R124i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/resXScale); R124i.y = floatBitsToInt(intBitsToFloat(R124i.y) * 2.0); PS0i = R124i.y; // 3 backupReg0i = R127i.x; backupReg1i = R127i.w; backupReg2i = R127i.y; -R127i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/4.0); +R127i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/resYScale); R127i.x = floatBitsToInt(intBitsToFloat(R127i.x) * 2.0); R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV0i.x))); PV1i.z = floatBitsToInt(intBitsToFloat(R5i.y) + intBitsToFloat(backupReg0i)); diff --git a/Enthusiast/BreathOfTheWild_4320p/0bcd653c18367d59_0000000000000000_vs.txt b/Enthusiast/BreathOfTheWild_4320p/0bcd653c18367d59_0000000000000000_vs.txt index 3cc2f410..810af786 100644 --- a/Enthusiast/BreathOfTheWild_4320p/0bcd653c18367d59_0000000000000000_vs.txt +++ b/Enthusiast/BreathOfTheWild_4320p/0bcd653c18367d59_0000000000000000_vs.txt @@ -2,7 +2,11 @@ #extension GL_ARB_texture_gather : enable #extension GL_ARB_shading_language_packing : enable // shader 0bcd653c18367d59 -// TAA restore +// AARestore v2 - restores native aa in game +// original shader dumped using cemu 1.10.0f, BotW 1.3.1 +const float resXScale = 6.0; +const float resYScale = 6.0; + uniform ivec4 uf_remappedVS[5]; uniform vec2 uf_windowSpaceToClipSpaceTransform; layout(binding = 32) uniform sampler2D textureUnitVS0;// Tex0 addr 0x3db8b000 res 12x1x1 dim 1 tm: 2 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler18 ClampX/Y/Z: 2 2 2 border: 1 @@ -139,9 +143,9 @@ PS0i = R127i.y; R127i.x = floatBitsToInt(-(intBitsToFloat(R6i.y))); R127i.x = floatBitsToInt(intBitsToFloat(R127i.x) / 2.0); R126i.y = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(R4i.w)); -PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(uf_remappedVS[4].w)/6.0); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(uf_remappedVS[4].w)/resYScale); PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(R3i.x)); -R127i.w = floatBitsToInt(intBitsToFloat(R7i.z) + intBitsToFloat(uf_remappedVS[4].z)/6.0); +R127i.w = floatBitsToInt(intBitsToFloat(R7i.z) + intBitsToFloat(uf_remappedVS[4].z)/resXScale); PS1i = R127i.w; // 2 backupReg0i = R127i.y; @@ -149,26 +153,26 @@ R125i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(R126i.x)); R127i.y = floatBitsToInt(intBitsToFloat(R5i.x) + intBitsToFloat(R125i.y)); R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.y), intBitsToFloat(PV1i.w))); R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.x),intBitsToFloat(R4i.w)) + intBitsToFloat(backupReg0i))); -R125i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/6.0); +R125i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/resXScale); PS0i = R125i.w; // 3 backupReg0i = R126i.y; backupReg1i = R127i.x; -R127i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[4].w)/6.0)); +R127i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[4].w)/resYScale)); R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.x), intBitsToFloat(backupReg0i))); R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R3i.x)) + intBitsToFloat(backupReg1i))); -R124i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*6.0); +R124i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*resXScale); R124i.w = floatBitsToInt(intBitsToFloat(R124i.w) / 2.0); -R125i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*6.0); +R125i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*resYScale); R125i.z = floatBitsToInt(intBitsToFloat(R125i.z) / 2.0); PS1i = R125i.z; // 4 backupReg0i = R126i.x; backupReg1i = R127i.w; backupReg2i = R127i.y; -R126i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/6.0); +R126i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/resYScale); R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) * 2.0); -R127i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/6.0); +R127i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/resXScale); R127i.y = floatBitsToInt(intBitsToFloat(R127i.y) * 2.0); R124i.z = floatBitsToInt(intBitsToFloat(R5i.y) + intBitsToFloat(backupReg0i)); R127i.w = floatBitsToInt(intBitsToFloat(backupReg1i) + intBitsToFloat(R125i.y)); diff --git a/Enthusiast/BreathOfTheWild_4320p/1a14de8e58d5b30a_0000000000000000_vs.txt b/Enthusiast/BreathOfTheWild_4320p/1a14de8e58d5b30a_0000000000000000_vs.txt index 858b2ce3..0aafd8bf 100644 --- a/Enthusiast/BreathOfTheWild_4320p/1a14de8e58d5b30a_0000000000000000_vs.txt +++ b/Enthusiast/BreathOfTheWild_4320p/1a14de8e58d5b30a_0000000000000000_vs.txt @@ -2,7 +2,11 @@ #extension GL_ARB_texture_gather : enable #extension GL_ARB_shading_language_packing : enable // shader 1a14de8e58d5b30a -// TAA restore +// AARestore v2 - restores native aa in game +// original shader dumped using cemu 1.10.0f, BotW 1.3.1 +const float resXScale = 6.0; +const float resYScale = 6.0; + uniform ivec4 uf_remappedVS[5]; uniform vec2 uf_windowSpaceToClipSpaceTransform; layout(binding = 32) uniform sampler2D textureUnitVS0;// Tex0 addr 0x3db8b000 res 12x1x1 dim 1 tm: 2 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler18 ClampX/Y/Z: 2 2 2 border: 1 @@ -141,7 +145,7 @@ R126i.x = floatBitsToInt(intBitsToFloat(R126i.z) + -(0.5)); PV0i.x = R126i.x; PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.x))); PV0i.y = floatBitsToInt(intBitsToFloat(PV0i.y) / 2.0); -PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(uf_remappedVS[4].w)/6.0); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(uf_remappedVS[4].w)/resYScale); R127i.w = floatBitsToInt(-(intBitsToFloat(PV1i.y))); R127i.w = floatBitsToInt(intBitsToFloat(R127i.w) / 2.0); R127i.y = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(R127i.x)); @@ -150,7 +154,7 @@ PS0i = R127i.y; PV1i.x = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(R126i.z)); R125i.y = floatBitsToInt(intBitsToFloat(R5i.x) + intBitsToFloat(R126i.y)); R127i.z = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(PV0i.x)); -R126i.w = floatBitsToInt(intBitsToFloat(R1i.z) + intBitsToFloat(uf_remappedVS[4].z)/6.0); +R126i.w = floatBitsToInt(intBitsToFloat(R1i.z) + intBitsToFloat(uf_remappedVS[4].z)/resXScale); R125i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.x),intBitsToFloat(R127i.x)) + intBitsToFloat(PV0i.y))); PS1i = R125i.w; // 4 @@ -159,18 +163,18 @@ backupReg1i = R126i.z; R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(PV1i.x))); R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(backupReg0i))); R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y),intBitsToFloat(backupReg1i)) + intBitsToFloat(R127i.w))); -R127i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*6.0); +R127i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*resXScale); R127i.w = floatBitsToInt(intBitsToFloat(R127i.w) / 2.0); -R125i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*6.0); +R125i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*resYScale); R125i.z = floatBitsToInt(intBitsToFloat(R125i.z) / 2.0); PS0i = R125i.z; // 5 backupReg0i = R126i.x; backupReg1i = R126i.w; backupReg2i = R126i.y; -R126i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/6.0); +R126i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/resYScale); R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) * 2.0); -R126i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/6.0); +R126i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/resXScale); R126i.y = floatBitsToInt(intBitsToFloat(R126i.y) * 2.0); R124i.z = floatBitsToInt(intBitsToFloat(R5i.y) + intBitsToFloat(backupReg0i)); R126i.w = floatBitsToInt(intBitsToFloat(backupReg1i) + intBitsToFloat(backupReg2i)); diff --git a/Enthusiast/BreathOfTheWild_4320p/4721609a424e9a1f_0000000000000000_vs.txt b/Enthusiast/BreathOfTheWild_4320p/4721609a424e9a1f_0000000000000000_vs.txt index 928fd1e6..2102b08a 100644 --- a/Enthusiast/BreathOfTheWild_4320p/4721609a424e9a1f_0000000000000000_vs.txt +++ b/Enthusiast/BreathOfTheWild_4320p/4721609a424e9a1f_0000000000000000_vs.txt @@ -2,7 +2,11 @@ #extension GL_ARB_texture_gather : enable #extension GL_ARB_shading_language_packing : enable // shader 4721609a424e9a1f -// TAA restore +// AARestore v2 - restores native aa in game +// original shader dumped using cemu 1.10.0f, BotW 1.3.1 +const float resXScale = 6.0; +const float resYScale = 6.0; + uniform ivec4 uf_remappedVS[5]; uniform vec2 uf_windowSpaceToClipSpaceTransform; layout(binding = 32) uniform sampler2D textureUnitVS0;// Tex0 addr 0x3db8b000 res 12x1x1 dim 1 tm: 2 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler18 ClampX/Y/Z: 2 2 2 border: 1 @@ -135,25 +139,25 @@ PS0i = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(R4i.w)); // 1 PV1i.x = floatBitsToInt(intBitsToFloat(R3i.x) + intBitsToFloat(R4i.x)); R126i.y = floatBitsToInt(intBitsToFloat(R5i.x) + intBitsToFloat(R3i.y)); -PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(uf_remappedVS[4].w)/6.0); -R127i.w = floatBitsToInt(intBitsToFloat(R6i.z) + intBitsToFloat(uf_remappedVS[4].z)/6.0); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(uf_remappedVS[4].w)/resYScale); +R127i.w = floatBitsToInt(intBitsToFloat(R6i.z) + intBitsToFloat(uf_remappedVS[4].z)/resXScale); R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(PS0i))); PS1i = R127i.y; // 2 PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(R127i.x)); R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV1i.x))); -R126i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*6.0); +R126i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*resYScale); R126i.z = floatBitsToInt(intBitsToFloat(R126i.z) / 2.0); -R126i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*6.0); +R126i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*resXScale); R126i.w = floatBitsToInt(intBitsToFloat(R126i.w) / 2.0); -R124i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/6.0); +R124i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/resXScale); R124i.y = floatBitsToInt(intBitsToFloat(R124i.y) * 2.0); PS0i = R124i.y; // 3 backupReg0i = R127i.x; backupReg1i = R127i.w; backupReg2i = R127i.y; -R127i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/6.0); +R127i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/resYScale); R127i.x = floatBitsToInt(intBitsToFloat(R127i.x) * 2.0); R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV0i.x))); PV1i.z = floatBitsToInt(intBitsToFloat(R5i.y) + intBitsToFloat(backupReg0i)); diff --git a/Enthusiast/BreathOfTheWild_5760p/0bcd653c18367d59_0000000000000000_vs.txt b/Enthusiast/BreathOfTheWild_5760p/0bcd653c18367d59_0000000000000000_vs.txt index e67f4965..3ad71857 100644 --- a/Enthusiast/BreathOfTheWild_5760p/0bcd653c18367d59_0000000000000000_vs.txt +++ b/Enthusiast/BreathOfTheWild_5760p/0bcd653c18367d59_0000000000000000_vs.txt @@ -2,7 +2,11 @@ #extension GL_ARB_texture_gather : enable #extension GL_ARB_shading_language_packing : enable // shader 0bcd653c18367d59 -// TAA restore +// AARestore v2 - restores native aa in game +// original shader dumped using cemu 1.10.0f, BotW 1.3.1 +const float resXScale = 8.0; +const float resYScale = 8.0; + uniform ivec4 uf_remappedVS[5]; uniform vec2 uf_windowSpaceToClipSpaceTransform; layout(binding = 32) uniform sampler2D textureUnitVS0;// Tex0 addr 0x3db8b000 res 12x1x1 dim 1 tm: 2 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler18 ClampX/Y/Z: 2 2 2 border: 1 @@ -139,9 +143,9 @@ PS0i = R127i.y; R127i.x = floatBitsToInt(-(intBitsToFloat(R6i.y))); R127i.x = floatBitsToInt(intBitsToFloat(R127i.x) / 2.0); R126i.y = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(R4i.w)); -PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(uf_remappedVS[4].w)/8.0); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(uf_remappedVS[4].w)/resYScale); PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(R3i.x)); -R127i.w = floatBitsToInt(intBitsToFloat(R7i.z) + intBitsToFloat(uf_remappedVS[4].z)/8.0); +R127i.w = floatBitsToInt(intBitsToFloat(R7i.z) + intBitsToFloat(uf_remappedVS[4].z)/resXScale); PS1i = R127i.w; // 2 backupReg0i = R127i.y; @@ -149,26 +153,26 @@ R125i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(R126i.x)); R127i.y = floatBitsToInt(intBitsToFloat(R5i.x) + intBitsToFloat(R125i.y)); R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.y), intBitsToFloat(PV1i.w))); R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.x),intBitsToFloat(R4i.w)) + intBitsToFloat(backupReg0i))); -R125i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/8.0); +R125i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/resXScale); PS0i = R125i.w; // 3 backupReg0i = R126i.y; backupReg1i = R127i.x; -R127i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[4].w)/8.0)); +R127i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[4].w)/resYScale)); R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.x), intBitsToFloat(backupReg0i))); R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R3i.x)) + intBitsToFloat(backupReg1i))); -R124i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*8.0); +R124i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*resXScale); R124i.w = floatBitsToInt(intBitsToFloat(R124i.w) / 2.0); -R125i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*8.0); +R125i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*resYScale); R125i.z = floatBitsToInt(intBitsToFloat(R125i.z) / 2.0); PS1i = R125i.z; // 4 backupReg0i = R126i.x; backupReg1i = R127i.w; backupReg2i = R127i.y; -R126i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/8.0); +R126i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/resYScale); R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) * 2.0); -R127i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/8.0); +R127i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/resXScale); R127i.y = floatBitsToInt(intBitsToFloat(R127i.y) * 2.0); R124i.z = floatBitsToInt(intBitsToFloat(R5i.y) + intBitsToFloat(backupReg0i)); R127i.w = floatBitsToInt(intBitsToFloat(backupReg1i) + intBitsToFloat(R125i.y)); diff --git a/Enthusiast/BreathOfTheWild_5760p/1a14de8e58d5b30a_0000000000000000_vs.txt b/Enthusiast/BreathOfTheWild_5760p/1a14de8e58d5b30a_0000000000000000_vs.txt index 5d97162e..bca9128a 100644 --- a/Enthusiast/BreathOfTheWild_5760p/1a14de8e58d5b30a_0000000000000000_vs.txt +++ b/Enthusiast/BreathOfTheWild_5760p/1a14de8e58d5b30a_0000000000000000_vs.txt @@ -2,7 +2,11 @@ #extension GL_ARB_texture_gather : enable #extension GL_ARB_shading_language_packing : enable // shader 1a14de8e58d5b30a -// TAA restore +// AARestore v2 - restores native aa in game +// original shader dumped using cemu 1.10.0f, BotW 1.3.1 +const float resXScale = 8.0; +const float resYScale = 8.0; + uniform ivec4 uf_remappedVS[5]; uniform vec2 uf_windowSpaceToClipSpaceTransform; layout(binding = 32) uniform sampler2D textureUnitVS0;// Tex0 addr 0x3db8b000 res 12x1x1 dim 1 tm: 2 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler18 ClampX/Y/Z: 2 2 2 border: 1 @@ -141,7 +145,7 @@ R126i.x = floatBitsToInt(intBitsToFloat(R126i.z) + -(0.5)); PV0i.x = R126i.x; PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.x))); PV0i.y = floatBitsToInt(intBitsToFloat(PV0i.y) / 2.0); -PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(uf_remappedVS[4].w)/8.0); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(uf_remappedVS[4].w)/resYScale); R127i.w = floatBitsToInt(-(intBitsToFloat(PV1i.y))); R127i.w = floatBitsToInt(intBitsToFloat(R127i.w) / 2.0); R127i.y = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(R127i.x)); @@ -150,7 +154,7 @@ PS0i = R127i.y; PV1i.x = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(R126i.z)); R125i.y = floatBitsToInt(intBitsToFloat(R5i.x) + intBitsToFloat(R126i.y)); R127i.z = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(PV0i.x)); -R126i.w = floatBitsToInt(intBitsToFloat(R1i.z) + intBitsToFloat(uf_remappedVS[4].z)/8.0); +R126i.w = floatBitsToInt(intBitsToFloat(R1i.z) + intBitsToFloat(uf_remappedVS[4].z)/resXScale); R125i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.x),intBitsToFloat(R127i.x)) + intBitsToFloat(PV0i.y))); PS1i = R125i.w; // 4 @@ -159,18 +163,18 @@ backupReg1i = R126i.z; R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(PV1i.x))); R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(backupReg0i))); R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y),intBitsToFloat(backupReg1i)) + intBitsToFloat(R127i.w))); -R127i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*8.0); +R127i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*resXScale); R127i.w = floatBitsToInt(intBitsToFloat(R127i.w) / 2.0); -R125i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*8.0); +R125i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*resYScale); R125i.z = floatBitsToInt(intBitsToFloat(R125i.z) / 2.0); PS0i = R125i.z; // 5 backupReg0i = R126i.x; backupReg1i = R126i.w; backupReg2i = R126i.y; -R126i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/8.0); +R126i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/resYScale); R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) * 2.0); -R126i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/8.0); +R126i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/resXScale); R126i.y = floatBitsToInt(intBitsToFloat(R126i.y) * 2.0); R124i.z = floatBitsToInt(intBitsToFloat(R5i.y) + intBitsToFloat(backupReg0i)); R126i.w = floatBitsToInt(intBitsToFloat(backupReg1i) + intBitsToFloat(backupReg2i)); diff --git a/Enthusiast/BreathOfTheWild_5760p/4721609a424e9a1f_0000000000000000_vs.txt b/Enthusiast/BreathOfTheWild_5760p/4721609a424e9a1f_0000000000000000_vs.txt index 15756407..1eba95f1 100644 --- a/Enthusiast/BreathOfTheWild_5760p/4721609a424e9a1f_0000000000000000_vs.txt +++ b/Enthusiast/BreathOfTheWild_5760p/4721609a424e9a1f_0000000000000000_vs.txt @@ -2,7 +2,11 @@ #extension GL_ARB_texture_gather : enable #extension GL_ARB_shading_language_packing : enable // shader 4721609a424e9a1f -// TAA restore +// AARestore v2 - restores native aa in game +// original shader dumped using cemu 1.10.0f, BotW 1.3.1 +const float resXScale = 8.0; +const float resYScale = 8.0; + uniform ivec4 uf_remappedVS[5]; uniform vec2 uf_windowSpaceToClipSpaceTransform; layout(binding = 32) uniform sampler2D textureUnitVS0;// Tex0 addr 0x3db8b000 res 12x1x1 dim 1 tm: 2 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler18 ClampX/Y/Z: 2 2 2 border: 1 @@ -135,25 +139,25 @@ PS0i = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(R4i.w)); // 1 PV1i.x = floatBitsToInt(intBitsToFloat(R3i.x) + intBitsToFloat(R4i.x)); R126i.y = floatBitsToInt(intBitsToFloat(R5i.x) + intBitsToFloat(R3i.y)); -PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(uf_remappedVS[4].w)/8.0); -R127i.w = floatBitsToInt(intBitsToFloat(R6i.z) + intBitsToFloat(uf_remappedVS[4].z)/8.0); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(uf_remappedVS[4].w)/resYScale); +R127i.w = floatBitsToInt(intBitsToFloat(R6i.z) + intBitsToFloat(uf_remappedVS[4].z)/resXScale); R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(PS0i))); PS1i = R127i.y; // 2 PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(R127i.x)); R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV1i.x))); -R126i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*8.0); +R126i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*resYScale); R126i.z = floatBitsToInt(intBitsToFloat(R126i.z) / 2.0); -R126i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*8.0); +R126i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*resXScale); R126i.w = floatBitsToInt(intBitsToFloat(R126i.w) / 2.0); -R124i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/8.0); +R124i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/resXScale); R124i.y = floatBitsToInt(intBitsToFloat(R124i.y) * 2.0); PS0i = R124i.y; // 3 backupReg0i = R127i.x; backupReg1i = R127i.w; backupReg2i = R127i.y; -R127i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/8.0); +R127i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/resYScale); R127i.x = floatBitsToInt(intBitsToFloat(R127i.x) * 2.0); R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV0i.x))); PV1i.z = floatBitsToInt(intBitsToFloat(R5i.y) + intBitsToFloat(backupReg0i)); diff --git a/Quality/BreathOfTheWild_1080p/0bcd653c18367d59_0000000000000000_vs.txt b/Quality/BreathOfTheWild_1080p/0bcd653c18367d59_0000000000000000_vs.txt index 1aa8a10e..056a942a 100644 --- a/Quality/BreathOfTheWild_1080p/0bcd653c18367d59_0000000000000000_vs.txt +++ b/Quality/BreathOfTheWild_1080p/0bcd653c18367d59_0000000000000000_vs.txt @@ -2,7 +2,11 @@ #extension GL_ARB_texture_gather : enable #extension GL_ARB_shading_language_packing : enable // shader 0bcd653c18367d59 -// TAA restore +// AARestore v2 - restores native aa in game +// original shader dumped using cemu 1.10.0f, BotW 1.3.1 +const float resXScale = 1.5; +const float resYScale = 1.5; + uniform ivec4 uf_remappedVS[5]; uniform vec2 uf_windowSpaceToClipSpaceTransform; layout(binding = 32) uniform sampler2D textureUnitVS0;// Tex0 addr 0x3db8b000 res 12x1x1 dim 1 tm: 2 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler18 ClampX/Y/Z: 2 2 2 border: 1 @@ -139,9 +143,9 @@ PS0i = R127i.y; R127i.x = floatBitsToInt(-(intBitsToFloat(R6i.y))); R127i.x = floatBitsToInt(intBitsToFloat(R127i.x) / 2.0); R126i.y = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(R4i.w)); -PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(uf_remappedVS[4].w)/1.5); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(uf_remappedVS[4].w)/resYScale); PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(R3i.x)); -R127i.w = floatBitsToInt(intBitsToFloat(R7i.z) + intBitsToFloat(uf_remappedVS[4].z)/1.5); +R127i.w = floatBitsToInt(intBitsToFloat(R7i.z) + intBitsToFloat(uf_remappedVS[4].z)/resXScale); PS1i = R127i.w; // 2 backupReg0i = R127i.y; @@ -149,26 +153,26 @@ R125i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(R126i.x)); R127i.y = floatBitsToInt(intBitsToFloat(R5i.x) + intBitsToFloat(R125i.y)); R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.y), intBitsToFloat(PV1i.w))); R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.x),intBitsToFloat(R4i.w)) + intBitsToFloat(backupReg0i))); -R125i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/1.5); +R125i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/resXScale); PS0i = R125i.w; // 3 backupReg0i = R126i.y; backupReg1i = R127i.x; -R127i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[4].w)/1.5)); +R127i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[4].w)/resYScale)); R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.x), intBitsToFloat(backupReg0i))); R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R3i.x)) + intBitsToFloat(backupReg1i))); -R124i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*1.5); +R124i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*resXScale); R124i.w = floatBitsToInt(intBitsToFloat(R124i.w) / 2.0); -R125i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*1.5); +R125i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*resYScale); R125i.z = floatBitsToInt(intBitsToFloat(R125i.z) / 2.0); PS1i = R125i.z; // 4 backupReg0i = R126i.x; backupReg1i = R127i.w; backupReg2i = R127i.y; -R126i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/1.5); +R126i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/resYScale); R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) * 2.0); -R127i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/1.5); +R127i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/resXScale); R127i.y = floatBitsToInt(intBitsToFloat(R127i.y) * 2.0); R124i.z = floatBitsToInt(intBitsToFloat(R5i.y) + intBitsToFloat(backupReg0i)); R127i.w = floatBitsToInt(intBitsToFloat(backupReg1i) + intBitsToFloat(R125i.y)); diff --git a/Quality/BreathOfTheWild_1080p/1a14de8e58d5b30a_0000000000000000_vs.txt b/Quality/BreathOfTheWild_1080p/1a14de8e58d5b30a_0000000000000000_vs.txt index ae1b9090..4a5e2c84 100644 --- a/Quality/BreathOfTheWild_1080p/1a14de8e58d5b30a_0000000000000000_vs.txt +++ b/Quality/BreathOfTheWild_1080p/1a14de8e58d5b30a_0000000000000000_vs.txt @@ -2,7 +2,11 @@ #extension GL_ARB_texture_gather : enable #extension GL_ARB_shading_language_packing : enable // shader 1a14de8e58d5b30a -// TAA restore +// AARestore v2 - restores native aa in game +// original shader dumped using cemu 1.10.0f, BotW 1.3.1 +const float resXScale = 1.5; +const float resYScale = 1.5; + uniform ivec4 uf_remappedVS[5]; uniform vec2 uf_windowSpaceToClipSpaceTransform; layout(binding = 32) uniform sampler2D textureUnitVS0;// Tex0 addr 0x3db8b000 res 12x1x1 dim 1 tm: 2 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler18 ClampX/Y/Z: 2 2 2 border: 1 @@ -141,7 +145,7 @@ R126i.x = floatBitsToInt(intBitsToFloat(R126i.z) + -(0.5)); PV0i.x = R126i.x; PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.x))); PV0i.y = floatBitsToInt(intBitsToFloat(PV0i.y) / 2.0); -PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(uf_remappedVS[4].w)/1.5); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(uf_remappedVS[4].w)/resYScale); R127i.w = floatBitsToInt(-(intBitsToFloat(PV1i.y))); R127i.w = floatBitsToInt(intBitsToFloat(R127i.w) / 2.0); R127i.y = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(R127i.x)); @@ -150,7 +154,7 @@ PS0i = R127i.y; PV1i.x = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(R126i.z)); R125i.y = floatBitsToInt(intBitsToFloat(R5i.x) + intBitsToFloat(R126i.y)); R127i.z = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(PV0i.x)); -R126i.w = floatBitsToInt(intBitsToFloat(R1i.z) + intBitsToFloat(uf_remappedVS[4].z)/1.5); +R126i.w = floatBitsToInt(intBitsToFloat(R1i.z) + intBitsToFloat(uf_remappedVS[4].z)/resXScale); R125i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.x),intBitsToFloat(R127i.x)) + intBitsToFloat(PV0i.y))); PS1i = R125i.w; // 4 @@ -159,18 +163,18 @@ backupReg1i = R126i.z; R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(PV1i.x))); R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(backupReg0i))); R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y),intBitsToFloat(backupReg1i)) + intBitsToFloat(R127i.w))); -R127i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*1.5); +R127i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*resXScale); R127i.w = floatBitsToInt(intBitsToFloat(R127i.w) / 2.0); -R125i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*1.5); +R125i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*resYScale); R125i.z = floatBitsToInt(intBitsToFloat(R125i.z) / 2.0); PS0i = R125i.z; // 5 backupReg0i = R126i.x; backupReg1i = R126i.w; backupReg2i = R126i.y; -R126i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/1.5); +R126i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/resYScale); R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) * 2.0); -R126i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/1.5); +R126i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/resXScale); R126i.y = floatBitsToInt(intBitsToFloat(R126i.y) * 2.0); R124i.z = floatBitsToInt(intBitsToFloat(R5i.y) + intBitsToFloat(backupReg0i)); R126i.w = floatBitsToInt(intBitsToFloat(backupReg1i) + intBitsToFloat(backupReg2i)); diff --git a/Quality/BreathOfTheWild_1080p/4721609a424e9a1f_0000000000000000_vs.txt b/Quality/BreathOfTheWild_1080p/4721609a424e9a1f_0000000000000000_vs.txt index 32ae3ee5..678a8491 100644 --- a/Quality/BreathOfTheWild_1080p/4721609a424e9a1f_0000000000000000_vs.txt +++ b/Quality/BreathOfTheWild_1080p/4721609a424e9a1f_0000000000000000_vs.txt @@ -2,7 +2,11 @@ #extension GL_ARB_texture_gather : enable #extension GL_ARB_shading_language_packing : enable // shader 4721609a424e9a1f -// TAA restore +// AARestore v2 - restores native aa in game +// original shader dumped using cemu 1.10.0f, BotW 1.3.1 +const float resXScale = 1.5; +const float resYScale = 1.5; + uniform ivec4 uf_remappedVS[5]; uniform vec2 uf_windowSpaceToClipSpaceTransform; layout(binding = 32) uniform sampler2D textureUnitVS0;// Tex0 addr 0x3db8b000 res 12x1x1 dim 1 tm: 2 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler18 ClampX/Y/Z: 2 2 2 border: 1 @@ -135,25 +139,25 @@ PS0i = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(R4i.w)); // 1 PV1i.x = floatBitsToInt(intBitsToFloat(R3i.x) + intBitsToFloat(R4i.x)); R126i.y = floatBitsToInt(intBitsToFloat(R5i.x) + intBitsToFloat(R3i.y)); -PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(uf_remappedVS[4].w)/1.5); -R127i.w = floatBitsToInt(intBitsToFloat(R6i.z) + intBitsToFloat(uf_remappedVS[4].z)/1.5); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(uf_remappedVS[4].w)/resYScale); +R127i.w = floatBitsToInt(intBitsToFloat(R6i.z) + intBitsToFloat(uf_remappedVS[4].z)/resXScale); R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(PS0i))); PS1i = R127i.y; // 2 PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(R127i.x)); R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV1i.x))); -R126i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*1.5); +R126i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*resYScale); R126i.z = floatBitsToInt(intBitsToFloat(R126i.z) / 2.0); -R126i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*1.5); +R126i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*resXScale); R126i.w = floatBitsToInt(intBitsToFloat(R126i.w) / 2.0); -R124i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/1.5); +R124i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/resXScale); R124i.y = floatBitsToInt(intBitsToFloat(R124i.y) * 2.0); PS0i = R124i.y; // 3 backupReg0i = R127i.x; backupReg1i = R127i.w; backupReg2i = R127i.y; -R127i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/1.5); +R127i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/resYScale); R127i.x = floatBitsToInt(intBitsToFloat(R127i.x) * 2.0); R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV0i.x))); PV1i.z = floatBitsToInt(intBitsToFloat(R5i.y) + intBitsToFloat(backupReg0i)); diff --git a/Quality/BreathOfTheWild_1080pUW/0bcd653c18367d59_0000000000000000_vs.txt b/Quality/BreathOfTheWild_1080pUW/0bcd653c18367d59_0000000000000000_vs.txt index 7f6a4599..48325bdc 100644 --- a/Quality/BreathOfTheWild_1080pUW/0bcd653c18367d59_0000000000000000_vs.txt +++ b/Quality/BreathOfTheWild_1080pUW/0bcd653c18367d59_0000000000000000_vs.txt @@ -2,7 +2,11 @@ #extension GL_ARB_texture_gather : enable #extension GL_ARB_shading_language_packing : enable // shader 0bcd653c18367d59 -// TAA restore +// AARestore v2 - restores native aa in game +// original shader dumped using cemu 1.10.0f, BotW 1.3.1 +const float resXScale = 2.0; +const float resYScale = 1.5; + uniform ivec4 uf_remappedVS[5]; uniform vec2 uf_windowSpaceToClipSpaceTransform; layout(binding = 32) uniform sampler2D textureUnitVS0;// Tex0 addr 0x3db8b000 res 12x1x1 dim 1 tm: 2 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler18 ClampX/Y/Z: 2 2 2 border: 1 @@ -139,9 +143,9 @@ PS0i = R127i.y; R127i.x = floatBitsToInt(-(intBitsToFloat(R6i.y))); R127i.x = floatBitsToInt(intBitsToFloat(R127i.x) / 2.0); R126i.y = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(R4i.w)); -PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(uf_remappedVS[4].w)/1.5); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(uf_remappedVS[4].w)/resYScale); PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(R3i.x)); -R127i.w = floatBitsToInt(intBitsToFloat(R7i.z) + intBitsToFloat(uf_remappedVS[4].z)/2.0); +R127i.w = floatBitsToInt(intBitsToFloat(R7i.z) + intBitsToFloat(uf_remappedVS[4].z)/resXScale); PS1i = R127i.w; // 2 backupReg0i = R127i.y; @@ -149,26 +153,26 @@ R125i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(R126i.x)); R127i.y = floatBitsToInt(intBitsToFloat(R5i.x) + intBitsToFloat(R125i.y)); R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.y), intBitsToFloat(PV1i.w))); R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.x),intBitsToFloat(R4i.w)) + intBitsToFloat(backupReg0i))); -R125i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/2.0); +R125i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/resXScale); PS0i = R125i.w; // 3 backupReg0i = R126i.y; backupReg1i = R127i.x; -R127i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[4].w)/1.5)); +R127i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[4].w)/resYScale)); R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.x), intBitsToFloat(backupReg0i))); R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R3i.x)) + intBitsToFloat(backupReg1i))); -R124i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*2.0); +R124i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*resXScale); R124i.w = floatBitsToInt(intBitsToFloat(R124i.w) / 2.0); -R125i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*1.5); +R125i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*resYScale); R125i.z = floatBitsToInt(intBitsToFloat(R125i.z) / 2.0); PS1i = R125i.z; // 4 backupReg0i = R126i.x; backupReg1i = R127i.w; backupReg2i = R127i.y; -R126i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/1.5); +R126i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/resYScale); R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) * 2.0); -R127i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/2.0); +R127i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/resXScale); R127i.y = floatBitsToInt(intBitsToFloat(R127i.y) * 2.0); R124i.z = floatBitsToInt(intBitsToFloat(R5i.y) + intBitsToFloat(backupReg0i)); R127i.w = floatBitsToInt(intBitsToFloat(backupReg1i) + intBitsToFloat(R125i.y)); @@ -177,7 +181,7 @@ PS0i = R4i.w; // 5 backupReg0i = R127i.z; R2i.x = floatBitsToInt(intBitsToFloat(R125i.w) * 1.5); -R2i.y = floatBitsToInt(intBitsToFloat(R127i.x) * 2.0); +R2i.y = floatBitsToInt(intBitsToFloat(R127i.x) * 1.5); R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.y), intBitsToFloat(R125i.x))); R6i.w = backupReg0i; R6i.z = R126i.w; diff --git a/Quality/BreathOfTheWild_1080pUW/1a14de8e58d5b30a_0000000000000000_vs.txt b/Quality/BreathOfTheWild_1080pUW/1a14de8e58d5b30a_0000000000000000_vs.txt index 1bec9f6e..ea20cf85 100644 --- a/Quality/BreathOfTheWild_1080pUW/1a14de8e58d5b30a_0000000000000000_vs.txt +++ b/Quality/BreathOfTheWild_1080pUW/1a14de8e58d5b30a_0000000000000000_vs.txt @@ -2,7 +2,11 @@ #extension GL_ARB_texture_gather : enable #extension GL_ARB_shading_language_packing : enable // shader 1a14de8e58d5b30a -// TAA restore +// AARestore v2 - restores native aa in game +// original shader dumped using cemu 1.10.0f, BotW 1.3.1 +const float resXScale = 2.0; +const float resYScale = 1.5; + uniform ivec4 uf_remappedVS[5]; uniform vec2 uf_windowSpaceToClipSpaceTransform; layout(binding = 32) uniform sampler2D textureUnitVS0;// Tex0 addr 0x3db8b000 res 12x1x1 dim 1 tm: 2 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler18 ClampX/Y/Z: 2 2 2 border: 1 @@ -141,7 +145,7 @@ R126i.x = floatBitsToInt(intBitsToFloat(R126i.z) + -(0.5)); PV0i.x = R126i.x; PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.x))); PV0i.y = floatBitsToInt(intBitsToFloat(PV0i.y) / 2.0); -PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(uf_remappedVS[4].w)/1.5); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(uf_remappedVS[4].w)/resYScale); R127i.w = floatBitsToInt(-(intBitsToFloat(PV1i.y))); R127i.w = floatBitsToInt(intBitsToFloat(R127i.w) / 2.0); R127i.y = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(R127i.x)); @@ -150,7 +154,7 @@ PS0i = R127i.y; PV1i.x = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(R126i.z)); R125i.y = floatBitsToInt(intBitsToFloat(R5i.x) + intBitsToFloat(R126i.y)); R127i.z = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(PV0i.x)); -R126i.w = floatBitsToInt(intBitsToFloat(R1i.z) + intBitsToFloat(uf_remappedVS[4].z)/2.0); +R126i.w = floatBitsToInt(intBitsToFloat(R1i.z) + intBitsToFloat(uf_remappedVS[4].z)/resXScale); R125i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.x),intBitsToFloat(R127i.x)) + intBitsToFloat(PV0i.y))); PS1i = R125i.w; // 4 @@ -159,18 +163,18 @@ backupReg1i = R126i.z; R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(PV1i.x))); R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(backupReg0i))); R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y),intBitsToFloat(backupReg1i)) + intBitsToFloat(R127i.w))); -R127i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*2.0); +R127i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*resXScale); R127i.w = floatBitsToInt(intBitsToFloat(R127i.w) / 2.0); -R125i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*1.5); +R125i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*resYScale); R125i.z = floatBitsToInt(intBitsToFloat(R125i.z) / 2.0); PS0i = R125i.z; // 5 backupReg0i = R126i.x; backupReg1i = R126i.w; backupReg2i = R126i.y; -R126i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/1.5); +R126i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/resYScale); R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) * 2.0); -R126i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/2.0); +R126i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/resXScale); R126i.y = floatBitsToInt(intBitsToFloat(R126i.y) * 2.0); R124i.z = floatBitsToInt(intBitsToFloat(R5i.y) + intBitsToFloat(backupReg0i)); R126i.w = floatBitsToInt(intBitsToFloat(backupReg1i) + intBitsToFloat(backupReg2i)); diff --git a/Quality/BreathOfTheWild_1080pUW/4721609a424e9a1f_0000000000000000_vs.txt b/Quality/BreathOfTheWild_1080pUW/4721609a424e9a1f_0000000000000000_vs.txt index 758eed36..919dda09 100644 --- a/Quality/BreathOfTheWild_1080pUW/4721609a424e9a1f_0000000000000000_vs.txt +++ b/Quality/BreathOfTheWild_1080pUW/4721609a424e9a1f_0000000000000000_vs.txt @@ -2,7 +2,11 @@ #extension GL_ARB_texture_gather : enable #extension GL_ARB_shading_language_packing : enable // shader 4721609a424e9a1f -// TAA restore +// AARestore v2 - restores native aa in game +// original shader dumped using cemu 1.10.0f, BotW 1.3.1 +const float resXScale = 2.0; +const float resYScale = 1.5; + uniform ivec4 uf_remappedVS[5]; uniform vec2 uf_windowSpaceToClipSpaceTransform; layout(binding = 32) uniform sampler2D textureUnitVS0;// Tex0 addr 0x3db8b000 res 12x1x1 dim 1 tm: 2 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler18 ClampX/Y/Z: 2 2 2 border: 1 @@ -135,25 +139,25 @@ PS0i = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(R4i.w)); // 1 PV1i.x = floatBitsToInt(intBitsToFloat(R3i.x) + intBitsToFloat(R4i.x)); R126i.y = floatBitsToInt(intBitsToFloat(R5i.x) + intBitsToFloat(R3i.y)); -PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(uf_remappedVS[4].w)/1.5); -R127i.w = floatBitsToInt(intBitsToFloat(R6i.z) + intBitsToFloat(uf_remappedVS[4].z)/2.0); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(uf_remappedVS[4].w)/resYScale); +R127i.w = floatBitsToInt(intBitsToFloat(R6i.z) + intBitsToFloat(uf_remappedVS[4].z)/resXScale); R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(PS0i))); PS1i = R127i.y; // 2 PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(R127i.x)); R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV1i.x))); -R126i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*1.5); +R126i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*resYScale); R126i.z = floatBitsToInt(intBitsToFloat(R126i.z) / 2.0); -R126i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*2.0); +R126i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*resXScale); R126i.w = floatBitsToInt(intBitsToFloat(R126i.w) / 2.0); -R124i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/2.0); +R124i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/resXScale); R124i.y = floatBitsToInt(intBitsToFloat(R124i.y) * 2.0); PS0i = R124i.y; // 3 backupReg0i = R127i.x; backupReg1i = R127i.w; backupReg2i = R127i.y; -R127i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/1.5); +R127i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/resYScale); R127i.x = floatBitsToInt(intBitsToFloat(R127i.x) * 2.0); R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV0i.x))); PV1i.z = floatBitsToInt(intBitsToFloat(R5i.y) + intBitsToFloat(backupReg0i)); diff --git a/Quality/BreathOfTheWild_1440p/0bcd653c18367d59_0000000000000000_vs.txt b/Quality/BreathOfTheWild_1440p/0bcd653c18367d59_0000000000000000_vs.txt index aed6d541..8cef5810 100644 --- a/Quality/BreathOfTheWild_1440p/0bcd653c18367d59_0000000000000000_vs.txt +++ b/Quality/BreathOfTheWild_1440p/0bcd653c18367d59_0000000000000000_vs.txt @@ -2,7 +2,11 @@ #extension GL_ARB_texture_gather : enable #extension GL_ARB_shading_language_packing : enable // shader 0bcd653c18367d59 -// TAA restore +// AARestore v2 - restores native aa in game +// original shader dumped using cemu 1.10.0f, BotW 1.3.1 +const float resXScale = 2.0; +const float resYScale = 2.0; + uniform ivec4 uf_remappedVS[5]; uniform vec2 uf_windowSpaceToClipSpaceTransform; layout(binding = 32) uniform sampler2D textureUnitVS0;// Tex0 addr 0x3db8b000 res 12x1x1 dim 1 tm: 2 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler18 ClampX/Y/Z: 2 2 2 border: 1 @@ -139,9 +143,9 @@ PS0i = R127i.y; R127i.x = floatBitsToInt(-(intBitsToFloat(R6i.y))); R127i.x = floatBitsToInt(intBitsToFloat(R127i.x) / 2.0); R126i.y = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(R4i.w)); -PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(uf_remappedVS[4].w)/2.0); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(uf_remappedVS[4].w)/resYScale); PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(R3i.x)); -R127i.w = floatBitsToInt(intBitsToFloat(R7i.z) + intBitsToFloat(uf_remappedVS[4].z)/2.0); +R127i.w = floatBitsToInt(intBitsToFloat(R7i.z) + intBitsToFloat(uf_remappedVS[4].z)/resXScale); PS1i = R127i.w; // 2 backupReg0i = R127i.y; @@ -149,26 +153,26 @@ R125i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(R126i.x)); R127i.y = floatBitsToInt(intBitsToFloat(R5i.x) + intBitsToFloat(R125i.y)); R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.y), intBitsToFloat(PV1i.w))); R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.x),intBitsToFloat(R4i.w)) + intBitsToFloat(backupReg0i))); -R125i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/2.0); +R125i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/resXScale); PS0i = R125i.w; // 3 backupReg0i = R126i.y; backupReg1i = R127i.x; -R127i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[4].w)/2.0)); +R127i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[4].w)/resYScale)); R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.x), intBitsToFloat(backupReg0i))); R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R3i.x)) + intBitsToFloat(backupReg1i))); -R124i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*2.0); +R124i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*resXScale); R124i.w = floatBitsToInt(intBitsToFloat(R124i.w) / 2.0); -R125i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*2.0); +R125i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*resYScale); R125i.z = floatBitsToInt(intBitsToFloat(R125i.z) / 2.0); PS1i = R125i.z; // 4 backupReg0i = R126i.x; backupReg1i = R127i.w; backupReg2i = R127i.y; -R126i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/2.0); +R126i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/resYScale); R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) * 2.0); -R127i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/2.0); +R127i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/resXScale); R127i.y = floatBitsToInt(intBitsToFloat(R127i.y) * 2.0); R124i.z = floatBitsToInt(intBitsToFloat(R5i.y) + intBitsToFloat(backupReg0i)); R127i.w = floatBitsToInt(intBitsToFloat(backupReg1i) + intBitsToFloat(R125i.y)); diff --git a/Quality/BreathOfTheWild_1440p/1a14de8e58d5b30a_0000000000000000_vs.txt b/Quality/BreathOfTheWild_1440p/1a14de8e58d5b30a_0000000000000000_vs.txt index 4c308369..7cc15f4f 100644 --- a/Quality/BreathOfTheWild_1440p/1a14de8e58d5b30a_0000000000000000_vs.txt +++ b/Quality/BreathOfTheWild_1440p/1a14de8e58d5b30a_0000000000000000_vs.txt @@ -2,7 +2,11 @@ #extension GL_ARB_texture_gather : enable #extension GL_ARB_shading_language_packing : enable // shader 1a14de8e58d5b30a -// TAA restore +// AARestore v2 - restores native aa in game +// original shader dumped using cemu 1.10.0f, BotW 1.3.1 +const float resXScale = 2.0; +const float resYScale = 2.0; + uniform ivec4 uf_remappedVS[5]; uniform vec2 uf_windowSpaceToClipSpaceTransform; layout(binding = 32) uniform sampler2D textureUnitVS0;// Tex0 addr 0x3db8b000 res 12x1x1 dim 1 tm: 2 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler18 ClampX/Y/Z: 2 2 2 border: 1 @@ -141,7 +145,7 @@ R126i.x = floatBitsToInt(intBitsToFloat(R126i.z) + -(0.5)); PV0i.x = R126i.x; PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.x))); PV0i.y = floatBitsToInt(intBitsToFloat(PV0i.y) / 2.0); -PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(uf_remappedVS[4].w)/2.0); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(uf_remappedVS[4].w)/resYScale); R127i.w = floatBitsToInt(-(intBitsToFloat(PV1i.y))); R127i.w = floatBitsToInt(intBitsToFloat(R127i.w) / 2.0); R127i.y = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(R127i.x)); @@ -150,7 +154,7 @@ PS0i = R127i.y; PV1i.x = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(R126i.z)); R125i.y = floatBitsToInt(intBitsToFloat(R5i.x) + intBitsToFloat(R126i.y)); R127i.z = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(PV0i.x)); -R126i.w = floatBitsToInt(intBitsToFloat(R1i.z) + intBitsToFloat(uf_remappedVS[4].z)/2.0); +R126i.w = floatBitsToInt(intBitsToFloat(R1i.z) + intBitsToFloat(uf_remappedVS[4].z)/resXScale); R125i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.x),intBitsToFloat(R127i.x)) + intBitsToFloat(PV0i.y))); PS1i = R125i.w; // 4 @@ -159,18 +163,18 @@ backupReg1i = R126i.z; R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(PV1i.x))); R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(backupReg0i))); R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y),intBitsToFloat(backupReg1i)) + intBitsToFloat(R127i.w))); -R127i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*2.0); +R127i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*resXScale); R127i.w = floatBitsToInt(intBitsToFloat(R127i.w) / 2.0); -R125i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*2.0); +R125i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*resYScale); R125i.z = floatBitsToInt(intBitsToFloat(R125i.z) / 2.0); PS0i = R125i.z; // 5 backupReg0i = R126i.x; backupReg1i = R126i.w; backupReg2i = R126i.y; -R126i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/2.0); +R126i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/resYScale); R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) * 2.0); -R126i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/2.0); +R126i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/resXScale); R126i.y = floatBitsToInt(intBitsToFloat(R126i.y) * 2.0); R124i.z = floatBitsToInt(intBitsToFloat(R5i.y) + intBitsToFloat(backupReg0i)); R126i.w = floatBitsToInt(intBitsToFloat(backupReg1i) + intBitsToFloat(backupReg2i)); diff --git a/Quality/BreathOfTheWild_1440p/4721609a424e9a1f_0000000000000000_vs.txt b/Quality/BreathOfTheWild_1440p/4721609a424e9a1f_0000000000000000_vs.txt index 39a0028a..d08eef5b 100644 --- a/Quality/BreathOfTheWild_1440p/4721609a424e9a1f_0000000000000000_vs.txt +++ b/Quality/BreathOfTheWild_1440p/4721609a424e9a1f_0000000000000000_vs.txt @@ -2,7 +2,11 @@ #extension GL_ARB_texture_gather : enable #extension GL_ARB_shading_language_packing : enable // shader 4721609a424e9a1f -// TAA restore +// AARestore v2 - restores native aa in game +// original shader dumped using cemu 1.10.0f, BotW 1.3.1 +const float resXScale = 2.0; +const float resYScale = 2.0; + uniform ivec4 uf_remappedVS[5]; uniform vec2 uf_windowSpaceToClipSpaceTransform; layout(binding = 32) uniform sampler2D textureUnitVS0;// Tex0 addr 0x3db8b000 res 12x1x1 dim 1 tm: 2 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler18 ClampX/Y/Z: 2 2 2 border: 1 @@ -135,25 +139,25 @@ PS0i = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(R4i.w)); // 1 PV1i.x = floatBitsToInt(intBitsToFloat(R3i.x) + intBitsToFloat(R4i.x)); R126i.y = floatBitsToInt(intBitsToFloat(R5i.x) + intBitsToFloat(R3i.y)); -PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(uf_remappedVS[4].w)/2.0); -R127i.w = floatBitsToInt(intBitsToFloat(R6i.z) + intBitsToFloat(uf_remappedVS[4].z)/2.0); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(uf_remappedVS[4].w)/resYScale); +R127i.w = floatBitsToInt(intBitsToFloat(R6i.z) + intBitsToFloat(uf_remappedVS[4].z)/resXScale); R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(PS0i))); PS1i = R127i.y; // 2 PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(R127i.x)); R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV1i.x))); -R126i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*2.0); +R126i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*resYScale); R126i.z = floatBitsToInt(intBitsToFloat(R126i.z) / 2.0); -R126i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*2.0); +R126i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*resXScale); R126i.w = floatBitsToInt(intBitsToFloat(R126i.w) / 2.0); -R124i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/2.0); +R124i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/resXScale); R124i.y = floatBitsToInt(intBitsToFloat(R124i.y) * 2.0); PS0i = R124i.y; // 3 backupReg0i = R127i.x; backupReg1i = R127i.w; backupReg2i = R127i.y; -R127i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/2.0); +R127i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/resYScale); R127i.x = floatBitsToInt(intBitsToFloat(R127i.x) * 2.0); R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV0i.x))); PV1i.z = floatBitsToInt(intBitsToFloat(R5i.y) + intBitsToFloat(backupReg0i)); diff --git a/Quality/BreathOfTheWild_1440pUW/0bcd653c18367d59_0000000000000000_vs.txt b/Quality/BreathOfTheWild_1440pUW/0bcd653c18367d59_0000000000000000_vs.txt index 13a62e75..690ae15b 100644 --- a/Quality/BreathOfTheWild_1440pUW/0bcd653c18367d59_0000000000000000_vs.txt +++ b/Quality/BreathOfTheWild_1440pUW/0bcd653c18367d59_0000000000000000_vs.txt @@ -2,7 +2,11 @@ #extension GL_ARB_texture_gather : enable #extension GL_ARB_shading_language_packing : enable // shader 0bcd653c18367d59 -// TAA restore +// AARestore v2 - restores native aa in game +// original shader dumped using cemu 1.10.0f, BotW 1.3.1 +const float resXScale = 2.6875; +const float resYScale = 2.0; + uniform ivec4 uf_remappedVS[5]; uniform vec2 uf_windowSpaceToClipSpaceTransform; layout(binding = 32) uniform sampler2D textureUnitVS0;// Tex0 addr 0x3db8b000 res 12x1x1 dim 1 tm: 2 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler18 ClampX/Y/Z: 2 2 2 border: 1 @@ -139,9 +143,9 @@ PS0i = R127i.y; R127i.x = floatBitsToInt(-(intBitsToFloat(R6i.y))); R127i.x = floatBitsToInt(intBitsToFloat(R127i.x) / 2.0); R126i.y = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(R4i.w)); -PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(uf_remappedVS[4].w)/2.0); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(uf_remappedVS[4].w)/resYScale); PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(R3i.x)); -R127i.w = floatBitsToInt(intBitsToFloat(R7i.z) + intBitsToFloat(uf_remappedVS[4].z)/2.6875); +R127i.w = floatBitsToInt(intBitsToFloat(R7i.z) + intBitsToFloat(uf_remappedVS[4].z)/resXScale); PS1i = R127i.w; // 2 backupReg0i = R127i.y; @@ -149,26 +153,26 @@ R125i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(R126i.x)); R127i.y = floatBitsToInt(intBitsToFloat(R5i.x) + intBitsToFloat(R125i.y)); R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.y), intBitsToFloat(PV1i.w))); R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.x),intBitsToFloat(R4i.w)) + intBitsToFloat(backupReg0i))); -R125i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/2.6875); +R125i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/resXScale); PS0i = R125i.w; // 3 backupReg0i = R126i.y; backupReg1i = R127i.x; -R127i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[4].w)/2.0)); +R127i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[4].w)/resYScale)); R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.x), intBitsToFloat(backupReg0i))); R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R3i.x)) + intBitsToFloat(backupReg1i))); -R124i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*2.6875); +R124i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*resXScale); R124i.w = floatBitsToInt(intBitsToFloat(R124i.w) / 2.0); -R125i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*2.0); +R125i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*resYScale); R125i.z = floatBitsToInt(intBitsToFloat(R125i.z) / 2.0); PS1i = R125i.z; // 4 backupReg0i = R126i.x; backupReg1i = R127i.w; backupReg2i = R127i.y; -R126i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/2.0); +R126i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/resYScale); R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) * 2.0); -R127i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/2.6875); +R127i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/resXScale); R127i.y = floatBitsToInt(intBitsToFloat(R127i.y) * 2.0); R124i.z = floatBitsToInt(intBitsToFloat(R5i.y) + intBitsToFloat(backupReg0i)); R127i.w = floatBitsToInt(intBitsToFloat(backupReg1i) + intBitsToFloat(R125i.y)); diff --git a/Quality/BreathOfTheWild_1440pUW/1a14de8e58d5b30a_0000000000000000_vs.txt b/Quality/BreathOfTheWild_1440pUW/1a14de8e58d5b30a_0000000000000000_vs.txt index 3750ef92..c46593ea 100644 --- a/Quality/BreathOfTheWild_1440pUW/1a14de8e58d5b30a_0000000000000000_vs.txt +++ b/Quality/BreathOfTheWild_1440pUW/1a14de8e58d5b30a_0000000000000000_vs.txt @@ -2,7 +2,11 @@ #extension GL_ARB_texture_gather : enable #extension GL_ARB_shading_language_packing : enable // shader 1a14de8e58d5b30a -// TAA restore +// AARestore v2 - restores native aa in game +// original shader dumped using cemu 1.10.0f, BotW 1.3.1 +const float resXScale = 2.6875; +const float resYScale = 2.0; + uniform ivec4 uf_remappedVS[5]; uniform vec2 uf_windowSpaceToClipSpaceTransform; layout(binding = 32) uniform sampler2D textureUnitVS0;// Tex0 addr 0x3db8b000 res 12x1x1 dim 1 tm: 2 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler18 ClampX/Y/Z: 2 2 2 border: 1 @@ -141,7 +145,7 @@ R126i.x = floatBitsToInt(intBitsToFloat(R126i.z) + -(0.5)); PV0i.x = R126i.x; PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.x))); PV0i.y = floatBitsToInt(intBitsToFloat(PV0i.y) / 2.0); -PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(uf_remappedVS[4].w)/2.0); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(uf_remappedVS[4].w)/resYScale); R127i.w = floatBitsToInt(-(intBitsToFloat(PV1i.y))); R127i.w = floatBitsToInt(intBitsToFloat(R127i.w) / 2.0); R127i.y = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(R127i.x)); @@ -150,7 +154,7 @@ PS0i = R127i.y; PV1i.x = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(R126i.z)); R125i.y = floatBitsToInt(intBitsToFloat(R5i.x) + intBitsToFloat(R126i.y)); R127i.z = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(PV0i.x)); -R126i.w = floatBitsToInt(intBitsToFloat(R1i.z) + intBitsToFloat(uf_remappedVS[4].z)/2.6875); +R126i.w = floatBitsToInt(intBitsToFloat(R1i.z) + intBitsToFloat(uf_remappedVS[4].z)/resXScale); R125i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.x),intBitsToFloat(R127i.x)) + intBitsToFloat(PV0i.y))); PS1i = R125i.w; // 4 @@ -159,18 +163,18 @@ backupReg1i = R126i.z; R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(PV1i.x))); R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(backupReg0i))); R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y),intBitsToFloat(backupReg1i)) + intBitsToFloat(R127i.w))); -R127i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*2.6875); +R127i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*resXScale); R127i.w = floatBitsToInt(intBitsToFloat(R127i.w) / 2.0); -R125i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*2.0); +R125i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*resYScale); R125i.z = floatBitsToInt(intBitsToFloat(R125i.z) / 2.0); PS0i = R125i.z; // 5 backupReg0i = R126i.x; backupReg1i = R126i.w; backupReg2i = R126i.y; -R126i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/2.0); +R126i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/resYScale); R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) * 2.0); -R126i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/2.6875); +R126i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/resXScale); R126i.y = floatBitsToInt(intBitsToFloat(R126i.y) * 2.0); R124i.z = floatBitsToInt(intBitsToFloat(R5i.y) + intBitsToFloat(backupReg0i)); R126i.w = floatBitsToInt(intBitsToFloat(backupReg1i) + intBitsToFloat(backupReg2i)); diff --git a/Quality/BreathOfTheWild_1440pUW/4721609a424e9a1f_0000000000000000_vs.txt b/Quality/BreathOfTheWild_1440pUW/4721609a424e9a1f_0000000000000000_vs.txt index 31e6d9b6..beb28cf2 100644 --- a/Quality/BreathOfTheWild_1440pUW/4721609a424e9a1f_0000000000000000_vs.txt +++ b/Quality/BreathOfTheWild_1440pUW/4721609a424e9a1f_0000000000000000_vs.txt @@ -2,7 +2,11 @@ #extension GL_ARB_texture_gather : enable #extension GL_ARB_shading_language_packing : enable // shader 4721609a424e9a1f -// TAA restore +// AARestore v2 - restores native aa in game +// original shader dumped using cemu 1.10.0f, BotW 1.3.1 +const float resXScale = 2.6875; +const float resYScale = 2.0; + uniform ivec4 uf_remappedVS[5]; uniform vec2 uf_windowSpaceToClipSpaceTransform; layout(binding = 32) uniform sampler2D textureUnitVS0;// Tex0 addr 0x3db8b000 res 12x1x1 dim 1 tm: 2 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler18 ClampX/Y/Z: 2 2 2 border: 1 @@ -135,25 +139,25 @@ PS0i = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(R4i.w)); // 1 PV1i.x = floatBitsToInt(intBitsToFloat(R3i.x) + intBitsToFloat(R4i.x)); R126i.y = floatBitsToInt(intBitsToFloat(R5i.x) + intBitsToFloat(R3i.y)); -PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(uf_remappedVS[4].w)/2.0); -R127i.w = floatBitsToInt(intBitsToFloat(R6i.z) + intBitsToFloat(uf_remappedVS[4].z)/2.6875); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(uf_remappedVS[4].w)/resYScale); +R127i.w = floatBitsToInt(intBitsToFloat(R6i.z) + intBitsToFloat(uf_remappedVS[4].z)/resXScale); R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(PS0i))); PS1i = R127i.y; // 2 PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(R127i.x)); R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV1i.x))); -R126i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*2.0); +R126i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*resYScale); R126i.z = floatBitsToInt(intBitsToFloat(R126i.z) / 2.0); -R126i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*2.6875); +R126i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*resXScale); R126i.w = floatBitsToInt(intBitsToFloat(R126i.w) / 2.0); -R124i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/2.6875); +R124i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/resXScale); R124i.y = floatBitsToInt(intBitsToFloat(R124i.y) * 2.0); PS0i = R124i.y; // 3 backupReg0i = R127i.x; backupReg1i = R127i.w; backupReg2i = R127i.y; -R127i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/2.0); +R127i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/resYScale); R127i.x = floatBitsToInt(intBitsToFloat(R127i.x) * 2.0); R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV0i.x))); PV1i.z = floatBitsToInt(intBitsToFloat(R5i.y) + intBitsToFloat(backupReg0i)); diff --git a/Quality/BreathOfTheWild_1800p/0bcd653c18367d59_0000000000000000_vs.txt b/Quality/BreathOfTheWild_1800p/0bcd653c18367d59_0000000000000000_vs.txt index 317fb4b9..9d895cd3 100644 --- a/Quality/BreathOfTheWild_1800p/0bcd653c18367d59_0000000000000000_vs.txt +++ b/Quality/BreathOfTheWild_1800p/0bcd653c18367d59_0000000000000000_vs.txt @@ -2,7 +2,11 @@ #extension GL_ARB_texture_gather : enable #extension GL_ARB_shading_language_packing : enable // shader 0bcd653c18367d59 -// TAA restore +// AARestore v2 - restores native aa in game +// original shader dumped using cemu 1.10.0f, BotW 1.3.1 +const float resXScale = 2.5; +const float resYScale = 2.5; + uniform ivec4 uf_remappedVS[5]; uniform vec2 uf_windowSpaceToClipSpaceTransform; layout(binding = 32) uniform sampler2D textureUnitVS0;// Tex0 addr 0x3db8b000 res 12x1x1 dim 1 tm: 2 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler18 ClampX/Y/Z: 2 2 2 border: 1 @@ -139,9 +143,9 @@ PS0i = R127i.y; R127i.x = floatBitsToInt(-(intBitsToFloat(R6i.y))); R127i.x = floatBitsToInt(intBitsToFloat(R127i.x) / 2.0); R126i.y = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(R4i.w)); -PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(uf_remappedVS[4].w)/2.5); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(uf_remappedVS[4].w)/resYScale); PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(R3i.x)); -R127i.w = floatBitsToInt(intBitsToFloat(R7i.z) + intBitsToFloat(uf_remappedVS[4].z)/2.5); +R127i.w = floatBitsToInt(intBitsToFloat(R7i.z) + intBitsToFloat(uf_remappedVS[4].z)/resXScale); PS1i = R127i.w; // 2 backupReg0i = R127i.y; @@ -149,26 +153,26 @@ R125i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(R126i.x)); R127i.y = floatBitsToInt(intBitsToFloat(R5i.x) + intBitsToFloat(R125i.y)); R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.y), intBitsToFloat(PV1i.w))); R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.x),intBitsToFloat(R4i.w)) + intBitsToFloat(backupReg0i))); -R125i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/2.5); +R125i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/resXScale); PS0i = R125i.w; // 3 backupReg0i = R126i.y; backupReg1i = R127i.x; -R127i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[4].w)/2.5)); +R127i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[4].w)/resYScale)); R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.x), intBitsToFloat(backupReg0i))); R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R3i.x)) + intBitsToFloat(backupReg1i))); -R124i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*2.5); +R124i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*resXScale); R124i.w = floatBitsToInt(intBitsToFloat(R124i.w) / 2.0); -R125i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*2.5); +R125i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*resYScale); R125i.z = floatBitsToInt(intBitsToFloat(R125i.z) / 2.0); PS1i = R125i.z; // 4 backupReg0i = R126i.x; backupReg1i = R127i.w; backupReg2i = R127i.y; -R126i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/2.5); +R126i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/resYScale); R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) * 2.0); -R127i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/2.5); +R127i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/resXScale); R127i.y = floatBitsToInt(intBitsToFloat(R127i.y) * 2.0); R124i.z = floatBitsToInt(intBitsToFloat(R5i.y) + intBitsToFloat(backupReg0i)); R127i.w = floatBitsToInt(intBitsToFloat(backupReg1i) + intBitsToFloat(R125i.y)); diff --git a/Quality/BreathOfTheWild_1800p/1a14de8e58d5b30a_0000000000000000_vs.txt b/Quality/BreathOfTheWild_1800p/1a14de8e58d5b30a_0000000000000000_vs.txt index 337dde80..2c5a107d 100644 --- a/Quality/BreathOfTheWild_1800p/1a14de8e58d5b30a_0000000000000000_vs.txt +++ b/Quality/BreathOfTheWild_1800p/1a14de8e58d5b30a_0000000000000000_vs.txt @@ -2,7 +2,11 @@ #extension GL_ARB_texture_gather : enable #extension GL_ARB_shading_language_packing : enable // shader 1a14de8e58d5b30a -// TAA restore +// AARestore v2 - restores native aa in game +// original shader dumped using cemu 1.10.0f, BotW 1.3.1 +const float resXScale = 2.5; +const float resYScale = 2.5; + uniform ivec4 uf_remappedVS[5]; uniform vec2 uf_windowSpaceToClipSpaceTransform; layout(binding = 32) uniform sampler2D textureUnitVS0;// Tex0 addr 0x3db8b000 res 12x1x1 dim 1 tm: 2 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler18 ClampX/Y/Z: 2 2 2 border: 1 @@ -141,7 +145,7 @@ R126i.x = floatBitsToInt(intBitsToFloat(R126i.z) + -(0.5)); PV0i.x = R126i.x; PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.x))); PV0i.y = floatBitsToInt(intBitsToFloat(PV0i.y) / 2.0); -PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(uf_remappedVS[4].w)/2.5); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(uf_remappedVS[4].w)/resYScale); R127i.w = floatBitsToInt(-(intBitsToFloat(PV1i.y))); R127i.w = floatBitsToInt(intBitsToFloat(R127i.w) / 2.0); R127i.y = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(R127i.x)); @@ -150,7 +154,7 @@ PS0i = R127i.y; PV1i.x = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(R126i.z)); R125i.y = floatBitsToInt(intBitsToFloat(R5i.x) + intBitsToFloat(R126i.y)); R127i.z = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(PV0i.x)); -R126i.w = floatBitsToInt(intBitsToFloat(R1i.z) + intBitsToFloat(uf_remappedVS[4].z)/2.5); +R126i.w = floatBitsToInt(intBitsToFloat(R1i.z) + intBitsToFloat(uf_remappedVS[4].z)/resXScale); R125i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.x),intBitsToFloat(R127i.x)) + intBitsToFloat(PV0i.y))); PS1i = R125i.w; // 4 @@ -159,18 +163,18 @@ backupReg1i = R126i.z; R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(PV1i.x))); R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(backupReg0i))); R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y),intBitsToFloat(backupReg1i)) + intBitsToFloat(R127i.w))); -R127i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*2.5); +R127i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*resXScale); R127i.w = floatBitsToInt(intBitsToFloat(R127i.w) / 2.0); -R125i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*2.5); +R125i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*resYScale); R125i.z = floatBitsToInt(intBitsToFloat(R125i.z) / 2.0); PS0i = R125i.z; // 5 backupReg0i = R126i.x; backupReg1i = R126i.w; backupReg2i = R126i.y; -R126i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/2.5); +R126i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/resYScale); R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) * 2.0); -R126i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/2.5); +R126i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/resXScale); R126i.y = floatBitsToInt(intBitsToFloat(R126i.y) * 2.0); R124i.z = floatBitsToInt(intBitsToFloat(R5i.y) + intBitsToFloat(backupReg0i)); R126i.w = floatBitsToInt(intBitsToFloat(backupReg1i) + intBitsToFloat(backupReg2i)); diff --git a/Quality/BreathOfTheWild_1800p/4721609a424e9a1f_0000000000000000_vs.txt b/Quality/BreathOfTheWild_1800p/4721609a424e9a1f_0000000000000000_vs.txt index 9cd1f425..8b9a98d0 100644 --- a/Quality/BreathOfTheWild_1800p/4721609a424e9a1f_0000000000000000_vs.txt +++ b/Quality/BreathOfTheWild_1800p/4721609a424e9a1f_0000000000000000_vs.txt @@ -2,7 +2,11 @@ #extension GL_ARB_texture_gather : enable #extension GL_ARB_shading_language_packing : enable // shader 4721609a424e9a1f -// TAA restore +// AARestore v2 - restores native aa in game +// original shader dumped using cemu 1.10.0f, BotW 1.3.1 +const float resXScale = 2.5; +const float resYScale = 2.5; + uniform ivec4 uf_remappedVS[5]; uniform vec2 uf_windowSpaceToClipSpaceTransform; layout(binding = 32) uniform sampler2D textureUnitVS0;// Tex0 addr 0x3db8b000 res 12x1x1 dim 1 tm: 2 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler18 ClampX/Y/Z: 2 2 2 border: 1 @@ -135,25 +139,25 @@ PS0i = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(R4i.w)); // 1 PV1i.x = floatBitsToInt(intBitsToFloat(R3i.x) + intBitsToFloat(R4i.x)); R126i.y = floatBitsToInt(intBitsToFloat(R5i.x) + intBitsToFloat(R3i.y)); -PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(uf_remappedVS[4].w)/2.5); -R127i.w = floatBitsToInt(intBitsToFloat(R6i.z) + intBitsToFloat(uf_remappedVS[4].z)/2.5); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(uf_remappedVS[4].w)/resYScale); +R127i.w = floatBitsToInt(intBitsToFloat(R6i.z) + intBitsToFloat(uf_remappedVS[4].z)/resXScale); R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(PS0i))); PS1i = R127i.y; // 2 PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(R127i.x)); R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV1i.x))); -R126i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*2.5); +R126i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*resYScale); R126i.z = floatBitsToInt(intBitsToFloat(R126i.z) / 2.0); -R126i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*2.5); +R126i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*resXScale); R126i.w = floatBitsToInt(intBitsToFloat(R126i.w) / 2.0); -R124i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/2.5); +R124i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/resXScale); R124i.y = floatBitsToInt(intBitsToFloat(R124i.y) * 2.0); PS0i = R124i.y; // 3 backupReg0i = R127i.x; backupReg1i = R127i.w; backupReg2i = R127i.y; -R127i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/2.5); +R127i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/resYScale); R127i.x = floatBitsToInt(intBitsToFloat(R127i.x) * 2.0); R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV0i.x))); PV1i.z = floatBitsToInt(intBitsToFloat(R5i.y) + intBitsToFloat(backupReg0i)); diff --git a/Quality/BreathOfTheWild_2160p/0bcd653c18367d59_0000000000000000_vs.txt b/Quality/BreathOfTheWild_2160p/0bcd653c18367d59_0000000000000000_vs.txt index f072c9c3..0b934541 100644 --- a/Quality/BreathOfTheWild_2160p/0bcd653c18367d59_0000000000000000_vs.txt +++ b/Quality/BreathOfTheWild_2160p/0bcd653c18367d59_0000000000000000_vs.txt @@ -2,7 +2,11 @@ #extension GL_ARB_texture_gather : enable #extension GL_ARB_shading_language_packing : enable // shader 0bcd653c18367d59 -// TAA restore +// AARestore v2 - restores native aa in game +// original shader dumped using cemu 1.10.0f, BotW 1.3.1 +const float resXScale = 3.0; +const float resYScale = 3.0; + uniform ivec4 uf_remappedVS[5]; uniform vec2 uf_windowSpaceToClipSpaceTransform; layout(binding = 32) uniform sampler2D textureUnitVS0;// Tex0 addr 0x3db8b000 res 12x1x1 dim 1 tm: 2 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler18 ClampX/Y/Z: 2 2 2 border: 1 @@ -139,9 +143,9 @@ PS0i = R127i.y; R127i.x = floatBitsToInt(-(intBitsToFloat(R6i.y))); R127i.x = floatBitsToInt(intBitsToFloat(R127i.x) / 2.0); R126i.y = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(R4i.w)); -PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(uf_remappedVS[4].w)/3.0); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(uf_remappedVS[4].w)/resYScale); PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(R3i.x)); -R127i.w = floatBitsToInt(intBitsToFloat(R7i.z) + intBitsToFloat(uf_remappedVS[4].z)/3.0); +R127i.w = floatBitsToInt(intBitsToFloat(R7i.z) + intBitsToFloat(uf_remappedVS[4].z)/resXScale); PS1i = R127i.w; // 2 backupReg0i = R127i.y; @@ -149,26 +153,26 @@ R125i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(R126i.x)); R127i.y = floatBitsToInt(intBitsToFloat(R5i.x) + intBitsToFloat(R125i.y)); R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.y), intBitsToFloat(PV1i.w))); R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.x),intBitsToFloat(R4i.w)) + intBitsToFloat(backupReg0i))); -R125i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/3.0); +R125i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/resXScale); PS0i = R125i.w; // 3 backupReg0i = R126i.y; backupReg1i = R127i.x; -R127i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[4].w)/3.0)); +R127i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[4].w)/resYScale)); R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.x), intBitsToFloat(backupReg0i))); R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R3i.x)) + intBitsToFloat(backupReg1i))); -R124i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*3.0); +R124i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*resXScale); R124i.w = floatBitsToInt(intBitsToFloat(R124i.w) / 2.0); -R125i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*3.0); +R125i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*resYScale); R125i.z = floatBitsToInt(intBitsToFloat(R125i.z) / 2.0); PS1i = R125i.z; // 4 backupReg0i = R126i.x; backupReg1i = R127i.w; backupReg2i = R127i.y; -R126i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/3.0); +R126i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/resYScale); R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) * 2.0); -R127i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/3.0); +R127i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/resXScale); R127i.y = floatBitsToInt(intBitsToFloat(R127i.y) * 2.0); R124i.z = floatBitsToInt(intBitsToFloat(R5i.y) + intBitsToFloat(backupReg0i)); R127i.w = floatBitsToInt(intBitsToFloat(backupReg1i) + intBitsToFloat(R125i.y)); diff --git a/Quality/BreathOfTheWild_2160p/1a14de8e58d5b30a_0000000000000000_vs.txt b/Quality/BreathOfTheWild_2160p/1a14de8e58d5b30a_0000000000000000_vs.txt index 89f05335..2ac98f83 100644 --- a/Quality/BreathOfTheWild_2160p/1a14de8e58d5b30a_0000000000000000_vs.txt +++ b/Quality/BreathOfTheWild_2160p/1a14de8e58d5b30a_0000000000000000_vs.txt @@ -2,7 +2,11 @@ #extension GL_ARB_texture_gather : enable #extension GL_ARB_shading_language_packing : enable // shader 1a14de8e58d5b30a -// TAA restore +// AARestore v2 - restores native aa in game +// original shader dumped using cemu 1.10.0f, BotW 1.3.1 +const float resXScale = 3.0; +const float resYScale = 3.0; + uniform ivec4 uf_remappedVS[5]; uniform vec2 uf_windowSpaceToClipSpaceTransform; layout(binding = 32) uniform sampler2D textureUnitVS0;// Tex0 addr 0x3db8b000 res 12x1x1 dim 1 tm: 2 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler18 ClampX/Y/Z: 2 2 2 border: 1 @@ -141,7 +145,7 @@ R126i.x = floatBitsToInt(intBitsToFloat(R126i.z) + -(0.5)); PV0i.x = R126i.x; PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.x))); PV0i.y = floatBitsToInt(intBitsToFloat(PV0i.y) / 2.0); -PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(uf_remappedVS[4].w)/3.0); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(uf_remappedVS[4].w)/resYScale); R127i.w = floatBitsToInt(-(intBitsToFloat(PV1i.y))); R127i.w = floatBitsToInt(intBitsToFloat(R127i.w) / 2.0); R127i.y = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(R127i.x)); @@ -150,7 +154,7 @@ PS0i = R127i.y; PV1i.x = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(R126i.z)); R125i.y = floatBitsToInt(intBitsToFloat(R5i.x) + intBitsToFloat(R126i.y)); R127i.z = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(PV0i.x)); -R126i.w = floatBitsToInt(intBitsToFloat(R1i.z) + intBitsToFloat(uf_remappedVS[4].z)/3.0); +R126i.w = floatBitsToInt(intBitsToFloat(R1i.z) + intBitsToFloat(uf_remappedVS[4].z)/resXScale); R125i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.x),intBitsToFloat(R127i.x)) + intBitsToFloat(PV0i.y))); PS1i = R125i.w; // 4 @@ -159,18 +163,18 @@ backupReg1i = R126i.z; R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(PV1i.x))); R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(backupReg0i))); R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y),intBitsToFloat(backupReg1i)) + intBitsToFloat(R127i.w))); -R127i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*3.0); +R127i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*resXScale); R127i.w = floatBitsToInt(intBitsToFloat(R127i.w) / 2.0); -R125i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*3.0); +R125i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*resYScale); R125i.z = floatBitsToInt(intBitsToFloat(R125i.z) / 2.0); PS0i = R125i.z; // 5 backupReg0i = R126i.x; backupReg1i = R126i.w; backupReg2i = R126i.y; -R126i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/3.0); +R126i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/resYScale); R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) * 2.0); -R126i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/3.0); +R126i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/resXScale); R126i.y = floatBitsToInt(intBitsToFloat(R126i.y) * 2.0); R124i.z = floatBitsToInt(intBitsToFloat(R5i.y) + intBitsToFloat(backupReg0i)); R126i.w = floatBitsToInt(intBitsToFloat(backupReg1i) + intBitsToFloat(backupReg2i)); diff --git a/Quality/BreathOfTheWild_2160p/4721609a424e9a1f_0000000000000000_vs.txt b/Quality/BreathOfTheWild_2160p/4721609a424e9a1f_0000000000000000_vs.txt index 9d15405a..d5027228 100644 --- a/Quality/BreathOfTheWild_2160p/4721609a424e9a1f_0000000000000000_vs.txt +++ b/Quality/BreathOfTheWild_2160p/4721609a424e9a1f_0000000000000000_vs.txt @@ -2,7 +2,11 @@ #extension GL_ARB_texture_gather : enable #extension GL_ARB_shading_language_packing : enable // shader 4721609a424e9a1f -// TAA restore +// AARestore v2 - restores native aa in game +// original shader dumped using cemu 1.10.0f, BotW 1.3.1 +const float resXScale = 3.0; +const float resYScale = 3.0; + uniform ivec4 uf_remappedVS[5]; uniform vec2 uf_windowSpaceToClipSpaceTransform; layout(binding = 32) uniform sampler2D textureUnitVS0;// Tex0 addr 0x3db8b000 res 12x1x1 dim 1 tm: 2 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler18 ClampX/Y/Z: 2 2 2 border: 1 @@ -135,25 +139,25 @@ PS0i = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(R4i.w)); // 1 PV1i.x = floatBitsToInt(intBitsToFloat(R3i.x) + intBitsToFloat(R4i.x)); R126i.y = floatBitsToInt(intBitsToFloat(R5i.x) + intBitsToFloat(R3i.y)); -PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(uf_remappedVS[4].w)/3.0); -R127i.w = floatBitsToInt(intBitsToFloat(R6i.z) + intBitsToFloat(uf_remappedVS[4].z)/3.0); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(uf_remappedVS[4].w)/resYScale); +R127i.w = floatBitsToInt(intBitsToFloat(R6i.z) + intBitsToFloat(uf_remappedVS[4].z)/resXScale); R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(PS0i))); PS1i = R127i.y; // 2 PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(R127i.x)); R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV1i.x))); -R126i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*3.0); +R126i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*resYScale); R126i.z = floatBitsToInt(intBitsToFloat(R126i.z) / 2.0); -R126i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*3.0); +R126i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*resXScale); R126i.w = floatBitsToInt(intBitsToFloat(R126i.w) / 2.0); -R124i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/3.0); +R124i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/resXScale); R124i.y = floatBitsToInt(intBitsToFloat(R124i.y) * 2.0); PS0i = R124i.y; // 3 backupReg0i = R127i.x; backupReg1i = R127i.w; backupReg2i = R127i.y; -R127i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/3.0); +R127i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/resYScale); R127i.x = floatBitsToInt(intBitsToFloat(R127i.x) * 2.0); R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV0i.x))); PV1i.z = floatBitsToInt(intBitsToFloat(R5i.y) + intBitsToFloat(backupReg0i)); diff --git a/Quality/BreathOfTheWild_2160pUW/0bcd653c18367d59_0000000000000000_vs.txt b/Quality/BreathOfTheWild_2160pUW/0bcd653c18367d59_0000000000000000_vs.txt index e34eefef..7e81fa0d 100644 --- a/Quality/BreathOfTheWild_2160pUW/0bcd653c18367d59_0000000000000000_vs.txt +++ b/Quality/BreathOfTheWild_2160pUW/0bcd653c18367d59_0000000000000000_vs.txt @@ -2,7 +2,11 @@ #extension GL_ARB_texture_gather : enable #extension GL_ARB_shading_language_packing : enable // shader 0bcd653c18367d59 -// TAA restore +// AARestore v2 - restores native aa in game +// original shader dumped using cemu 1.10.0f, BotW 1.3.1 +const float resXScale = 4.0; +const float resYScale = 3.0; + uniform ivec4 uf_remappedVS[5]; uniform vec2 uf_windowSpaceToClipSpaceTransform; layout(binding = 32) uniform sampler2D textureUnitVS0;// Tex0 addr 0x3db8b000 res 12x1x1 dim 1 tm: 2 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler18 ClampX/Y/Z: 2 2 2 border: 1 @@ -139,9 +143,9 @@ PS0i = R127i.y; R127i.x = floatBitsToInt(-(intBitsToFloat(R6i.y))); R127i.x = floatBitsToInt(intBitsToFloat(R127i.x) / 2.0); R126i.y = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(R4i.w)); -PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(uf_remappedVS[4].w)/3.0); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(uf_remappedVS[4].w)/resYScale); PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(R3i.x)); -R127i.w = floatBitsToInt(intBitsToFloat(R7i.z) + intBitsToFloat(uf_remappedVS[4].z)/4.0); +R127i.w = floatBitsToInt(intBitsToFloat(R7i.z) + intBitsToFloat(uf_remappedVS[4].z)/resXScale); PS1i = R127i.w; // 2 backupReg0i = R127i.y; @@ -149,26 +153,26 @@ R125i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(R126i.x)); R127i.y = floatBitsToInt(intBitsToFloat(R5i.x) + intBitsToFloat(R125i.y)); R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.y), intBitsToFloat(PV1i.w))); R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.x),intBitsToFloat(R4i.w)) + intBitsToFloat(backupReg0i))); -R125i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/4.0); +R125i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/resXScale); PS0i = R125i.w; // 3 backupReg0i = R126i.y; backupReg1i = R127i.x; -R127i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[4].w)/3.0)); +R127i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[4].w)/resYScale)); R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.x), intBitsToFloat(backupReg0i))); R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R3i.x)) + intBitsToFloat(backupReg1i))); -R124i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*4.0); +R124i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*resXScale); R124i.w = floatBitsToInt(intBitsToFloat(R124i.w) / 2.0); -R125i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*3.0); +R125i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*resYScale); R125i.z = floatBitsToInt(intBitsToFloat(R125i.z) / 2.0); PS1i = R125i.z; // 4 backupReg0i = R126i.x; backupReg1i = R127i.w; backupReg2i = R127i.y; -R126i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/3.0); +R126i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/resYScale); R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) * 2.0); -R127i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/4.0); +R127i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/resXScale); R127i.y = floatBitsToInt(intBitsToFloat(R127i.y) * 2.0); R124i.z = floatBitsToInt(intBitsToFloat(R5i.y) + intBitsToFloat(backupReg0i)); R127i.w = floatBitsToInt(intBitsToFloat(backupReg1i) + intBitsToFloat(R125i.y)); diff --git a/Quality/BreathOfTheWild_2160pUW/1a14de8e58d5b30a_0000000000000000_vs.txt b/Quality/BreathOfTheWild_2160pUW/1a14de8e58d5b30a_0000000000000000_vs.txt index 4447aabf..016cb95a 100644 --- a/Quality/BreathOfTheWild_2160pUW/1a14de8e58d5b30a_0000000000000000_vs.txt +++ b/Quality/BreathOfTheWild_2160pUW/1a14de8e58d5b30a_0000000000000000_vs.txt @@ -2,7 +2,11 @@ #extension GL_ARB_texture_gather : enable #extension GL_ARB_shading_language_packing : enable // shader 1a14de8e58d5b30a -// TAA restore +// AARestore v2 - restores native aa in game +// original shader dumped using cemu 1.10.0f, BotW 1.3.1 +const float resXScale = 4.0; +const float resYScale = 3.0; + uniform ivec4 uf_remappedVS[5]; uniform vec2 uf_windowSpaceToClipSpaceTransform; layout(binding = 32) uniform sampler2D textureUnitVS0;// Tex0 addr 0x3db8b000 res 12x1x1 dim 1 tm: 2 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler18 ClampX/Y/Z: 2 2 2 border: 1 @@ -141,7 +145,7 @@ R126i.x = floatBitsToInt(intBitsToFloat(R126i.z) + -(0.5)); PV0i.x = R126i.x; PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.x))); PV0i.y = floatBitsToInt(intBitsToFloat(PV0i.y) / 2.0); -PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(uf_remappedVS[4].w)/3.0); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(uf_remappedVS[4].w)/resYScale); R127i.w = floatBitsToInt(-(intBitsToFloat(PV1i.y))); R127i.w = floatBitsToInt(intBitsToFloat(R127i.w) / 2.0); R127i.y = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(R127i.x)); @@ -150,7 +154,7 @@ PS0i = R127i.y; PV1i.x = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(R126i.z)); R125i.y = floatBitsToInt(intBitsToFloat(R5i.x) + intBitsToFloat(R126i.y)); R127i.z = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(PV0i.x)); -R126i.w = floatBitsToInt(intBitsToFloat(R1i.z) + intBitsToFloat(uf_remappedVS[4].z)/4.0); +R126i.w = floatBitsToInt(intBitsToFloat(R1i.z) + intBitsToFloat(uf_remappedVS[4].z)/resXScale); R125i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.x),intBitsToFloat(R127i.x)) + intBitsToFloat(PV0i.y))); PS1i = R125i.w; // 4 @@ -159,18 +163,18 @@ backupReg1i = R126i.z; R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(PV1i.x))); R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(backupReg0i))); R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y),intBitsToFloat(backupReg1i)) + intBitsToFloat(R127i.w))); -R127i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*4.0); +R127i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*resXScale); R127i.w = floatBitsToInt(intBitsToFloat(R127i.w) / 2.0); -R125i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*3.0); +R125i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*resYScale); R125i.z = floatBitsToInt(intBitsToFloat(R125i.z) / 2.0); PS0i = R125i.z; // 5 backupReg0i = R126i.x; backupReg1i = R126i.w; backupReg2i = R126i.y; -R126i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/3.0); +R126i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/resYScale); R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) * 2.0); -R126i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/4.0); +R126i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/resXScale); R126i.y = floatBitsToInt(intBitsToFloat(R126i.y) * 2.0); R124i.z = floatBitsToInt(intBitsToFloat(R5i.y) + intBitsToFloat(backupReg0i)); R126i.w = floatBitsToInt(intBitsToFloat(backupReg1i) + intBitsToFloat(backupReg2i)); diff --git a/Quality/BreathOfTheWild_2160pUW/4721609a424e9a1f_0000000000000000_vs.txt b/Quality/BreathOfTheWild_2160pUW/4721609a424e9a1f_0000000000000000_vs.txt index 7ede4b9b..83d9508e 100644 --- a/Quality/BreathOfTheWild_2160pUW/4721609a424e9a1f_0000000000000000_vs.txt +++ b/Quality/BreathOfTheWild_2160pUW/4721609a424e9a1f_0000000000000000_vs.txt @@ -2,7 +2,11 @@ #extension GL_ARB_texture_gather : enable #extension GL_ARB_shading_language_packing : enable // shader 4721609a424e9a1f -// TAA restore +// AARestore v2 - restores native aa in game +// original shader dumped using cemu 1.10.0f, BotW 1.3.1 +const float resXScale = 4.0; +const float resYScale = 3.0; + uniform ivec4 uf_remappedVS[5]; uniform vec2 uf_windowSpaceToClipSpaceTransform; layout(binding = 32) uniform sampler2D textureUnitVS0;// Tex0 addr 0x3db8b000 res 12x1x1 dim 1 tm: 2 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler18 ClampX/Y/Z: 2 2 2 border: 1 @@ -135,25 +139,25 @@ PS0i = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(R4i.w)); // 1 PV1i.x = floatBitsToInt(intBitsToFloat(R3i.x) + intBitsToFloat(R4i.x)); R126i.y = floatBitsToInt(intBitsToFloat(R5i.x) + intBitsToFloat(R3i.y)); -PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(uf_remappedVS[4].w)/3.0); -R127i.w = floatBitsToInt(intBitsToFloat(R6i.z) + intBitsToFloat(uf_remappedVS[4].z)/4.0); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(uf_remappedVS[4].w)/resYScale); +R127i.w = floatBitsToInt(intBitsToFloat(R6i.z) + intBitsToFloat(uf_remappedVS[4].z)/resXScale); R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(PS0i))); PS1i = R127i.y; // 2 PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(R127i.x)); R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV1i.x))); -R126i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*3.0); +R126i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*resYScale); R126i.z = floatBitsToInt(intBitsToFloat(R126i.z) / 2.0); -R126i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*4.0); +R126i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*resXScale); R126i.w = floatBitsToInt(intBitsToFloat(R126i.w) / 2.0); -R124i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/4.0); +R124i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/resXScale); R124i.y = floatBitsToInt(intBitsToFloat(R124i.y) * 2.0); PS0i = R124i.y; // 3 backupReg0i = R127i.x; backupReg1i = R127i.w; backupReg2i = R127i.y; -R127i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/3.0); +R127i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/resYScale); R127i.x = floatBitsToInt(intBitsToFloat(R127i.x) * 2.0); R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV0i.x))); PV1i.z = floatBitsToInt(intBitsToFloat(R5i.y) + intBitsToFloat(backupReg0i)); diff --git a/Quality/BreathOfTheWild_Switch/0bcd653c18367d59_0000000000000000_vs.txt b/Quality/BreathOfTheWild_Switch/0bcd653c18367d59_0000000000000000_vs.txt index f34b1496..1c063dc3 100644 --- a/Quality/BreathOfTheWild_Switch/0bcd653c18367d59_0000000000000000_vs.txt +++ b/Quality/BreathOfTheWild_Switch/0bcd653c18367d59_0000000000000000_vs.txt @@ -2,7 +2,11 @@ #extension GL_ARB_texture_gather : enable #extension GL_ARB_shading_language_packing : enable // shader 0bcd653c18367d59 -// TAA restore +// AARestore v2 - restores native aa in game +// original shader dumped using cemu 1.10.0f, BotW 1.3.1 +const float resXScale = 1.25; +const float resYScale = 1.25; + uniform ivec4 uf_remappedVS[5]; uniform vec2 uf_windowSpaceToClipSpaceTransform; layout(binding = 32) uniform sampler2D textureUnitVS0;// Tex0 addr 0x3db8b000 res 12x1x1 dim 1 tm: 2 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler18 ClampX/Y/Z: 2 2 2 border: 1 @@ -139,9 +143,9 @@ PS0i = R127i.y; R127i.x = floatBitsToInt(-(intBitsToFloat(R6i.y))); R127i.x = floatBitsToInt(intBitsToFloat(R127i.x) / 2.0); R126i.y = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(R4i.w)); -PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(uf_remappedVS[4].w)/1.25); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(uf_remappedVS[4].w)/resYScale); PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(R3i.x)); -R127i.w = floatBitsToInt(intBitsToFloat(R7i.z) + intBitsToFloat(uf_remappedVS[4].z)/1.25); +R127i.w = floatBitsToInt(intBitsToFloat(R7i.z) + intBitsToFloat(uf_remappedVS[4].z)/resXScale); PS1i = R127i.w; // 2 backupReg0i = R127i.y; @@ -149,26 +153,26 @@ R125i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(R126i.x)); R127i.y = floatBitsToInt(intBitsToFloat(R5i.x) + intBitsToFloat(R125i.y)); R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.y), intBitsToFloat(PV1i.w))); R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.x),intBitsToFloat(R4i.w)) + intBitsToFloat(backupReg0i))); -R125i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/1.25); +R125i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/resXScale); PS0i = R125i.w; // 3 backupReg0i = R126i.y; backupReg1i = R127i.x; -R127i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[4].w)/1.25)); +R127i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[4].w)/resYScale)); R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.x), intBitsToFloat(backupReg0i))); R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R3i.x)) + intBitsToFloat(backupReg1i))); -R124i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*1.25); +R124i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*resXScale); R124i.w = floatBitsToInt(intBitsToFloat(R124i.w) / 2.0); -R125i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*1.25); +R125i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*resYScale); R125i.z = floatBitsToInt(intBitsToFloat(R125i.z) / 2.0); PS1i = R125i.z; // 4 backupReg0i = R126i.x; backupReg1i = R127i.w; backupReg2i = R127i.y; -R126i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/1.25); +R126i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/resYScale); R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) * 2.0); -R127i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/1.25); +R127i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/resXScale); R127i.y = floatBitsToInt(intBitsToFloat(R127i.y) * 2.0); R124i.z = floatBitsToInt(intBitsToFloat(R5i.y) + intBitsToFloat(backupReg0i)); R127i.w = floatBitsToInt(intBitsToFloat(backupReg1i) + intBitsToFloat(R125i.y)); diff --git a/Quality/BreathOfTheWild_Switch/1a14de8e58d5b30a_0000000000000000_vs.txt b/Quality/BreathOfTheWild_Switch/1a14de8e58d5b30a_0000000000000000_vs.txt index 64677706..c210cde5 100644 --- a/Quality/BreathOfTheWild_Switch/1a14de8e58d5b30a_0000000000000000_vs.txt +++ b/Quality/BreathOfTheWild_Switch/1a14de8e58d5b30a_0000000000000000_vs.txt @@ -2,7 +2,11 @@ #extension GL_ARB_texture_gather : enable #extension GL_ARB_shading_language_packing : enable // shader 1a14de8e58d5b30a -// TAA restore +// AARestore v2 - restores native aa in game +// original shader dumped using cemu 1.10.0f, BotW 1.3.1 +const float resXScale = 1.25; +const float resYScale = 1.25; + uniform ivec4 uf_remappedVS[5]; uniform vec2 uf_windowSpaceToClipSpaceTransform; layout(binding = 32) uniform sampler2D textureUnitVS0;// Tex0 addr 0x3db8b000 res 12x1x1 dim 1 tm: 2 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler18 ClampX/Y/Z: 2 2 2 border: 1 @@ -141,7 +145,7 @@ R126i.x = floatBitsToInt(intBitsToFloat(R126i.z) + -(0.5)); PV0i.x = R126i.x; PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.x))); PV0i.y = floatBitsToInt(intBitsToFloat(PV0i.y) / 2.0); -PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(uf_remappedVS[4].w)/1.25); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(uf_remappedVS[4].w)/resYScale); R127i.w = floatBitsToInt(-(intBitsToFloat(PV1i.y))); R127i.w = floatBitsToInt(intBitsToFloat(R127i.w) / 2.0); R127i.y = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(R127i.x)); @@ -150,7 +154,7 @@ PS0i = R127i.y; PV1i.x = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(R126i.z)); R125i.y = floatBitsToInt(intBitsToFloat(R5i.x) + intBitsToFloat(R126i.y)); R127i.z = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(PV0i.x)); -R126i.w = floatBitsToInt(intBitsToFloat(R1i.z) + intBitsToFloat(uf_remappedVS[4].z)/1.25); +R126i.w = floatBitsToInt(intBitsToFloat(R1i.z) + intBitsToFloat(uf_remappedVS[4].z)/resXScale); R125i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.x),intBitsToFloat(R127i.x)) + intBitsToFloat(PV0i.y))); PS1i = R125i.w; // 4 @@ -159,18 +163,18 @@ backupReg1i = R126i.z; R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(PV1i.x))); R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(backupReg0i))); R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y),intBitsToFloat(backupReg1i)) + intBitsToFloat(R127i.w))); -R127i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*1.25); +R127i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*resXScale); R127i.w = floatBitsToInt(intBitsToFloat(R127i.w) / 2.0); -R125i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*1.25); +R125i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*resYScale); R125i.z = floatBitsToInt(intBitsToFloat(R125i.z) / 2.0); PS0i = R125i.z; // 5 backupReg0i = R126i.x; backupReg1i = R126i.w; backupReg2i = R126i.y; -R126i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/1.25); +R126i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/resYScale); R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) * 2.0); -R126i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/1.25); +R126i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/resXScale); R126i.y = floatBitsToInt(intBitsToFloat(R126i.y) * 2.0); R124i.z = floatBitsToInt(intBitsToFloat(R5i.y) + intBitsToFloat(backupReg0i)); R126i.w = floatBitsToInt(intBitsToFloat(backupReg1i) + intBitsToFloat(backupReg2i)); diff --git a/Quality/BreathOfTheWild_Switch/4721609a424e9a1f_0000000000000000_vs.txt b/Quality/BreathOfTheWild_Switch/4721609a424e9a1f_0000000000000000_vs.txt index 82fd0591..cf2191d0 100644 --- a/Quality/BreathOfTheWild_Switch/4721609a424e9a1f_0000000000000000_vs.txt +++ b/Quality/BreathOfTheWild_Switch/4721609a424e9a1f_0000000000000000_vs.txt @@ -2,7 +2,11 @@ #extension GL_ARB_texture_gather : enable #extension GL_ARB_shading_language_packing : enable // shader 4721609a424e9a1f -// TAA restore +// AARestore v2 - restores native aa in game +// original shader dumped using cemu 1.10.0f, BotW 1.3.1 +const float resXScale = 1.25; +const float resYScale = 1.25; + uniform ivec4 uf_remappedVS[5]; uniform vec2 uf_windowSpaceToClipSpaceTransform; layout(binding = 32) uniform sampler2D textureUnitVS0;// Tex0 addr 0x3db8b000 res 12x1x1 dim 1 tm: 2 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler18 ClampX/Y/Z: 2 2 2 border: 1 @@ -135,25 +139,25 @@ PS0i = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(R4i.w)); // 1 PV1i.x = floatBitsToInt(intBitsToFloat(R3i.x) + intBitsToFloat(R4i.x)); R126i.y = floatBitsToInt(intBitsToFloat(R5i.x) + intBitsToFloat(R3i.y)); -PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(uf_remappedVS[4].w)/1.25); -R127i.w = floatBitsToInt(intBitsToFloat(R6i.z) + intBitsToFloat(uf_remappedVS[4].z)/1.25); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(uf_remappedVS[4].w)/resYScale); +R127i.w = floatBitsToInt(intBitsToFloat(R6i.z) + intBitsToFloat(uf_remappedVS[4].z)/resXScale); R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(PS0i))); PS1i = R127i.y; // 2 PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(R127i.x)); R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV1i.x))); -R126i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*1.25); +R126i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*resYScale); R126i.z = floatBitsToInt(intBitsToFloat(R126i.z) / 2.0); -R126i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*1.25); +R126i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*resXScale); R126i.w = floatBitsToInt(intBitsToFloat(R126i.w) / 2.0); -R124i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/1.25); +R124i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/resXScale); R124i.y = floatBitsToInt(intBitsToFloat(R124i.y) * 2.0); PS0i = R124i.y; // 3 backupReg0i = R127i.x; backupReg1i = R127i.w; backupReg2i = R127i.y; -R127i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/1.25); +R127i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/resYScale); R127i.x = floatBitsToInt(intBitsToFloat(R127i.x) * 2.0); R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV0i.x))); PV1i.z = floatBitsToInt(intBitsToFloat(R5i.y) + intBitsToFloat(backupReg0i));