From c5bb44a3b7938d6cbbe635565c0caba6db8e38c2 Mon Sep 17 00:00:00 2001 From: Flextape05 <162949034+Flextape05@users.noreply.github.com> Date: Mon, 13 Jan 2025 02:31:06 +0100 Subject: [PATCH] [Skylanders Trap Team] HUD, blur filter removal and more (#674) Thanks to @Flextape05 for his work on these additions! --- .../47333cb953c7d81d_0000000000000079_ps.txt | 17 + .../Enhancements/BloomRemoval/rules.txt | 6 + .../f5e032e0741202e2_0000000000000079_ps.txt | 17 + .../Enhancements/BlurRemoval/rules.txt | 6 + .../ac3473462e963299_000000000000f249_ps.txt | 17 + .../Enhancements/DOF/rules.txt | 6 + .../648d2ae359c1959f_000000000000001e_ps.txt | 20 + .../Enhancements/HUD/rules.txt | 6 + src/SkylandersGiants/Graphics/patches.txt | 13 + src/SkylandersGiants/Graphics/rules.txt | 145 ++++- .../47333cb953c7d81d_0000000000000079_ps.txt | 17 + .../Enhancements/BloomRemoval/rules.txt | 6 + .../f5e032e0741202e2_0000000000000079_ps.txt | 17 + .../Enhancements/BlurRemoval/rules.txt | 6 + .../ac3473462e963299_000000000000f249_ps.txt | 17 + .../Enhancements/DOF/rules.txt | 6 + .../648d2ae359c1959f_000000000000001e_ps.txt | 20 + .../Enhancements/HUD/rules.txt | 6 + .../Graphics/patches.txt | 6 + .../Graphics/rules.txt | 437 ++++++++----- .../5a0158d2585d695d_0000000000000079_ps.txt | 71 +++ .../93ac80636aa3be84_00000000000003c9_ps.txt | 34 + .../Enhancements/DOF/rules.txt | 6 + .../79ba8affb26df81c_0000000000000079_ps.txt | 53 ++ .../7b4df5b29dded44b_0000000000000079_ps.txt | 106 +++ .../fa2aeaf2c803b3f1_00000000000003c9_ps.txt | 96 +++ .../Enhancements/HUD/rules.txt | 6 + .../7ca59e295dc3c105_0000000000000079_ps.txt | 11 + .../RemoveAntiAliasingBlur/rules.txt | 6 + src/SkylandersSwapForce/Graphics/rules.txt | 20 +- .../616ab07dede06465_00000000000003c9_ps.txt | 17 + .../9d7894300f592516_0000000000000079_ps.txt | 58 ++ .../Enhancements/DOF/rules.txt | 6 + .../35fb394719fd96f4_00000000000003c9_ps.txt | 46 ++ .../648d2ae359c1959f_0000000000000079_ps.txt | 54 ++ .../Enhancements/HUD/rules.txt | 6 + .../c4e4d3514f08aa48_000000000000f249_ps.txt | 602 ++++++++++++++++++ .../Enhancements/MotionBlur/rules.txt | 6 + .../887d460787a04617_00000000000003c9_ps.txt | 51 ++ .../9a67c35f1f18a38a_0000000000000079_ps.txt | 17 + .../RemoveAntiAliasingBlur/rules.txt | 6 + src/SkylandersTrapTeam/Graphics/rules.txt | 24 +- 42 files changed, 1925 insertions(+), 168 deletions(-) create mode 100644 src/SkylandersGiants/Enhancements/BloomRemoval/47333cb953c7d81d_0000000000000079_ps.txt create mode 100644 src/SkylandersGiants/Enhancements/BloomRemoval/rules.txt create mode 100644 src/SkylandersGiants/Enhancements/BlurRemoval/f5e032e0741202e2_0000000000000079_ps.txt create mode 100644 src/SkylandersGiants/Enhancements/BlurRemoval/rules.txt create mode 100644 src/SkylandersGiants/Enhancements/DOF/ac3473462e963299_000000000000f249_ps.txt create mode 100644 src/SkylandersGiants/Enhancements/DOF/rules.txt create mode 100644 src/SkylandersGiants/Enhancements/HUD/648d2ae359c1959f_000000000000001e_ps.txt create mode 100644 src/SkylandersGiants/Enhancements/HUD/rules.txt create mode 100644 src/SkylandersGiants/Graphics/patches.txt create mode 100644 src/SkylandersSpyrosAdventure/Enhancements/BloomRemoval/47333cb953c7d81d_0000000000000079_ps.txt create mode 100644 src/SkylandersSpyrosAdventure/Enhancements/BloomRemoval/rules.txt create mode 100644 src/SkylandersSpyrosAdventure/Enhancements/BlurRemoval/f5e032e0741202e2_0000000000000079_ps.txt create mode 100644 src/SkylandersSpyrosAdventure/Enhancements/BlurRemoval/rules.txt create mode 100644 src/SkylandersSpyrosAdventure/Enhancements/DOF/ac3473462e963299_000000000000f249_ps.txt create mode 100644 src/SkylandersSpyrosAdventure/Enhancements/DOF/rules.txt create mode 100644 src/SkylandersSpyrosAdventure/Enhancements/HUD/648d2ae359c1959f_000000000000001e_ps.txt create mode 100644 src/SkylandersSpyrosAdventure/Enhancements/HUD/rules.txt create mode 100644 src/SkylandersSpyrosAdventure/Graphics/patches.txt create mode 100644 src/SkylandersSwapForce/Enhancements/DOF/5a0158d2585d695d_0000000000000079_ps.txt create mode 100644 src/SkylandersSwapForce/Enhancements/DOF/93ac80636aa3be84_00000000000003c9_ps.txt create mode 100644 src/SkylandersSwapForce/Enhancements/DOF/rules.txt create mode 100644 src/SkylandersSwapForce/Enhancements/HUD/79ba8affb26df81c_0000000000000079_ps.txt create mode 100644 src/SkylandersSwapForce/Enhancements/HUD/7b4df5b29dded44b_0000000000000079_ps.txt create mode 100644 src/SkylandersSwapForce/Enhancements/HUD/fa2aeaf2c803b3f1_00000000000003c9_ps.txt create mode 100644 src/SkylandersSwapForce/Enhancements/HUD/rules.txt create mode 100644 src/SkylandersSwapForce/Enhancements/RemoveAntiAliasingBlur/7ca59e295dc3c105_0000000000000079_ps.txt create mode 100644 src/SkylandersSwapForce/Enhancements/RemoveAntiAliasingBlur/rules.txt create mode 100644 src/SkylandersTrapTeam/Enhancements/DOF/616ab07dede06465_00000000000003c9_ps.txt create mode 100644 src/SkylandersTrapTeam/Enhancements/DOF/9d7894300f592516_0000000000000079_ps.txt create mode 100644 src/SkylandersTrapTeam/Enhancements/DOF/rules.txt create mode 100644 src/SkylandersTrapTeam/Enhancements/HUD/35fb394719fd96f4_00000000000003c9_ps.txt create mode 100644 src/SkylandersTrapTeam/Enhancements/HUD/648d2ae359c1959f_0000000000000079_ps.txt create mode 100644 src/SkylandersTrapTeam/Enhancements/HUD/rules.txt create mode 100644 src/SkylandersTrapTeam/Enhancements/MotionBlur/c4e4d3514f08aa48_000000000000f249_ps.txt create mode 100644 src/SkylandersTrapTeam/Enhancements/MotionBlur/rules.txt create mode 100644 src/SkylandersTrapTeam/Enhancements/RemoveAntiAliasingBlur/887d460787a04617_00000000000003c9_ps.txt create mode 100644 src/SkylandersTrapTeam/Enhancements/RemoveAntiAliasingBlur/9a67c35f1f18a38a_0000000000000079_ps.txt create mode 100644 src/SkylandersTrapTeam/Enhancements/RemoveAntiAliasingBlur/rules.txt diff --git a/src/SkylandersGiants/Enhancements/BloomRemoval/47333cb953c7d81d_0000000000000079_ps.txt b/src/SkylandersGiants/Enhancements/BloomRemoval/47333cb953c7d81d_0000000000000079_ps.txt new file mode 100644 index 000000000..d01d81b43 --- /dev/null +++ b/src/SkylandersGiants/Enhancements/BloomRemoval/47333cb953c7d81d_0000000000000079_ps.txt @@ -0,0 +1,17 @@ +#version 460 + +// Define uniform binding for Vulkan and OpenGL compatibility +#ifdef VULKAN + layout(set = 1, binding = 0) uniform sampler2D textureUnitPS0; +#else + uniform sampler2D textureUnitPS0; +#endif + +// Input and output locations +layout(location = 0) in vec2 passUV; +layout(location = 0) out vec4 passPixelColor0; + +void main() +{ + passPixelColor0 = texture(textureUnitPS0, passUV); +} diff --git a/src/SkylandersGiants/Enhancements/BloomRemoval/rules.txt b/src/SkylandersGiants/Enhancements/BloomRemoval/rules.txt new file mode 100644 index 000000000..b4284f157 --- /dev/null +++ b/src/SkylandersGiants/Enhancements/BloomRemoval/rules.txt @@ -0,0 +1,6 @@ +[Definition] +titleIds = 000500001010D700,0005000010116000 +name = Bloom removal +path = "Skylanders: Giants/Enhancements/Bloom removal" +description = Removes the bloom when playing the game||Made by Flextape05 +version = 6 diff --git a/src/SkylandersGiants/Enhancements/BlurRemoval/f5e032e0741202e2_0000000000000079_ps.txt b/src/SkylandersGiants/Enhancements/BlurRemoval/f5e032e0741202e2_0000000000000079_ps.txt new file mode 100644 index 000000000..d01d81b43 --- /dev/null +++ b/src/SkylandersGiants/Enhancements/BlurRemoval/f5e032e0741202e2_0000000000000079_ps.txt @@ -0,0 +1,17 @@ +#version 460 + +// Define uniform binding for Vulkan and OpenGL compatibility +#ifdef VULKAN + layout(set = 1, binding = 0) uniform sampler2D textureUnitPS0; +#else + uniform sampler2D textureUnitPS0; +#endif + +// Input and output locations +layout(location = 0) in vec2 passUV; +layout(location = 0) out vec4 passPixelColor0; + +void main() +{ + passPixelColor0 = texture(textureUnitPS0, passUV); +} diff --git a/src/SkylandersGiants/Enhancements/BlurRemoval/rules.txt b/src/SkylandersGiants/Enhancements/BlurRemoval/rules.txt new file mode 100644 index 000000000..25284c6e3 --- /dev/null +++ b/src/SkylandersGiants/Enhancements/BlurRemoval/rules.txt @@ -0,0 +1,6 @@ +[Definition] +titleIds = 000500001010D700,0005000010116000 +name = Blur filter removal +path = "Skylanders: Giants/Enhancements/Blur filter removal" +description = Removes the muddy blur AA when playing the game||Made by Flextape05 +version = 6 diff --git a/src/SkylandersGiants/Enhancements/DOF/ac3473462e963299_000000000000f249_ps.txt b/src/SkylandersGiants/Enhancements/DOF/ac3473462e963299_000000000000f249_ps.txt new file mode 100644 index 000000000..d01d81b43 --- /dev/null +++ b/src/SkylandersGiants/Enhancements/DOF/ac3473462e963299_000000000000f249_ps.txt @@ -0,0 +1,17 @@ +#version 460 + +// Define uniform binding for Vulkan and OpenGL compatibility +#ifdef VULKAN + layout(set = 1, binding = 0) uniform sampler2D textureUnitPS0; +#else + uniform sampler2D textureUnitPS0; +#endif + +// Input and output locations +layout(location = 0) in vec2 passUV; +layout(location = 0) out vec4 passPixelColor0; + +void main() +{ + passPixelColor0 = texture(textureUnitPS0, passUV); +} diff --git a/src/SkylandersGiants/Enhancements/DOF/rules.txt b/src/SkylandersGiants/Enhancements/DOF/rules.txt new file mode 100644 index 000000000..bcdcd0472 --- /dev/null +++ b/src/SkylandersGiants/Enhancements/DOF/rules.txt @@ -0,0 +1,6 @@ +[Definition] +titleIds = 000500001010D700,0005000010116000 +name = BackgroundBlur Removal +path = "Skylanders: Giants/Enhancements/DOF removal" +description = disables the games backbground blur||Made by Flextape05 +version = 6 diff --git a/src/SkylandersGiants/Enhancements/HUD/648d2ae359c1959f_000000000000001e_ps.txt b/src/SkylandersGiants/Enhancements/HUD/648d2ae359c1959f_000000000000001e_ps.txt new file mode 100644 index 000000000..9198152c6 --- /dev/null +++ b/src/SkylandersGiants/Enhancements/HUD/648d2ae359c1959f_000000000000001e_ps.txt @@ -0,0 +1,20 @@ +#version 460 + +layout(set = 1, binding = 1, std140) uniform ufBlock +{ + ivec4 uf_remappedPS[3]; + float uf_alphaTestRef; // Threshold for alpha testing + vec4 uf_fragCoordScale; +} _86; + +layout(set = 1, binding = 0) uniform sampler2D textureUnitPS0; + +layout(location = 0) in vec4 passParameterSem128; +layout(location = 1) in vec4 passParameterSem129; +layout(location = 0) out vec4 passPixelColor0; + +void main() +{ + // Set the fragment color to fully transparent + passPixelColor0 = vec4(0.0, 0.0, 0.0, 0.0); +} diff --git a/src/SkylandersGiants/Enhancements/HUD/rules.txt b/src/SkylandersGiants/Enhancements/HUD/rules.txt new file mode 100644 index 000000000..53e98b339 --- /dev/null +++ b/src/SkylandersGiants/Enhancements/HUD/rules.txt @@ -0,0 +1,6 @@ +[Definition] +titleIds = 000500001010D700,0005000010116000 +name = No HUD +path = "Skylanders: Giants/Enhancements/No HUD" +description = Removes the HUD from the game (breaks the menus)||Made by Flextape05 +version = 6 diff --git a/src/SkylandersGiants/Graphics/patches.txt b/src/SkylandersGiants/Graphics/patches.txt new file mode 100644 index 000000000..435558801 --- /dev/null +++ b/src/SkylandersGiants/Graphics/patches.txt @@ -0,0 +1,13 @@ +[tfbgame_gold0EU] +moduleMatches = 0x62cc63a5 +0x10007e18 = .float $width/$height +0x10007e10 = .float $hudX +0x10007e14 = .float $hudY +0x10007c00 = .float $fov + +[tfbgame_gold0US] +moduleMatches = 0x71e3cf7e +0x10007e18 = .float $width/$height +0x10007e10 = .float $hudX +0x10007e14 = .float $hudY +0x10007c00 = .float $fov diff --git a/src/SkylandersGiants/Graphics/rules.txt b/src/SkylandersGiants/Graphics/rules.txt index 4ed972ca7..cf036c612 100644 --- a/src/SkylandersGiants/Graphics/rules.txt +++ b/src/SkylandersGiants/Graphics/rules.txt @@ -2,7 +2,8 @@ titleIds = 000500001010D700,0005000010116000 name = Resolution path = "Skylanders: Giants/Graphics" -description = Changes the resolution of the game. +description = Changes the resolution of the game.||Aspect ratio patch Made by Flextape05 + version = 7 [Default] @@ -10,9 +11,19 @@ $width = 1280 $height = 720 $gameWidth = 1280 $gameHeight = 720 - +$padWidth = 854 +$padHeight = 480 +$shadowRes = 1 +$hudY = 720 +$hudX = 1280 +$fov = 57.29578 # Resolution +[Preset] +category = Resolution +name = 1280x720 (Default) +$width = 1280 +$height = 720 [Preset] category = Resolution @@ -28,8 +39,9 @@ $height = 540 [Preset] category = Resolution -name = 1280x720 (Default) -default = 1 +name = 1024x576 +$width = 1024 +$height = 576 [Preset] category = Resolution @@ -73,6 +85,131 @@ name = 7680x4320 $width = 7680 $height = 4320 +[Preset] +category = Resolution +name = 2560x1080(21:9) +$width = 2560 +$height = 1080 +$hudY = 720 +$hudX = 1720 +$fov = 48.29578 + +[Preset] +category = Resolution +name = 3440x1440(21:9) +$width = 3440 +$height = 1440 +$hudY = 720 +$hudX = 1720 +$fov = 48.29578 + +[Preset] +category = Resolution +name = 5120x2160(21:9) +$width = 5120 +$height = 2160 +$hudY = 720 +$hudX = 1720 +$fov = 48.29578 + +[Preset] +category = Resolution +name = 3840x1080(32:9) +$width = 3840 +$height = 1080 +$hudY = 720 +$hudX = 2560 +$fov = 36.19578 + +[Preset] +category = Resolution +name = 5120x1440(32:9) +$width = 5120 +$height = 1440 +$hudY = 720 +$hudX = 2560 +$fov = 36.19578 + +[Preset] +category = Resolution +name = 5760x1080(48:9) +$width = 5760 +$height = 1080 +$hudY = 720 +$hudX = 3840 +$fov = 42.39578 + +[Preset] +category = Resolution +name = 7680x1440(48:9) +$width = 7680 +$height = 1440 +$hudY = 720 +$hudX = 3840 +$fov = 42.39578 + +[Preset] +category = Resolution +name = 640x480(4:3) +$width = 640 +$height = 480 +$hudY = 768 +$hudX = 1024 +$fov = 0.0039215689 + +[Preset] +category = Resolution +name = 1024x768(4:3) +$width = 1024 +$height = 768 +$hudY = 768 +$hudX = 1024 +$fov = 0.0039215689 + +[Preset] +category = Resolution +name = 1600x1200(4:3) +$width = 1600 +$height = 1200 +$hudY = 768 +$hudX = 1024 +$fov = 0.0039215689 + +[Preset] +category = Resolution +name = 1280x800(16:10) +$width = 1280 +$height = 800 +$hudY = 800 +$hudX = 1280 +$fov = 59.39578 + +[Preset] +category = Resolution +name = 1680x1050(16:10) +$width = 1680 +$height = 1050 +$hudY = 800 +$hudX = 1280 +$fov = 59.39578 + +[Preset] +category = Resolution +name = 1920x1200(16:10) +$width = 1920 +$height = 1200 +$hudY = 800 +$hudX = 1280 +$fov = 59.39578 + +[Preset] +category = Resolution +name = 2560x1600(16:10) +$width = 2560 +$height = 1600 +$hudY = 800 +$hudX = 1280 +$fov = 59.39578 [TextureRedefine] width = 1280 diff --git a/src/SkylandersSpyrosAdventure/Enhancements/BloomRemoval/47333cb953c7d81d_0000000000000079_ps.txt b/src/SkylandersSpyrosAdventure/Enhancements/BloomRemoval/47333cb953c7d81d_0000000000000079_ps.txt new file mode 100644 index 000000000..d01d81b43 --- /dev/null +++ b/src/SkylandersSpyrosAdventure/Enhancements/BloomRemoval/47333cb953c7d81d_0000000000000079_ps.txt @@ -0,0 +1,17 @@ +#version 460 + +// Define uniform binding for Vulkan and OpenGL compatibility +#ifdef VULKAN + layout(set = 1, binding = 0) uniform sampler2D textureUnitPS0; +#else + uniform sampler2D textureUnitPS0; +#endif + +// Input and output locations +layout(location = 0) in vec2 passUV; +layout(location = 0) out vec4 passPixelColor0; + +void main() +{ + passPixelColor0 = texture(textureUnitPS0, passUV); +} diff --git a/src/SkylandersSpyrosAdventure/Enhancements/BloomRemoval/rules.txt b/src/SkylandersSpyrosAdventure/Enhancements/BloomRemoval/rules.txt new file mode 100644 index 000000000..877be0546 --- /dev/null +++ b/src/SkylandersSpyrosAdventure/Enhancements/BloomRemoval/rules.txt @@ -0,0 +1,6 @@ +[Definition] +titleIds = 0005000010142D00 +name = Bloom removal +path = "Skylanders: Spyro's Adventure/Enhancements/Bloom removal" +description = Removes the bloom when playing the game||Made by Flextape05 +version = 6 diff --git a/src/SkylandersSpyrosAdventure/Enhancements/BlurRemoval/f5e032e0741202e2_0000000000000079_ps.txt b/src/SkylandersSpyrosAdventure/Enhancements/BlurRemoval/f5e032e0741202e2_0000000000000079_ps.txt new file mode 100644 index 000000000..d01d81b43 --- /dev/null +++ b/src/SkylandersSpyrosAdventure/Enhancements/BlurRemoval/f5e032e0741202e2_0000000000000079_ps.txt @@ -0,0 +1,17 @@ +#version 460 + +// Define uniform binding for Vulkan and OpenGL compatibility +#ifdef VULKAN + layout(set = 1, binding = 0) uniform sampler2D textureUnitPS0; +#else + uniform sampler2D textureUnitPS0; +#endif + +// Input and output locations +layout(location = 0) in vec2 passUV; +layout(location = 0) out vec4 passPixelColor0; + +void main() +{ + passPixelColor0 = texture(textureUnitPS0, passUV); +} diff --git a/src/SkylandersSpyrosAdventure/Enhancements/BlurRemoval/rules.txt b/src/SkylandersSpyrosAdventure/Enhancements/BlurRemoval/rules.txt new file mode 100644 index 000000000..3f98b87b3 --- /dev/null +++ b/src/SkylandersSpyrosAdventure/Enhancements/BlurRemoval/rules.txt @@ -0,0 +1,6 @@ +[Definition] +titleIds = 0005000010142D00 +name = Blur filter removal +path = "Skylanders: Spyro's Adventure/Enhancements/Blur filter removal" +description = Removes the muddy blur AA when playing the game||Made by Flextape05 +version = 6 diff --git a/src/SkylandersSpyrosAdventure/Enhancements/DOF/ac3473462e963299_000000000000f249_ps.txt b/src/SkylandersSpyrosAdventure/Enhancements/DOF/ac3473462e963299_000000000000f249_ps.txt new file mode 100644 index 000000000..d01d81b43 --- /dev/null +++ b/src/SkylandersSpyrosAdventure/Enhancements/DOF/ac3473462e963299_000000000000f249_ps.txt @@ -0,0 +1,17 @@ +#version 460 + +// Define uniform binding for Vulkan and OpenGL compatibility +#ifdef VULKAN + layout(set = 1, binding = 0) uniform sampler2D textureUnitPS0; +#else + uniform sampler2D textureUnitPS0; +#endif + +// Input and output locations +layout(location = 0) in vec2 passUV; +layout(location = 0) out vec4 passPixelColor0; + +void main() +{ + passPixelColor0 = texture(textureUnitPS0, passUV); +} diff --git a/src/SkylandersSpyrosAdventure/Enhancements/DOF/rules.txt b/src/SkylandersSpyrosAdventure/Enhancements/DOF/rules.txt new file mode 100644 index 000000000..d17909c0c --- /dev/null +++ b/src/SkylandersSpyrosAdventure/Enhancements/DOF/rules.txt @@ -0,0 +1,6 @@ +[Definition] +titleIds = 0005000010142D00 +name = BackgroundBlur Removal +path = "Skylanders: Spyro's Adventure/Enhancements/DOF removal" +description = disables the games backbground blur||Made by Flextape05 +version = 6 diff --git a/src/SkylandersSpyrosAdventure/Enhancements/HUD/648d2ae359c1959f_000000000000001e_ps.txt b/src/SkylandersSpyrosAdventure/Enhancements/HUD/648d2ae359c1959f_000000000000001e_ps.txt new file mode 100644 index 000000000..9198152c6 --- /dev/null +++ b/src/SkylandersSpyrosAdventure/Enhancements/HUD/648d2ae359c1959f_000000000000001e_ps.txt @@ -0,0 +1,20 @@ +#version 460 + +layout(set = 1, binding = 1, std140) uniform ufBlock +{ + ivec4 uf_remappedPS[3]; + float uf_alphaTestRef; // Threshold for alpha testing + vec4 uf_fragCoordScale; +} _86; + +layout(set = 1, binding = 0) uniform sampler2D textureUnitPS0; + +layout(location = 0) in vec4 passParameterSem128; +layout(location = 1) in vec4 passParameterSem129; +layout(location = 0) out vec4 passPixelColor0; + +void main() +{ + // Set the fragment color to fully transparent + passPixelColor0 = vec4(0.0, 0.0, 0.0, 0.0); +} diff --git a/src/SkylandersSpyrosAdventure/Enhancements/HUD/rules.txt b/src/SkylandersSpyrosAdventure/Enhancements/HUD/rules.txt new file mode 100644 index 000000000..e7f280f3e --- /dev/null +++ b/src/SkylandersSpyrosAdventure/Enhancements/HUD/rules.txt @@ -0,0 +1,6 @@ +[Definition] +titleIds = 0005000010142D00 +name = No HUD +path = "Skylanders: Spyro's Adventure/Enhancements/No HUD" +description = Removes the HUD from the game (breaks the menus)||Made by Flextape05 +version = 6 diff --git a/src/SkylandersSpyrosAdventure/Graphics/patches.txt b/src/SkylandersSpyrosAdventure/Graphics/patches.txt new file mode 100644 index 000000000..4c1d397d4 --- /dev/null +++ b/src/SkylandersSpyrosAdventure/Graphics/patches.txt @@ -0,0 +1,6 @@ +[tfbgame_cafe0] +moduleMatches = 0xc22a1809 +0x10007b3c = .float $width/$height #Main aspect ratio +0x10007b34 = .float $hudX +0x10007b38 = .float $hudY +0x10007b7c = .float $fov \ No newline at end of file diff --git a/src/SkylandersSpyrosAdventure/Graphics/rules.txt b/src/SkylandersSpyrosAdventure/Graphics/rules.txt index 82a83f062..6d10d126b 100644 --- a/src/SkylandersSpyrosAdventure/Graphics/rules.txt +++ b/src/SkylandersSpyrosAdventure/Graphics/rules.txt @@ -1,149 +1,288 @@ -[Definition] -titleIds = 0005000010142D00 -name = Resolution V2 -path = "Skylanders: Spyro's Adventure/Graphics" -description = Changes the resolution of the game. Gamepad will only function with base resolution. Using the seperate gamepad view impacts game performance.||Made by Mr.Blinker -version = 6 - -[Default] -$tvWidth = 1280 -$tvHeight = 720 -$gamepadWidth = 854 -$gamepadHeight = 480 -$gameWidth = 1280 -$gameHeight = 720 -$shadowRes = 1 - -# TV Resolution - -[Preset] -category = Resolution -name = 1280x720 (Default) -$tvWidth = 1280 -$tvHeight = 720 - -[Preset] -category = Resolution -name = 640x360 -$tvWidth = 640 -$tvHeight = 360 - -[Preset] -category = Resolution -name = 960x540 -$tvWidth = 960 -$tvHeight = 540 - -[Preset] -category = Resolution -name = 1600x900 -$tvWidth = 1600 -$tvHeight = 900 - -[Preset] -category = Resolution -name = 1920x1080 -$tvWidth = 1920 -$tvHeight = 1080 - -[Preset] -category = Resolution -name = 2560x1440 -$tvWidth = 2560 -$tvHeight = 1440 - -[Preset] -category = Resolution -name = 3200x1800 -$tvWidth = 3200 -$tvHeight = 1800 - -[Preset] -category = Resolution -name = 3840x2160 -$tvWidth = 3840 -$tvHeight = 2160 - -[Preset] -category = Resolution -name = 5120x2880 -$tvWidth = 5120 -$tvHeight = 2880 - -[Preset] -category = Resolution -name = 7680x4320 -$tvWidth = 7680 -$tvHeight = 4320 - -# Gamepad Resolution - -[Preset] -name = 854x480 (Default) -category = Gamepad Resolution -$gamepadWidth = 854 -$gamepadHeight = 480 - - -# Shadow Quality - -[Preset] -category = Shadow Quality -name = Medium (100%, Default) - -[Preset] -category = Shadow Quality -name = Low (50%) -$shadowRes = 0.5 - -[Preset] -category = Shadow Quality -name = High (200%) -$shadowRes = 2 - -[Preset] -category = Shadow Quality -name = Ultra (300%) -$shadowRes = 3 - -[Preset] -category = Shadow Quality -name = Extreme (400%) -$shadowRes = 4 - -# Texture Redefines - -[TextureRedefine] # Game output and hud resolution -width = 1280 -height = 720 -formats = 0x01a,0x011 -overwriteWidth = ($tvWidth/$gameWidth) * 1280 -overwriteHeight = ($tvHeight/$gameHeight) * 720 - -[TextureRedefine] # Gamepad resolution -width = 864 -height = 480 -formats = 0x01a -overwriteWidth = $gamepadWidth -overwriteHeight = $gamepadHeight - -[TextureRedefine] # Stage rendering -width = 1024 -height = 576 -formats = 0x01a,0x011,0x80e -overwriteWidth = ($tvWidth/$gameWidth) * 1024 -overwriteHeight = ($tvHeight/$gameHeight) * 576 - -[TextureRedefine] # Squashed/bloom alt viewport -width = 512 -height = 576 -formats = 0x01a,0x80e,0x011 -overwriteWidth = ($tvWidth/$gameWidth) * 512 -overwriteHeight = ($tvHeight/$gameHeight) * 576 - -[TextureRedefine] # Half-res viewport depth, blur and bloom -width = 512 -height = 288 -formats = 0x01a,0x80e,0x011 -overwriteWidth = ($tvWidth/$gameWidth) * 512 -overwriteHeight = ($tvHeight/$gameHeight) * 288 +[Definition] +titleIds = 0005000010142D00 +name = Resolution +path = "Skylanders: Spyro's Adventure/Graphics" +description = Changes the resolution of the game||Made by Flextape05 +version = 6 + +[Default] +$width = 1280 +$height = 720 +$gameWidth = 1280 +$gameHeight = 720 +$padWidth = 854 +$padHeight = 480 +$shadowRes = 1 +$hudY = 720 +$hudX = 1280 +$fov = 57.29578 + +# Resolution + +[Preset] +category = Resolution +name = 1024x576 (Default) +$width = 1024 +$height = 576 + +[Preset] +category = Resolution +name = 640x360 +$width = 640 +$height = 360 + +[Preset] +category = Resolution +name = 960x540 +$width = 960 +$height = 540 + +[Preset] +category = Resolution +name = 1280x720 +$width = 1280 +$height = 720 + +[Preset] +category = Resolution +name = 1600x900 +$width = 1600 +$height = 900 + +[Preset] +category = Resolution +name = 1920x1080 +$width = 1920 +$height = 1080 + +[Preset] +category = Resolution +name = 2560x1440 +$width = 2560 +$height = 1440 + +[Preset] +category = Resolution +name = 3200x1800 +$width = 3200 +$height = 1800 + +[Preset] +category = Resolution +name = 3840x2160 +$width = 3840 +$height = 2160 + +[Preset] +category = Resolution +name = 5120x2880 +$width = 5120 +$height = 2880 + +[Preset] +category = Resolution +name = 7680x4320 +$width = 7680 +$height = 4320 + +[Preset] +category = Resolution +name = 2560x1080(21:9) +$width = 2560 +$height = 1080 +$hudY = 720 +$hudX = 1720 +$fov = 0.0159 + +[Preset] +category = Resolution +name = 3440x1440(21:9) +$width = 3440 +$height = 1440 +$hudY = 720 +$hudX = 1720 +$fov = 45.29578 + +[Preset] +category = Resolution +name = 5120x2160(21:9) +$width = 5120 +$height = 2160 +$hudY = 720 +$hudX = 1720 +$fov = 45.29578 + +[Preset] +category = Resolution +name = 3840x1080(32:9) +$width = 3840 +$height = 1080 +$hudY = 720 +$hudX = 2560 +$fov = 38.89578 + +[Preset] +category = Resolution +name = 5120x1440(32:9) +$width = 5120 +$height = 1440 +$hudY = 720 +$hudX = 2560 +$fov = 38.89578 + +[Preset] +category = Resolution +name = 5760x1080(48:9) +$width = 5760 +$height = 1080 +$hudY = 720 +$hudX = 3840 +$fov = 44.39578 + +[Preset] +category = Resolution +name = 7680x1440(48:9) +$width = 7680 +$height = 1440 +$hudY = 720 +$hudX = 3840 +$fov = 44.39578 + +[Preset] +category = Resolution +name = 640x480(4:3) +$width = 640 +$height = 480 +$hudY = 768 +$hudX = 1024 +$fov = 0.0039215689 + +[Preset] +category = Resolution +name = 1024x768(4:3) +$width = 1024 +$height = 768 +$hudY = 768 +$hudX = 1024 +$fov = 0.0039215689 + +[Preset] +category = Resolution +name = 1600x1200(4:3) +$width = 1600 +$height = 1200 +$hudY = 768 +$hudX = 1024 +$fov = 0.0039215689 + +[Preset] +category = Resolution +name = 1280x800(16:10) +$width = 1280 +$height = 800 +$hudY = 800 +$hudX = 1280 +$fov = 60.89578 + +[Preset] +category = Resolution +name = 1680x1050(16:10) +$width = 1680 +$height = 1050 +$hudY = 800 +$hudX = 1280 +$fov = 60.89578 + +[Preset] +category = Resolution +name = 1920x1200(16:10) +$width = 1920 +$height = 1200 +$hudY = 800 +$hudX = 1280 +$fov = 60.89578 + +[Preset] +category = Resolution +name = 2560x1600(16:10) +$width = 2560 +$height = 1600 +$hudY = 800 +$hudX = 1280 +$fov = 60.89578 + +# Texture Redefines + +[TextureRedefine] # Game output and hud resolution +width = 1280 +height = 720 +formats = 0x01a,0x011 +overwriteWidth = ($width/$gameWidth) * 1280 +overwriteHeight = ($height/$gameHeight) * 720 + +[TextureRedefine] # Stage rendering +width = 1024 +height = 576 +formats = 0x01a,0x011,0x80e,0x820 +overwriteWidth = ($width/$gameWidth) * 1280 +overwriteHeight = ($height/$gameHeight) * 720 + +[TextureRedefine] # Squashed/bloom alt viewport +width = 512 +height = 576 +formats = 0x01a,0x80e,0x011 +overwriteWidth = ($width/$gameWidth) * 512 +overwriteHeight = ($height/$gameHeight) * 576 + +[TextureRedefine] # Half-res viewport depth, blur and bloom +width = 512 +height = 288 +formats = 0x01a,0x80e,0x011 +overwriteWidth = ($width/$gameWidth) * 512 +overwriteHeight = ($height/$gameHeight) * 288 + +# Ambient occlusion + +[TextureRedefine] +width = 128 +height = 576 +formats = 0x01a +overwriteWidth = ($width/$gameWidth) * 128 +overwriteHeight = ($height/$gameHeight) * 576 + +[TextureRedefine] +width = 102 +height = 576 +formats = 0x01a +overwriteWidth = ($width/$gameWidth) * 102 +overwriteHeight = ($height/$gameHeight) * 576 + +[TextureRedefine] +width = 128 +height = 64 +formats = 0x01a +overwriteWidth = ($width/$gameWidth) * 128 +overwriteHeight = ($height/$gameHeight) * 64 + +[TextureRedefine] +width = 102 +height = 57 +formats = 0x01a +overwriteWidth = ($width/$gameWidth) * 102 +overwriteHeight = ($height/$gameHeight) * 57 + +# Bloom blur + +[TextureRedefine] # Squashed bloom +width = 256 +height = 256 +formats = 0x01a +overwriteWidth = ($width/$gameWidth) * 256 +overwriteHeight = ($height/$gameHeight) * 256 + +[TextureRedefine] +width = 256 +height = 144 +formats = 0x01a +overwriteWidth = ($width/$gameWidth) * 256 +overwriteHeight = ($height/$gameHeight) * 144 diff --git a/src/SkylandersSwapForce/Enhancements/DOF/5a0158d2585d695d_0000000000000079_ps.txt b/src/SkylandersSwapForce/Enhancements/DOF/5a0158d2585d695d_0000000000000079_ps.txt new file mode 100644 index 000000000..641d18405 --- /dev/null +++ b/src/SkylandersSwapForce/Enhancements/DOF/5a0158d2585d695d_0000000000000079_ps.txt @@ -0,0 +1,71 @@ +#version 430 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +// shader %08x%08x +// start of shader inputs/outputs, predetermined by Cemu. Do not touch +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +#ifdef VULKAN +layout(set = 1, binding = 1) uniform ufBlock +{ +uniform vec4 uf_fragCoordScale; +}; +#else +uniform vec2 uf_fragCoordScale; +#endif +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +layout(location = 0) in vec4 passParameterSem133; +layout(location = 1) in vec4 passParameterSem134; +layout(location = 2) in vec4 passParameterSem135; +layout(location = 0) out vec4 passPixelColor0; +// end of shader inputs/outputs +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +vec4 R0f = vec4(0.0); +vec4 R1f = vec4(0.0); +vec4 R2f = vec4(0.0); +vec4 R3f = vec4(0.0); +vec4 R4f = vec4(0.0); +vec4 R5f = vec4(0.0); +vec4 R125f = vec4(0.0); +vec4 R126f = vec4(0.0); +vec4 R127f = vec4(0.0); +float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f; +vec4 PV0f = vec4(0.0), PV1f = vec4(0.0); +float PS0f = 0.0, PS1f = 0.0; +vec4 tempf = vec4(0.0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0f = passParameterSem133; +R1f = passParameterSem134; +R2f = passParameterSem135; +R0f.xyzw = (texture(textureUnitPS0, R0f.wx).xyzw); +R3f.xyzw = (texture(textureUnitPS0, R1f.yx).xyzw); +R4f.xyzw = (texture(textureUnitPS0, R1f.zx).xyzw); +R1f.xyzw = (texture(textureUnitPS0, R1f.wx).xyzw); +R2f.xyzw = (texture(textureUnitPS0, R2f.yx).xyzw); +// export +passPixelColor0 = vec4(R5f.x, R5f.y, R5f.z, R5f.w); +} diff --git a/src/SkylandersSwapForce/Enhancements/DOF/93ac80636aa3be84_00000000000003c9_ps.txt b/src/SkylandersSwapForce/Enhancements/DOF/93ac80636aa3be84_00000000000003c9_ps.txt new file mode 100644 index 000000000..b129adc43 --- /dev/null +++ b/src/SkylandersSwapForce/Enhancements/DOF/93ac80636aa3be84_00000000000003c9_ps.txt @@ -0,0 +1,34 @@ +#version 430 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable + +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy * uf_fragCoordScale.xy, gl_FragCoord.zw) +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy * uf_fragCoordScale, gl_FragCoord.zw) +#endif + +#ifdef VULKAN +layout(set = 1, binding = 2) uniform ufBlock +{ + uniform vec4 uf_fragCoordScale; +}; +#else +uniform vec2 uf_fragCoordScale; +#endif + +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +layout(location = 0) in vec4 passParameterSem133; +layout(location = 0) out vec4 passPixelColor0; + +void main() +{ + // Bypass all logic and pass the input texture as output + passPixelColor0 = texture(textureUnitPS0, passParameterSem133.xy); +} diff --git a/src/SkylandersSwapForce/Enhancements/DOF/rules.txt b/src/SkylandersSwapForce/Enhancements/DOF/rules.txt new file mode 100644 index 000000000..c7e42a4a5 --- /dev/null +++ b/src/SkylandersSwapForce/Enhancements/DOF/rules.txt @@ -0,0 +1,6 @@ +[Definition] +titleIds = 0005000010139200,0005000010140400 +name = Background Blur Removal +path = "Skylanders Swap Force/Enhancements/DOF removal" +description = disables the games backbground blur||Made by Flextape05 +version = 6 diff --git a/src/SkylandersSwapForce/Enhancements/HUD/79ba8affb26df81c_0000000000000079_ps.txt b/src/SkylandersSwapForce/Enhancements/HUD/79ba8affb26df81c_0000000000000079_ps.txt new file mode 100644 index 000000000..13d3ef660 --- /dev/null +++ b/src/SkylandersSwapForce/Enhancements/HUD/79ba8affb26df81c_0000000000000079_ps.txt @@ -0,0 +1,53 @@ +#version 460 + +layout(set = 1, binding = 1, std140) uniform ufBlock +{ + vec4 uf_fragCoordScale; +} _118; + +layout(set = 1, binding = 0) uniform sampler2D textureUnitPS0; + +layout(location = 0) in vec4 passParameterSem144; +layout(location = 1) in vec4 passParameterSem133; +layout(location = 0) out vec4 passPixelColor0; + +float mul_nonIEEE(float a, float b) +{ + return ((a != 0.0) && (b != 0.0)) ? (a * b) : 0.0; +} + +void main() +{ + vec4 R0f = vec4(0.0); + vec4 R1f = vec4(0.0); + float PV0fx = 0.0; + float PV0fy = 0.0; + float PV0fz = 0.0; + float PV0fw = 0.0; + float PV1fx = 0.0; + float PV1fy = 0.0; + float PV1fz = 0.0; + float PV1fw = 0.0; + float PS0f = 0.0; + float PS1f = 0.0; + vec4 tempf = vec4(0.0); + ivec4 ARi = ivec4(0); + bool predResult = true; + R0f = passParameterSem144; + R1f = passParameterSem133; + R1f = texture(textureUnitPS0, vec2(R1f.x, R1f.y)); + float param = R0f.x; + float param_1 = R1f.x; + R0f.x = mul_nonIEEE(param, param_1); + float param_2 = R0f.y; + float param_3 = R1f.y; + R0f.y = mul_nonIEEE(param_2, param_3); + float param_4 = R0f.z; + float param_5 = R1f.z; + R0f.z = mul_nonIEEE(param_4, param_5); + float param_6 = R0f.w; + float param_7 = R1f.w; + R0f.w = mul_nonIEEE(param_6, param_7); + passPixelColor0 = vec4(R0f.x, R0f.y, R0f.z, 0.0); +} + diff --git a/src/SkylandersSwapForce/Enhancements/HUD/7b4df5b29dded44b_0000000000000079_ps.txt b/src/SkylandersSwapForce/Enhancements/HUD/7b4df5b29dded44b_0000000000000079_ps.txt new file mode 100644 index 000000000..238317c03 --- /dev/null +++ b/src/SkylandersSwapForce/Enhancements/HUD/7b4df5b29dded44b_0000000000000079_ps.txt @@ -0,0 +1,106 @@ +#version 460 + +layout(set = 1, binding = 1, std140) uniform ufBlock +{ + ivec4 uf_remappedPS[1]; + vec4 uf_fragCoordScale; +} _158; + +layout(set = 1, binding = 0) uniform sampler2D textureUnitPS0; + +layout(location = 0) in vec4 passParameterSem144; +layout(location = 1) in vec4 passParameterSem133; +layout(location = 0) out vec4 passPixelColor0; + +float mul_nonIEEE(float a, float b) +{ + return ((a != 0.0) && (b != 0.0)) ? (a * b) : 0.0; +} + +void main() +{ + ivec4 R0i = ivec4(0); + ivec4 R1i = ivec4(0); + int PV0ix = 0; + int PV0iy = 0; + int PV0iz = 0; + int PV0iw = 0; + int PV1ix = 0; + int PV1iy = 0; + int PV1iz = 0; + int PV1iw = 0; + int PS0i = 0; + int PS1i = 0; + ivec4 tempi = ivec4(0); + ivec4 ARi = ivec4(0); + bool predResult = true; + bool activeMaskStack[2]; + activeMaskStack[0] = false; + bool activeMaskStackC[3]; + activeMaskStackC[0] = false; + activeMaskStackC[1] = false; + activeMaskStack[0] = true; + activeMaskStackC[0] = true; + activeMaskStackC[1] = true; + R0i = floatBitsToInt(passParameterSem144); + R1i = floatBitsToInt(passParameterSem133); + if (activeMaskStackC[1] == true) + { + } + if (activeMaskStackC[1] == true) + { + activeMaskStack[1] = activeMaskStack[0]; + activeMaskStackC[2] = activeMaskStackC[1]; + float param = intBitsToFloat(R0i.x); + float param_1 = intBitsToFloat(R1i.x); + R0i.x = floatBitsToInt(mul_nonIEEE(param, param_1)); + float param_2 = intBitsToFloat(R0i.y); + float param_3 = intBitsToFloat(R1i.y); + R0i.y = floatBitsToInt(mul_nonIEEE(param_2, param_3)); + float param_4 = intBitsToFloat(R0i.z); + float param_5 = intBitsToFloat(R1i.z); + R0i.z = floatBitsToInt(mul_nonIEEE(param_4, param_5)); + float param_6 = intBitsToFloat(R0i.w); + float param_7 = intBitsToFloat(R1i.w); + R0i.w = floatBitsToInt(mul_nonIEEE(param_6, param_7)); + R1i.x = floatBitsToInt(intBitsToFloat(R0i.w) + (-intBitsToFloat(_158.uf_remappedPS[0].x))); + predResult = 0.0 > intBitsToFloat(R1i.x); + activeMaskStack[1] = predResult; + bool _174 = predResult == true; + bool _180; + if (_174) + { + _180 = activeMaskStackC[1] == true; + } + else + { + _180 = _174; + } + activeMaskStackC[2] = _180; + } + else + { + activeMaskStack[1] = false; + activeMaskStackC[2] = false; + } + if (activeMaskStackC[2] == true) + { + if (true) + { + discard; + } + } + bool _195 = activeMaskStack[0] == true; + bool _201; + if (_195) + { + _201 = activeMaskStackC[0] == true; + } + else + { + _201 = _195; + } + activeMaskStackC[1] = _201; + passPixelColor0 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), intBitsToFloat(R0i.w)); +} + diff --git a/src/SkylandersSwapForce/Enhancements/HUD/fa2aeaf2c803b3f1_00000000000003c9_ps.txt b/src/SkylandersSwapForce/Enhancements/HUD/fa2aeaf2c803b3f1_00000000000003c9_ps.txt new file mode 100644 index 000000000..ee8113953 --- /dev/null +++ b/src/SkylandersSwapForce/Enhancements/HUD/fa2aeaf2c803b3f1_00000000000003c9_ps.txt @@ -0,0 +1,96 @@ +#version 460 + +layout(set = 1, binding = 2, std140) uniform ufBlock +{ + vec4 uf_fragCoordScale; +} _233; + +layout(set = 1, binding = 0) uniform sampler2D textureUnitPS0; +layout(set = 1, binding = 1) uniform sampler2D textureUnitPS1; + +layout(location = 0) in vec4 passParameterSem144; +layout(location = 1) in vec4 passParameterSem133; +layout(location = 2) in vec4 passParameterSem134; +layout(location = 0) out vec4 passPixelColor0; + +float mul_nonIEEE(float a, float b) +{ + return ((a != 0.0) && (b != 0.0)) ? (a * b) : 0.0; +} + +void main() +{ + vec4 R0f = vec4(0.0); + vec4 R1f = vec4(0.0); + vec4 R2f = vec4(0.0); + vec4 R123f = vec4(0.0); + vec4 R126f = vec4(0.0); + vec4 R127f = vec4(0.0); + float PV0fx = 0.0; + float PV0fy = 0.0; + float PV0fz = 0.0; + float PV0fw = 0.0; + float PV1fx = 0.0; + float PV1fy = 0.0; + float PV1fz = 0.0; + float PV1fw = 0.0; + float PS0f = 0.0; + float PS1f = 0.0; + vec4 tempf = vec4(0.0); + ivec4 ARi = ivec4(0); + bool predResult = true; + R0f = passParameterSem144; + R1f = passParameterSem133; + R2f = passParameterSem134; + R1f.w = texture(textureUnitPS0, vec2(R1f.x, R1f.y)).w; + R2f = texture(textureUnitPS1, vec2(R2f.x, R2f.y)); + PV0fx = fract(-R1f.w); + R127f.y = (-R2f.w) + 1.0; + PV0fz = R1f.w; + R127f.w = (-R2f.x) + 1.0; + R126f.w = (-R2f.y) + 1.0; + R127f.x = (-R2f.z) + 1.0; + float param = R0f.w; + float param_1 = PV0fz; + PV1fz = mul_nonIEEE(param, param_1); + PV1fw = R1f.w + PV0fx; + float param_2 = R0f.y; + float param_3 = PV1fw; + PV0fx = mul_nonIEEE(param_2, param_3); + float param_4 = R0f.x; + float param_5 = PV1fw; + PV0fy = mul_nonIEEE(param_4, param_5); + R127f.z = (-PV1fz) + 1.0; + float param_6 = R0f.z; + float param_7 = PV1fw; + PV0fw = mul_nonIEEE(param_6, param_7); + float param_8 = PV1fz; + float param_9 = R127f.y; + PS0f = mul_nonIEEE(param_8, param_9); + float param_10 = PV0fy; + float param_11 = R127f.w; + PV1fx = mul_nonIEEE(param_10, param_11); + float param_12 = R2f.w; + float param_13 = R127f.z; + R123f.y = mul_nonIEEE(param_12, param_13) + PS0f; + float param_14 = PV0fw; + float param_15 = R127f.x; + PV1fz = mul_nonIEEE(param_14, param_15); + float param_16 = PV0fx; + float param_17 = R126f.w; + PV1fw = mul_nonIEEE(param_16, param_17); + float param_18 = R2f.x; + float param_19 = R127f.z; + R0f.x = mul_nonIEEE(param_18, param_19) + PV1fx; + float param_20 = R2f.y; + float param_21 = R127f.z; + R0f.y = mul_nonIEEE(param_20, param_21) + PV1fw; + float param_22 = R2f.z; + float param_23 = R127f.z; + R0f.z = mul_nonIEEE(param_22, param_23) + PV1fz; + float param_24 = R0f.w; + float param_25 = R123f.y; + R0f.w = mul_nonIEEE(param_24, param_25); + passPixelColor0 = vec4(R0f.x, R0f.y, R0f.z, 0.0); +} + diff --git a/src/SkylandersSwapForce/Enhancements/HUD/rules.txt b/src/SkylandersSwapForce/Enhancements/HUD/rules.txt new file mode 100644 index 000000000..7fcd3ef7b --- /dev/null +++ b/src/SkylandersSwapForce/Enhancements/HUD/rules.txt @@ -0,0 +1,6 @@ +[Definition] +titleIds = 0005000010139200,0005000010140400 +name = No HUD +path = "Skylanders Swap Force/Enhancements/No HUD" +description = Removes the HUD from the game (breaks the menus)||Made by Flextape05 +version = 6 diff --git a/src/SkylandersSwapForce/Enhancements/RemoveAntiAliasingBlur/7ca59e295dc3c105_0000000000000079_ps.txt b/src/SkylandersSwapForce/Enhancements/RemoveAntiAliasingBlur/7ca59e295dc3c105_0000000000000079_ps.txt new file mode 100644 index 000000000..a3d8df507 --- /dev/null +++ b/src/SkylandersSwapForce/Enhancements/RemoveAntiAliasingBlur/7ca59e295dc3c105_0000000000000079_ps.txt @@ -0,0 +1,11 @@ +#version 460 + +layout(set = 1, binding = 0) uniform sampler2D textureUnitPS0; + +layout(location = 0) in vec2 passUV; +layout(location = 0) out vec4 passPixelColor0; + +void main() +{ + passPixelColor0 = texture(textureUnitPS0, passUV); +} diff --git a/src/SkylandersSwapForce/Enhancements/RemoveAntiAliasingBlur/rules.txt b/src/SkylandersSwapForce/Enhancements/RemoveAntiAliasingBlur/rules.txt new file mode 100644 index 000000000..a3e26eaf7 --- /dev/null +++ b/src/SkylandersSwapForce/Enhancements/RemoveAntiAliasingBlur/rules.txt @@ -0,0 +1,6 @@ +[Definition] +titleIds = 0005000010139200,0005000010140400 +name = Blur filter removel +path = "Skylanders Swap Force/Enhancements/Blur filter removal" +description = Removes the muddy blur AA when playing the game||Made by Flextape05 +version = 6 diff --git a/src/SkylandersSwapForce/Graphics/rules.txt b/src/SkylandersSwapForce/Graphics/rules.txt index 4c1603e3a..3490eb12a 100644 --- a/src/SkylandersSwapForce/Graphics/rules.txt +++ b/src/SkylandersSwapForce/Graphics/rules.txt @@ -2,7 +2,7 @@ titleIds = 0005000010139200,0005000010140400 name = TV Resolution, Gamepad Resolution and Shadow Quality path = "Skylanders Swap Force/Graphics" -description = Changes the TV resolution and gamepad resolution of the game. Additionally you can also change the quality of the shadows.||Made by Crementif and TheSkyDude134. +description = Changes the TV resolution and gamepad resolution of the game. Additionally you can also change the quality of the shadows.||Made by Crementif and TheSkyDude134.||fixes made by Flextape05 version = 6 [Default] @@ -21,7 +21,9 @@ $shadowRes = 1 [Preset] category = TV Resolution -name = 1280x720 (Default) +name = 1024x576 (Default) +$width = 1024 +$height = 576 [Preset] category = TV Resolution @@ -35,6 +37,12 @@ name = 960x540 $width = 960 $height = 540 +[Preset] +category = TV Resolution +name = 1280x720 +$width = 1280 +$height = 720 + [Preset] category = TV Resolution name = 1600x900 @@ -77,7 +85,6 @@ name = 7680x4320 $width = 7680 $height = 4320 - # Gamepad Resolution [Preset] @@ -166,7 +173,6 @@ name = Extreme (400%, Unstable) $shadowRes = 4 - # Texture Redefines [TextureRedefine] # Game output and hud resolution @@ -186,9 +192,9 @@ overwriteHeight = ($padHeight/$gamePadHeight) * 480 [TextureRedefine] # Stage rendering width = 1024 height = 576 -formats = 0x01a,0x011,0x80e -overwriteWidth = ($width/$gameWidth) * 1024 -overwriteHeight = ($height/$gameHeight) * 576 +formats = 0x01a,0x011,0x80e,0x820 +overwriteWidth = ($width/$gameWidth) * 1280 +overwriteHeight = ($height/$gameHeight) * 720 [TextureRedefine] # Squashed/bloom alt viewport width = 512 diff --git a/src/SkylandersTrapTeam/Enhancements/DOF/616ab07dede06465_00000000000003c9_ps.txt b/src/SkylandersTrapTeam/Enhancements/DOF/616ab07dede06465_00000000000003c9_ps.txt new file mode 100644 index 000000000..d01d81b43 --- /dev/null +++ b/src/SkylandersTrapTeam/Enhancements/DOF/616ab07dede06465_00000000000003c9_ps.txt @@ -0,0 +1,17 @@ +#version 460 + +// Define uniform binding for Vulkan and OpenGL compatibility +#ifdef VULKAN + layout(set = 1, binding = 0) uniform sampler2D textureUnitPS0; +#else + uniform sampler2D textureUnitPS0; +#endif + +// Input and output locations +layout(location = 0) in vec2 passUV; +layout(location = 0) out vec4 passPixelColor0; + +void main() +{ + passPixelColor0 = texture(textureUnitPS0, passUV); +} diff --git a/src/SkylandersTrapTeam/Enhancements/DOF/9d7894300f592516_0000000000000079_ps.txt b/src/SkylandersTrapTeam/Enhancements/DOF/9d7894300f592516_0000000000000079_ps.txt new file mode 100644 index 000000000..b542eb661 --- /dev/null +++ b/src/SkylandersTrapTeam/Enhancements/DOF/9d7894300f592516_0000000000000079_ps.txt @@ -0,0 +1,58 @@ +#version 430 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +// shader %08x%08x +// start of shader inputs/outputs, predetermined by Cemu. Do not touch + +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy, gl_FragCoord.zw) +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy * uf_fragCoordScale, gl_FragCoord.zw) +#endif + +// Vulkan-specific uniform block for scale +#ifdef VULKAN +layout(set = 1, binding = 1) uniform ufBlock +{ + uniform vec4 uf_fragCoordScale; +}; +#else +// OpenGL uniform for scale +uniform vec2 uf_fragCoordScale; +#endif + +// Texture Sampler Bindings +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +TEXTURE_LAYOUT(1, 1, 1) uniform sampler2D textureUnitPS1; + +// Input/Output for vertex to fragment +layout(location = 0) in vec4 passParameterSem133; +layout(location = 1) in vec4 passParameterSem134; +layout(location = 2) in vec4 passParameterSem135; +layout(location = 0) out vec4 passPixelColor0; + +// Helper Functions +int clampFI32(int v) { + if (v == 0x7FFFFFFF) + return floatBitsToInt(1.0); + else if (v == 0xFFFFFFFF) + return floatBitsToInt(0.0); + return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} + +float mul_nonIEEE(float a, float b) { + if (a == 0.0 || b == 0.0) return 0.0; + return a * b; +} + +// Main Function +void main() { + // Export the calculated color value (currently from R5f) + passPixelColor0 = vec4(R5f.x, R5f.y, R5f.z, R5f.w); +} diff --git a/src/SkylandersTrapTeam/Enhancements/DOF/rules.txt b/src/SkylandersTrapTeam/Enhancements/DOF/rules.txt new file mode 100644 index 000000000..cae9ff19c --- /dev/null +++ b/src/SkylandersTrapTeam/Enhancements/DOF/rules.txt @@ -0,0 +1,6 @@ +[Definition] +titleIds = 000500001017C600,0005000010181F00 +name = Background Blur Removal +path = "Skylanders Trap Team/Enhancements/DOF removal" +description = disables the games backbground blur||Made by Flextape05 +version = 6 diff --git a/src/SkylandersTrapTeam/Enhancements/HUD/35fb394719fd96f4_00000000000003c9_ps.txt b/src/SkylandersTrapTeam/Enhancements/HUD/35fb394719fd96f4_00000000000003c9_ps.txt new file mode 100644 index 000000000..44056a92b --- /dev/null +++ b/src/SkylandersTrapTeam/Enhancements/HUD/35fb394719fd96f4_00000000000003c9_ps.txt @@ -0,0 +1,46 @@ +#version 430 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +// shader 35fb394719fd96f4 +// start of shader inputs/outputs, predetermined by Cemu. Do not touch +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.z, 1.0/gl_FragCoord.w) +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +#ifdef VULKAN +layout(set = 1, binding = 2) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[4]; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[4]; +uniform vec2 uf_fragCoordScale; +#endif +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +TEXTURE_LAYOUT(1, 1, 1) uniform sampler2D textureUnitPS1; +layout(location = 0) in vec4 passParameterSem128; +layout(location = 1) in vec4 passParameterSem129; +layout(location = 0) out vec4 passPixelColor0; +// end of shader inputs/outputs +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +// export +passPixelColor0 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), intBitsToFloat(0.0)); +} diff --git a/src/SkylandersTrapTeam/Enhancements/HUD/648d2ae359c1959f_0000000000000079_ps.txt b/src/SkylandersTrapTeam/Enhancements/HUD/648d2ae359c1959f_0000000000000079_ps.txt new file mode 100644 index 000000000..c72fe1a93 --- /dev/null +++ b/src/SkylandersTrapTeam/Enhancements/HUD/648d2ae359c1959f_0000000000000079_ps.txt @@ -0,0 +1,54 @@ +#version 430 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable + +// shader %08x%08x +// start of shader inputs/outputs, predetermined by Cemu. Do not touch + +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy * uf_fragCoordScale.xy, gl_FragCoord.zw) +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy * uf_fragCoordScale, gl_FragCoord.zw) +#endif + +#ifdef VULKAN +layout(set = 1, binding = 1) uniform ufBlock { + uniform ivec4 uf_remappedPS[3]; + uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[3]; +uniform vec2 uf_fragCoordScale; +#endif + +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; + +layout(location = 0) in vec4 passParameterSem128; +layout(location = 1) in vec4 passParameterSem129; +layout(location = 0) out vec4 passPixelColor0; + +// Helper functions +int clampFI32(int v) { + if (v == 0x7FFFFFFF) + return floatBitsToInt(1.0); + else if (v == 0xFFFFFFFF) + return floatBitsToInt(0.0); + return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} + +float mul_nonIEEE(float a, float b) { + if (a == 0.0 || b == 0.0) return 0.0; + return a * b; +} + +void main() { + // Final export + passPixelColor0 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), intBitsToFloat(0.0)); +} + diff --git a/src/SkylandersTrapTeam/Enhancements/HUD/rules.txt b/src/SkylandersTrapTeam/Enhancements/HUD/rules.txt new file mode 100644 index 000000000..dde650c2e --- /dev/null +++ b/src/SkylandersTrapTeam/Enhancements/HUD/rules.txt @@ -0,0 +1,6 @@ +[Definition] +titleIds = 000500001017C600,0005000010181F00 +name = No HUD +path = "Skylanders Trap Team/Enhancements/No HUD" +description = Removes the HUD from the game (breaks the menus)||Made by Flextape05 +version = 6 diff --git a/src/SkylandersTrapTeam/Enhancements/MotionBlur/c4e4d3514f08aa48_000000000000f249_ps.txt b/src/SkylandersTrapTeam/Enhancements/MotionBlur/c4e4d3514f08aa48_000000000000f249_ps.txt new file mode 100644 index 000000000..6da7d66a2 --- /dev/null +++ b/src/SkylandersTrapTeam/Enhancements/MotionBlur/c4e4d3514f08aa48_000000000000f249_ps.txt @@ -0,0 +1,602 @@ +#version 460 + +layout(set = 1, binding = 4, std140) uniform ufBlock +{ + ivec4 uf_remappedPS[2]; + vec4 uf_fragCoordScale; +} _253; + +layout(set = 1, binding = 1) uniform sampler2D textureUnitPS2; +layout(set = 1, binding = 2) uniform sampler2D textureUnitPS3; +layout(set = 1, binding = 3) uniform sampler2D textureUnitPS4; +layout(set = 1, binding = 0) uniform sampler2D textureUnitPS0; + +layout(location = 0) in vec4 passParameterSem133; +layout(location = 0) out vec4 passPixelColor0; + +float mul_nonIEEE(float a, float b) +{ + return ((a != 0.0) && (b != 0.0)) ? (a * b) : 0.0; +} + +int clampFI32(int v) +{ + if (v == 2147483647) + { + return floatBitsToInt(1.0); + } + else + { + if (v == (-1)) + { + return floatBitsToInt(0.0); + } + } + return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} + +void main() +{ + ivec4 R0i = ivec4(0); + ivec4 R1i = ivec4(0); + ivec4 R2i = ivec4(0); + ivec4 R3i = ivec4(0); + ivec4 R4i = ivec4(0); + ivec4 R5i = ivec4(0); + ivec4 R6i = ivec4(0); + ivec4 R7i = ivec4(0); + ivec4 R8i = ivec4(0); + ivec4 R9i = ivec4(0); + ivec4 R10i = ivec4(0); + ivec4 R11i = ivec4(0); + ivec4 R12i = ivec4(0); + ivec4 R13i = ivec4(0); + ivec4 R14i = ivec4(0); + ivec4 R15i = ivec4(0); + ivec4 R16i = ivec4(0); + ivec4 R123i = ivec4(0); + ivec4 R124i = ivec4(0); + ivec4 R125i = ivec4(0); + ivec4 R126i = ivec4(0); + ivec4 R127i = ivec4(0); + int PV0ix = 0; + int PV0iy = 0; + int PV0iz = 0; + int PV0iw = 0; + int PV1ix = 0; + int PV1iy = 0; + int PV1iz = 0; + int PV1iw = 0; + int PS0i = 0; + int PS1i = 0; + ivec4 tempi = ivec4(0); + ivec4 ARi = ivec4(0); + bool predResult = true; + R0i = floatBitsToInt(passParameterSem133); + R5i = floatBitsToInt(textureLod(textureUnitPS2, vec2(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y)), 0.0)); + ivec3 _131 = floatBitsToInt(textureLod(textureUnitPS3, vec2(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y)), 0.0).xyz); + R1i.x = _131.x; + R1i.y = _131.y; + R1i.z = _131.z; + ivec3 _151 = floatBitsToInt(textureLod(textureUnitPS4, vec2(intBitsToFloat(R0i.z), intBitsToFloat(R0i.w)), 0.0).xyz); + R2i.x = _151.x; + R2i.y = _151.y; + R2i.z = _151.z; + ivec3 _169 = floatBitsToInt(texture(textureUnitPS0, vec2(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y))).xyz); + R11i.x = _169.x; + R11i.y = _169.y; + R11i.z = _169.z; + R127i.x = floatBitsToInt((intBitsToFloat(R5i.x) * 14.0) + (-7.0)); + R127i.y = floatBitsToInt((intBitsToFloat(R5i.y) * 14.0) + (-7.0)); + PV0iz = 0; + R127i.w = floatBitsToInt(intBitsToFloat(R1i.z) * 7.0); + R126i.x = floatBitsToInt((intBitsToFloat(R1i.x) * 2.0) + (-1.0)); + tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x), intBitsToFloat(R127i.y), intBitsToFloat(PV0iz), intBitsToFloat(int(0x80000000))), vec4(intBitsToFloat(R127i.x), intBitsToFloat(R127i.y), intBitsToFloat(R127i.y), 0.0))); + PV1ix = tempi.x; + PV1iy = tempi.x; + PV1iz = tempi.x; + PV1iw = tempi.x; + R126i.w = floatBitsToInt((intBitsToFloat(R1i.y) * 2.0) + (-1.0)); + float param = intBitsToFloat(R126i.x); + float param_1 = intBitsToFloat(_253.uf_remappedPS[0].z); + R125i.x = floatBitsToInt(mul_nonIEEE(param, param_1)); + float param_2 = intBitsToFloat(R127i.w); + float param_3 = intBitsToFloat(R2i.z); + R10i.y = floatBitsToInt(mul_nonIEEE(param_2, param_3)); + float param_4 = intBitsToFloat(R126i.w); + float param_5 = intBitsToFloat(_253.uf_remappedPS[0].w); + R127i.z = floatBitsToInt(mul_nonIEEE(param_4, param_5)); + float param_6 = intBitsToFloat(R127i.w); + float param_7 = intBitsToFloat(R2i.y); + R3i.w = floatBitsToInt(mul_nonIEEE(param_6, param_7)); + float tempResultf = 1.0 / sqrt(intBitsToFloat(PV1ix)); + PS0i = floatBitsToInt(tempResultf); + R10i.x = floatBitsToInt(min(intBitsToFloat(PS0i), 2.0)); + float param_8 = -intBitsToFloat(R10i.y); + float param_9 = intBitsToFloat(R127i.z); + R2i.y = floatBitsToInt(mul_nonIEEE(param_8, param_9) + intBitsToFloat(R0i.y)); + float param_10 = -intBitsToFloat(R10i.y); + float param_11 = intBitsToFloat(R125i.x); + R2i.z = floatBitsToInt(mul_nonIEEE(param_10, param_11) + intBitsToFloat(R0i.x)); + float param_12 = intBitsToFloat(R127i.w); + float param_13 = intBitsToFloat(R2i.x); + R2i.w = floatBitsToInt(mul_nonIEEE(param_12, param_13)); + float param_14 = intBitsToFloat(R10i.y); + float param_15 = intBitsToFloat(R125i.x); + R4i.x = floatBitsToInt(mul_nonIEEE(param_14, param_15) + intBitsToFloat(R0i.x)); + float param_16 = -intBitsToFloat(R2i.w); + float param_17 = intBitsToFloat(R125i.x); + R1i.x = floatBitsToInt(mul_nonIEEE(param_16, param_17) + intBitsToFloat(R0i.x)); + PV0iy = (intBitsToFloat(R10i.x) > intBitsToFloat(1059760867)) ? (-1) : 0; + float param_18 = intBitsToFloat(R127i.y); + float param_19 = intBitsToFloat(R10i.x); + PV0iz = floatBitsToInt(mul_nonIEEE(param_18, param_19)); + float param_20 = intBitsToFloat(R127i.x); + float param_21 = intBitsToFloat(R10i.x); + PV0iw = floatBitsToInt(mul_nonIEEE(param_20, param_21)); + float param_22 = -intBitsToFloat(R2i.w); + float param_23 = intBitsToFloat(R127i.z); + R1i.y = floatBitsToInt(mul_nonIEEE(param_22, param_23) + intBitsToFloat(R0i.y)); + int _427; + if (PV0iy == 0) + { + _427 = PV0iw; + } + else + { + _427 = R126i.x; + } + R2i.x = _427; + float param_24 = intBitsToFloat(R2i.w); + float param_25 = intBitsToFloat(R127i.z); + R3i.y = floatBitsToInt(mul_nonIEEE(param_24, param_25) + intBitsToFloat(R0i.y)); + float param_26 = intBitsToFloat(R2i.w); + float param_27 = intBitsToFloat(R125i.x); + R3i.z = floatBitsToInt(mul_nonIEEE(param_26, param_27) + intBitsToFloat(R0i.x)); + int _468; + if (PV0iy == 0) + { + _468 = PV0iz; + } + else + { + _468 = R126i.w; + } + R1i.w = _468; + float param_28 = intBitsToFloat(R10i.y); + float param_29 = intBitsToFloat(R127i.z); + R4i.y = floatBitsToInt(mul_nonIEEE(param_28, param_29) + intBitsToFloat(R0i.y)); + R6i = floatBitsToInt(textureLod(textureUnitPS2, vec2(intBitsToFloat(R2i.z), intBitsToFloat(R2i.y)), 0.0)); + R7i = floatBitsToInt(textureLod(textureUnitPS2, vec2(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y)), 0.0)); + R8i = floatBitsToInt(textureLod(textureUnitPS2, vec2(intBitsToFloat(R3i.z), intBitsToFloat(R3i.y)), 0.0)); + R9i = floatBitsToInt(textureLod(textureUnitPS2, vec2(intBitsToFloat(R4i.x), intBitsToFloat(R4i.y)), 0.0)); + ivec3 _542 = floatBitsToInt(textureLod(textureUnitPS0, vec2(intBitsToFloat(R2i.z), intBitsToFloat(R2i.y)), 0.0).xyz); + R12i.x = _542.x; + R12i.y = _542.y; + R12i.z = _542.z; + ivec3 _559 = floatBitsToInt(textureLod(textureUnitPS0, vec2(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y)), 0.0).xyz); + R14i.x = _559.x; + R14i.y = _559.y; + R14i.z = _559.z; + ivec3 _576 = floatBitsToInt(textureLod(textureUnitPS0, vec2(intBitsToFloat(R3i.z), intBitsToFloat(R3i.y)), 0.0).xyz); + R15i.x = _576.x; + R15i.y = _576.y; + R15i.z = _576.z; + ivec3 _593 = floatBitsToInt(textureLod(textureUnitPS0, vec2(intBitsToFloat(R4i.x), intBitsToFloat(R4i.y)), 0.0).xyz); + R16i.x = _593.x; + R16i.y = _593.y; + R16i.z = _593.z; + R3i.x = _253.uf_remappedPS[1].x; + R3i.y = _253.uf_remappedPS[1].y; + float param_30 = intBitsToFloat(R1i.w); + float param_31 = intBitsToFloat(_253.uf_remappedPS[0].w); + PV0iz = floatBitsToInt(mul_nonIEEE(param_30, param_31)); + float param_32 = intBitsToFloat(R2i.x); + float param_33 = intBitsToFloat(_253.uf_remappedPS[0].z); + PV0iw = floatBitsToInt(mul_nonIEEE(param_32, param_33)); + R3i.z = 0; + int backupReg0i = R0i.x; + int backupReg1i = R0i.y; + float param_34 = -intBitsToFloat(R3i.w); + float param_35 = intBitsToFloat(PV0iw); + R0i.x = floatBitsToInt(mul_nonIEEE(param_34, param_35) + intBitsToFloat(backupReg0i)); + float param_36 = -intBitsToFloat(R3i.w); + float param_37 = intBitsToFloat(PV0iz); + R0i.y = floatBitsToInt(mul_nonIEEE(param_36, param_37) + intBitsToFloat(backupReg1i)); + float param_38 = intBitsToFloat(R3i.w); + float param_39 = intBitsToFloat(PV0iw); + R0i.z = floatBitsToInt(mul_nonIEEE(param_38, param_39) + intBitsToFloat(backupReg0i)); + float param_40 = intBitsToFloat(R3i.w); + float param_41 = intBitsToFloat(PV0iz); + R0i.w = floatBitsToInt(mul_nonIEEE(param_40, param_41) + intBitsToFloat(backupReg1i)); + R2i.x = floatBitsToInt((intBitsToFloat(R6i.x) * 14.0) + (-7.0)); + R1i = floatBitsToInt(textureLod(textureUnitPS2, vec2(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y)), 0.0)); + R4i = floatBitsToInt(textureLod(textureUnitPS2, vec2(intBitsToFloat(R0i.z), intBitsToFloat(R0i.w)), 0.0)); + ivec3 _725 = floatBitsToInt(textureLod(textureUnitPS0, vec2(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y)), 0.0).xyz); + R13i.x = _725.x; + R13i.y = _725.y; + R13i.z = _725.z; + int _734 = R0i.z; + int _737 = R0i.w; + ivec3 _742 = floatBitsToInt(textureLod(textureUnitPS0, vec2(intBitsToFloat(_734), intBitsToFloat(_737)), 0.0).xyz); + R0i.x = _742.x; + R0i.y = _742.y; + R0i.z = _742.z; + R126i.x = floatBitsToInt((intBitsToFloat(R1i.x) * 14.0) + (-7.0)); + R123i.y = floatBitsToInt((intBitsToFloat(R6i.y) * 14.0) + (-7.0)); + PV0iz = 0; + R126i.w = floatBitsToInt((intBitsToFloat(R1i.y) * 14.0) + (-7.0)); + R127i.z = 0; + tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x), intBitsToFloat(R123i.y), intBitsToFloat(PV0iz), intBitsToFloat(int(0x80000000))), vec4(intBitsToFloat(R2i.x), intBitsToFloat(R123i.y), intBitsToFloat(R123i.y), 0.0))); + PV1ix = tempi.x; + PV1iy = tempi.x; + PV1iz = tempi.x; + PV1iw = tempi.x; + R127i.w = floatBitsToInt(max(-intBitsToFloat(R10i.y), intBitsToFloat(R10i.y))); + tempi.x = floatBitsToInt(dot(vec4(-intBitsToFloat(R3i.x), -intBitsToFloat(R3i.y), -intBitsToFloat(R3i.z), -intBitsToFloat(R3i.z)), vec4(intBitsToFloat(R5i.z), intBitsToFloat(R5i.w), intBitsToFloat(R5i.w), intBitsToFloat(R5i.w)))); + PV0ix = tempi.x; + PV0iy = tempi.x; + PV0iz = tempi.x; + R5i.w = tempi.x; + tempResultf = 1.0 / sqrt(intBitsToFloat(PV1ix)); + R125i.x = floatBitsToInt(tempResultf); + tempi.x = floatBitsToInt(dot(vec4(-intBitsToFloat(R3i.x), -intBitsToFloat(R3i.y), -intBitsToFloat(R3i.z), -intBitsToFloat(R3i.z)), vec4(intBitsToFloat(R6i.z), intBitsToFloat(R6i.w), intBitsToFloat(R6i.w), intBitsToFloat(R6i.w)))); + PV1ix = tempi.x; + PV1iy = tempi.x; + R126i.z = tempi.x; + PV1iw = tempi.x; + R127i.x = floatBitsToInt((intBitsToFloat(R7i.x) * 14.0) + (-7.0)); + tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R126i.x), intBitsToFloat(R126i.w), intBitsToFloat(R127i.z), intBitsToFloat(int(0x80000000))), vec4(intBitsToFloat(R126i.x), intBitsToFloat(R126i.w), intBitsToFloat(R126i.w), 0.0))); + PV0ix = tempi.x; + PV0iy = tempi.x; + PV0iz = tempi.x; + R125i.w = tempi.x; + R126i.w = floatBitsToInt(intBitsToFloat(R5i.w) + (-intBitsToFloat(PV1ix))); + tempi.x = floatBitsToInt(dot(vec4(-intBitsToFloat(R3i.x), -intBitsToFloat(R3i.y), -intBitsToFloat(R3i.z), -intBitsToFloat(R3i.z)), vec4(intBitsToFloat(R1i.z), intBitsToFloat(R1i.w), intBitsToFloat(R1i.w), intBitsToFloat(R1i.w)))); + PV1ix = tempi.x; + R125i.y = tempi.x; + PV1iz = tempi.x; + PV1iw = tempi.x; + R127i.y = floatBitsToInt((intBitsToFloat(R7i.y) * 14.0) + (-7.0)); + backupReg0i = R125i.x; + R125i.x = floatBitsToInt((-intBitsToFloat(R5i.w)) + intBitsToFloat(R126i.z)); + R126i.y = floatBitsToInt(((-intBitsToFloat(R126i.w)) * intBitsToFloat(1062557013)) + 1.0); + int param_42 = R126i.y; + R126i.y = clampFI32(param_42); + PV0iz = 0; + float param_43 = -intBitsToFloat(backupReg0i); + float param_44 = intBitsToFloat(R127i.w); + R127i.w = floatBitsToInt(mul_nonIEEE(param_43, param_44) + 1.0); + int param_45 = R127i.w; + R127i.w = clampFI32(param_45); + R126i.w = floatBitsToInt(max(intBitsToFloat(R10i.x), intBitsToFloat(backupReg0i))); + tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x), intBitsToFloat(R127i.y), intBitsToFloat(PV0iz), intBitsToFloat(int(0x80000000))), vec4(intBitsToFloat(R127i.x), intBitsToFloat(R127i.y), intBitsToFloat(R127i.y), 0.0))); + PV1ix = tempi.x; + R124i.y = tempi.x; + PV1iz = tempi.x; + PV1iw = tempi.x; + R1i.y = floatBitsToInt(1.0 / intBitsToFloat(R10i.y)); + tempi.x = floatBitsToInt(dot(vec4(-intBitsToFloat(R3i.x), -intBitsToFloat(R3i.y), -intBitsToFloat(R3i.z), -intBitsToFloat(R3i.z)), vec4(intBitsToFloat(R7i.z), intBitsToFloat(R7i.w), intBitsToFloat(R7i.w), intBitsToFloat(R7i.w)))); + PV0ix = tempi.x; + PV0iy = tempi.x; + R125i.z = tempi.x; + PV0iw = tempi.x; + tempResultf = 1.0 / sqrt(intBitsToFloat(R125i.w)); + R126i.z = floatBitsToInt(tempResultf); + R127i.x = floatBitsToInt(intBitsToFloat(R5i.w) + (-intBitsToFloat(R125i.y))); + R127i.y = floatBitsToInt(max(-intBitsToFloat(R3i.w), intBitsToFloat(R3i.w))); + R123i.z = floatBitsToInt((intBitsToFloat(R8i.x) * 14.0) + (-7.0)); + R123i.w = floatBitsToInt((intBitsToFloat(R8i.y) * 14.0) + (-7.0)); + PS1i = 0; + R124i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R123i.z), intBitsToFloat(R123i.w), intBitsToFloat(PS1i), intBitsToFloat(int(0x80000000))), vec4(intBitsToFloat(R123i.z), intBitsToFloat(R123i.w), intBitsToFloat(R123i.w), 0.0))); + PV0iy = R124i.x; + PV0iz = R124i.x; + PV0iw = R124i.x; + float param_46 = intBitsToFloat(R126i.y); + float param_47 = intBitsToFloat(R127i.w); + R126i.x = floatBitsToInt(mul_nonIEEE(param_46, param_47)); + R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) * 2.0); + tempi.x = floatBitsToInt(dot(vec4(-intBitsToFloat(R3i.x), -intBitsToFloat(R3i.y), -intBitsToFloat(R3i.z), -intBitsToFloat(R3i.z)), vec4(intBitsToFloat(R8i.z), intBitsToFloat(R8i.w), intBitsToFloat(R8i.w), intBitsToFloat(R8i.w)))); + PV1ix = tempi.x; + PV1iy = tempi.x; + R8i.z = tempi.x; + PV1iw = tempi.x; + float param_48 = -intBitsToFloat(R10i.x); + float param_49 = intBitsToFloat(R10i.y); + R6i.w = floatBitsToInt(mul_nonIEEE(param_48, param_49) + 1.0); + int param_50 = R6i.w; + R6i.w = clampFI32(param_50); + backupReg0i = R127i.x; + backupReg1i = R127i.y; + R127i.x = (intBitsToFloat(R1i.y) > intBitsToFloat(R126i.w)) ? (-1) : 0; + R127i.y = floatBitsToInt((-intBitsToFloat(R5i.w)) + intBitsToFloat(R125i.y)); + R127i.z = floatBitsToInt(((-intBitsToFloat(R125i.x)) * intBitsToFloat(1062557013)) + 1.0); + int param_51 = R127i.z; + R127i.z = clampFI32(param_51); + R126i.w = floatBitsToInt(((-intBitsToFloat(backupReg0i)) * intBitsToFloat(1062557013)) + 1.0); + int param_52 = R126i.w; + R126i.w = clampFI32(param_52); + float param_53 = -intBitsToFloat(R126i.z); + float param_54 = intBitsToFloat(backupReg1i); + R127i.w = floatBitsToInt(mul_nonIEEE(param_53, param_54) + 1.0); + int param_55 = R127i.w; + R127i.w = clampFI32(param_55); + R125i.x = floatBitsToInt(max(intBitsToFloat(R10i.x), intBitsToFloat(R126i.z))); + R125i.y = floatBitsToInt(max(-intBitsToFloat(R2i.w), intBitsToFloat(R2i.w))); + R126i.z = floatBitsToInt((intBitsToFloat(R4i.x) * 14.0) + (-7.0)); + R125i.w = floatBitsToInt(intBitsToFloat(R5i.w) + (-intBitsToFloat(R125i.z))); + R7i.w = floatBitsToInt(1.0 / intBitsToFloat(R3i.w)); + float param_56 = intBitsToFloat(R6i.w); + float param_57 = intBitsToFloat(R127i.z); + R8i.x = floatBitsToInt(mul_nonIEEE(param_56, param_57) + intBitsToFloat(R126i.x)); + R123i.y = floatBitsToInt((intBitsToFloat(R4i.y) * 14.0) + (-7.0)); + PV0iz = 0; + float param_58 = intBitsToFloat(R126i.w); + float param_59 = intBitsToFloat(R127i.w); + R127i.w = floatBitsToInt(mul_nonIEEE(param_58, param_59)); + R127i.w = floatBitsToInt(intBitsToFloat(R127i.w) * 2.0); + tempResultf = 1.0 / sqrt(intBitsToFloat(R124i.y)); + R126i.x = floatBitsToInt(tempResultf); + tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R126i.z), intBitsToFloat(R123i.y), intBitsToFloat(PV0iz), intBitsToFloat(int(0x80000000))), vec4(intBitsToFloat(R126i.z), intBitsToFloat(R123i.y), intBitsToFloat(R123i.y), 0.0))); + PV1ix = tempi.x; + PV1iy = tempi.x; + R7i.z = tempi.x; + PV1iw = tempi.x; + R6i.x = floatBitsToInt(1.0 / intBitsToFloat(R2i.w)); + tempi.x = floatBitsToInt(dot(vec4(-intBitsToFloat(R3i.x), -intBitsToFloat(R3i.y), -intBitsToFloat(R3i.z), -intBitsToFloat(R3i.z)), vec4(intBitsToFloat(R4i.z), intBitsToFloat(R4i.w), intBitsToFloat(R4i.w), intBitsToFloat(R4i.w)))); + PV0ix = tempi.x; + R8i.y = tempi.x; + PV0iz = tempi.x; + PV0iw = tempi.x; + float param_60 = -intBitsToFloat(R10i.x); + float param_61 = intBitsToFloat(R3i.w); + R6i.z = floatBitsToInt(mul_nonIEEE(param_60, param_61) + 1.0); + int param_62 = R6i.z; + R6i.z = clampFI32(param_62); + backupReg0i = R125i.z; + R4i.x = (intBitsToFloat(R7i.w) > intBitsToFloat(R125i.x)) ? (-1) : 0; + R127i.y = floatBitsToInt(((-intBitsToFloat(R127i.y)) * intBitsToFloat(1062557013)) + 1.0); + int param_63 = R127i.y; + R127i.y = clampFI32(param_63); + R125i.z = (R127i.x == 0) ? 0 : 1065353216; + R125i.w = floatBitsToInt(((-intBitsToFloat(R125i.w)) * intBitsToFloat(1062557013)) + 1.0); + int param_64 = R125i.w; + R125i.w = clampFI32(param_64); + R7i.x = floatBitsToInt((-intBitsToFloat(R5i.w)) + intBitsToFloat(backupReg0i)); + R1i.x = floatBitsToInt(intBitsToFloat(R5i.w) + (-intBitsToFloat(R8i.z))); + float param_65 = -intBitsToFloat(R126i.x); + float param_66 = intBitsToFloat(R125i.y); + R125i.y = floatBitsToInt(mul_nonIEEE(param_65, param_66) + 1.0); + int param_67 = R125i.y; + R125i.y = clampFI32(param_67); + R4i.z = floatBitsToInt(max(intBitsToFloat(R2i.w), -intBitsToFloat(R2i.w))); + R4i.w = floatBitsToInt(max(intBitsToFloat(R10i.x), intBitsToFloat(R126i.x))); + tempResultf = 1.0 / sqrt(intBitsToFloat(R124i.x)); + R8i.w = floatBitsToInt(tempResultf); + R123i.x = floatBitsToInt((intBitsToFloat(R9i.x) * 14.0) + (-7.0)); + R123i.y = floatBitsToInt((intBitsToFloat(R9i.y) * 14.0) + (-7.0)); + PV1iz = 0; + R1i.w = floatBitsToInt(intBitsToFloat(R8i.x) + intBitsToFloat(R125i.z)); + float param_68 = intBitsToFloat(R6i.z); + float param_69 = intBitsToFloat(R127i.y); + R4i.y = floatBitsToInt(mul_nonIEEE(param_68, param_69) + intBitsToFloat(R127i.w)); + tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R123i.x), intBitsToFloat(R123i.y), intBitsToFloat(PV1iz), intBitsToFloat(int(0x80000000))), vec4(intBitsToFloat(R123i.x), intBitsToFloat(R123i.y), intBitsToFloat(R123i.y), 0.0))); + PV0ix = tempi.x; + PV0iy = tempi.x; + R1i.z = tempi.x; + PV0iw = tempi.x; + float param_70 = intBitsToFloat(R125i.w); + float param_71 = intBitsToFloat(R125i.y); + R8i.x = floatBitsToInt(mul_nonIEEE(param_70, param_71)); + R8i.x = floatBitsToInt(intBitsToFloat(R8i.x) * 2.0); + R127i.x = floatBitsToInt(dot(vec4(-intBitsToFloat(R3i.x), -intBitsToFloat(R3i.y), -intBitsToFloat(R3i.z), -intBitsToFloat(R3i.z)), vec4(intBitsToFloat(R9i.z), intBitsToFloat(R9i.w), intBitsToFloat(R9i.w), intBitsToFloat(R9i.w)))); + PV0iy = R127i.x; + PV0iz = R127i.x; + PV0iw = R127i.x; + float param_72 = -intBitsToFloat(R10i.x); + float param_73 = intBitsToFloat(R2i.w); + R124i.w = floatBitsToInt(mul_nonIEEE(param_72, param_73) + 1.0); + int param_74 = R124i.w; + R124i.w = clampFI32(param_74); + R124i.x = (intBitsToFloat(R6i.x) > intBitsToFloat(R4i.w)) ? (-1) : 0; + R125i.y = (R4i.x == 0) ? 0 : 1065353216; + R125i.z = floatBitsToInt(((-intBitsToFloat(R7i.x)) * intBitsToFloat(1062557013)) + 1.0); + int param_75 = R125i.z; + R125i.z = clampFI32(param_75); + R125i.w = floatBitsToInt((-intBitsToFloat(R5i.w)) + intBitsToFloat(R8i.z)); + float param_76 = -intBitsToFloat(R8i.w); + float param_77 = intBitsToFloat(R4i.z); + R126i.x = floatBitsToInt(mul_nonIEEE(param_76, param_77) + 1.0); + int param_78 = R126i.x; + R126i.x = clampFI32(param_78); + R123i.x = floatBitsToInt(((-intBitsToFloat(R1i.x)) * intBitsToFloat(1062557013)) + 1.0); + int param_79 = R123i.x; + R123i.x = clampFI32(param_79); + PV0iy = floatBitsToInt(max(intBitsToFloat(R10i.x), intBitsToFloat(R8i.w))); + R126i.z = floatBitsToInt(intBitsToFloat(R5i.w) + (-intBitsToFloat(R8i.y))); + R127i.w = floatBitsToInt(max(intBitsToFloat(R3i.w), -intBitsToFloat(R3i.w))); + tempResultf = 1.0 / sqrt(intBitsToFloat(R7i.z)); + R126i.w = floatBitsToInt(tempResultf); + float param_80 = intBitsToFloat(R123i.x); + float param_81 = intBitsToFloat(R126i.x); + R126i.x = floatBitsToInt(mul_nonIEEE(param_80, param_81)); + R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) * 2.0); + R124i.y = (intBitsToFloat(R6i.x) > intBitsToFloat(PV0iy)) ? (-1) : 0; + float param_82 = intBitsToFloat(R124i.w); + float param_83 = intBitsToFloat(R125i.z); + R125i.z = floatBitsToInt(mul_nonIEEE(param_82, param_83) + intBitsToFloat(R8i.x)); + R8i.w = floatBitsToInt(intBitsToFloat(R4i.y) + intBitsToFloat(R125i.y)); + R127i.y = R1i.w; + backupReg0i = R126i.z; + R124i.x = (R124i.x == 0) ? 0 : 1065353216; + R125i.y = floatBitsToInt(((-intBitsToFloat(R125i.w)) * intBitsToFloat(1062557013)) + 1.0); + int param_84 = R125i.y; + R125i.y = clampFI32(param_84); + R126i.z = floatBitsToInt(intBitsToFloat(R10i.x) * intBitsToFloat(1060320051)); + R125i.w = floatBitsToInt(((-intBitsToFloat(backupReg0i)) * intBitsToFloat(1062557013)) + 1.0); + int param_85 = R125i.w; + R125i.w = clampFI32(param_85); + R3i.w = floatBitsToInt((-intBitsToFloat(R5i.w)) + intBitsToFloat(R8i.y)); + PV1ix = floatBitsToInt(max(intBitsToFloat(R10i.x), intBitsToFloat(R126i.w))); + R126i.y = floatBitsToInt(max(intBitsToFloat(R10i.y), -intBitsToFloat(R10i.y))); + float param_86 = -intBitsToFloat(R126i.w); + float param_87 = intBitsToFloat(R127i.w); + R123i.z = floatBitsToInt(mul_nonIEEE(param_86, param_87) + 1.0); + int param_88 = R123i.z; + R123i.z = clampFI32(param_88); + R127i.w = floatBitsToInt(intBitsToFloat(R5i.w) + (-intBitsToFloat(R127i.x))); + tempResultf = 1.0 / sqrt(intBitsToFloat(R1i.z)); + R10i.y = floatBitsToInt(tempResultf); + backupReg0i = R126i.x; + float param_89 = intBitsToFloat(R125i.w); + float param_90 = intBitsToFloat(R123i.z); + R126i.x = floatBitsToInt(mul_nonIEEE(param_89, param_90)); + R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) * 2.0); + R8i.y = (intBitsToFloat(R7i.w) > intBitsToFloat(PV1ix)) ? (-1) : 0; + float param_91 = intBitsToFloat(R124i.w); + float param_92 = intBitsToFloat(R125i.y); + R124i.z = floatBitsToInt(mul_nonIEEE(param_91, param_92) + intBitsToFloat(backupReg0i)); + R124i.w = floatBitsToInt(intBitsToFloat(R125i.z) + intBitsToFloat(R124i.x)); + float param_93 = intBitsToFloat(R11i.x); + float param_94 = intBitsToFloat(R126i.z); + R125i.y = floatBitsToInt(mul_nonIEEE(param_93, param_94)); + float param_95 = intBitsToFloat(R11i.y); + float param_96 = intBitsToFloat(R126i.z); + R124i.x = floatBitsToInt(mul_nonIEEE(param_95, param_96)); + float param_97 = intBitsToFloat(R1i.w); + float param_98 = intBitsToFloat(R12i.x); + R11i.y = floatBitsToInt(mul_nonIEEE(param_97, param_98)); + float param_99 = intBitsToFloat(R1i.w); + float param_100 = intBitsToFloat(R12i.y); + R127i.z = floatBitsToInt(mul_nonIEEE(param_99, param_100)); + float param_101 = intBitsToFloat(R11i.z); + float param_102 = intBitsToFloat(R126i.z); + R125i.w = floatBitsToInt(mul_nonIEEE(param_101, param_102)); + float param_103 = intBitsToFloat(R1i.w); + float param_104 = intBitsToFloat(R12i.z); + R125i.z = floatBitsToInt(mul_nonIEEE(param_103, param_104)); + backupReg0i = R127i.w; + R125i.x = R8i.w; + R123i.y = floatBitsToInt(((-intBitsToFloat(R3i.w)) * intBitsToFloat(1062557013)) + 1.0); + int param_105 = R123i.y; + R123i.y = clampFI32(param_105); + R126i.z = floatBitsToInt(intBitsToFloat(R126i.z) + intBitsToFloat(R127i.y)); + R127i.w = (R124i.y == 0) ? 0 : 1065353216; + R11i.z = floatBitsToInt(((-intBitsToFloat(backupReg0i)) * intBitsToFloat(1062557013)) + 1.0); + int param_106 = R11i.z; + R11i.z = clampFI32(param_106); + backupReg0i = R127i.x; + backupReg1i = R126i.y; + int backupReg2i = R125i.z; + float param_107 = intBitsToFloat(R6i.z); + float param_108 = intBitsToFloat(R123i.y); + R127i.x = floatBitsToInt(mul_nonIEEE(param_107, param_108) + intBitsToFloat(R126i.x)); + R126i.y = floatBitsToInt((-intBitsToFloat(R5i.w)) + intBitsToFloat(backupReg0i)); + float param_109 = -intBitsToFloat(R10i.y); + float param_110 = intBitsToFloat(backupReg1i); + R125i.z = floatBitsToInt(mul_nonIEEE(param_109, param_110) + 1.0); + int param_111 = R125i.z; + R125i.z = clampFI32(param_111); + PV1iw = floatBitsToInt(max(intBitsToFloat(R10i.x), intBitsToFloat(R10i.y))); + R125i.w = floatBitsToInt(intBitsToFloat(R125i.w) + intBitsToFloat(backupReg2i)); + backupReg0i = R125i.x; + R125i.x = floatBitsToInt(intBitsToFloat(R124i.x) + intBitsToFloat(R127i.z)); + R125i.y = floatBitsToInt(intBitsToFloat(R125i.y) + intBitsToFloat(R11i.y)); + R6i.z = floatBitsToInt(intBitsToFloat(R124i.z) + intBitsToFloat(R127i.w)); + R127i.w = floatBitsToInt(intBitsToFloat(R126i.z) + intBitsToFloat(backupReg0i)); + R127i.z = (intBitsToFloat(R1i.y) > intBitsToFloat(PV1iw)) ? (-1) : 0; + float param_112 = intBitsToFloat(R8i.w); + float param_113 = intBitsToFloat(R13i.z); + PV1ix = floatBitsToInt(mul_nonIEEE(param_112, param_113)); + float param_114 = intBitsToFloat(R11i.z); + float param_115 = intBitsToFloat(R125i.z); + R127i.y = floatBitsToInt(mul_nonIEEE(param_114, param_115)); + R127i.y = floatBitsToInt(intBitsToFloat(R127i.y) * 2.0); + float param_116 = intBitsToFloat(R8i.w); + float param_117 = intBitsToFloat(R13i.y); + PV1iz = floatBitsToInt(mul_nonIEEE(param_116, param_117)); + float param_118 = intBitsToFloat(R8i.w); + float param_119 = intBitsToFloat(R13i.x); + PV1iw = floatBitsToInt(mul_nonIEEE(param_118, param_119)); + R125i.z = R124i.w; + R123i.x = floatBitsToInt(((-intBitsToFloat(R126i.y)) * intBitsToFloat(1062557013)) + 1.0); + int param_120 = R123i.x; + R123i.x = clampFI32(param_120); + R126i.y = floatBitsToInt(intBitsToFloat(R125i.y) + intBitsToFloat(PV1iw)); + R126i.z = floatBitsToInt(intBitsToFloat(R125i.x) + intBitsToFloat(PV1iz)); + R123i.w = (R8i.y == 0) ? 0 : 1065353216; + R124i.z = floatBitsToInt(intBitsToFloat(R125i.w) + intBitsToFloat(PV1ix)); + float param_121 = intBitsToFloat(R6i.w); + float param_122 = intBitsToFloat(R123i.x); + R125i.x = floatBitsToInt(mul_nonIEEE(param_121, param_122) + intBitsToFloat(R127i.y)); + R125i.y = floatBitsToInt(intBitsToFloat(R127i.x) + intBitsToFloat(R123i.w)); + R125i.z = floatBitsToInt(intBitsToFloat(R127i.w) + intBitsToFloat(R125i.z)); + float param_123 = intBitsToFloat(R124i.w); + float param_124 = intBitsToFloat(R14i.x); + PV1iw = floatBitsToInt(mul_nonIEEE(param_123, param_124)); + float param_125 = intBitsToFloat(R124i.w); + float param_126 = intBitsToFloat(R14i.y); + R127i.x = floatBitsToInt(mul_nonIEEE(param_125, param_126)); + R124i.x = floatBitsToInt(intBitsToFloat(R126i.y) + intBitsToFloat(PV1iw)); + R123i.y = (R127i.z == 0) ? 0 : 1065353216; + PV0iz = R6i.z; + float param_127 = intBitsToFloat(R124i.w); + float param_128 = intBitsToFloat(R14i.z); + PV0iw = floatBitsToInt(mul_nonIEEE(param_127, param_128)); + float param_129 = intBitsToFloat(R6i.z); + float param_130 = intBitsToFloat(R15i.x); + R126i.y = floatBitsToInt(mul_nonIEEE(param_129, param_130)); + PV1ix = floatBitsToInt(intBitsToFloat(R125i.z) + intBitsToFloat(PV0iz)); + R127i.y = floatBitsToInt(intBitsToFloat(R126i.z) + intBitsToFloat(R127i.x)); + R125i.z = floatBitsToInt(intBitsToFloat(R125i.x) + intBitsToFloat(R123i.y)); + R124i.w = floatBitsToInt(intBitsToFloat(R124i.z) + intBitsToFloat(PV0iw)); + PS1i = R125i.y; + backupReg0i = R126i.y; + float param_131 = intBitsToFloat(R6i.z); + float param_132 = intBitsToFloat(R15i.y); + PV0ix = floatBitsToInt(mul_nonIEEE(param_131, param_132)); + R126i.y = floatBitsToInt(intBitsToFloat(PV1ix) + intBitsToFloat(PS1i)); + R126i.z = floatBitsToInt(intBitsToFloat(R124i.x) + intBitsToFloat(backupReg0i)); + float param_133 = intBitsToFloat(R6i.z); + float param_134 = intBitsToFloat(R15i.z); + PV0iw = floatBitsToInt(mul_nonIEEE(param_133, param_134)); + float param_135 = intBitsToFloat(R125i.y); + float param_136 = intBitsToFloat(R0i.x); + R127i.w = floatBitsToInt(mul_nonIEEE(param_135, param_136)); + PV1ix = floatBitsToInt(intBitsToFloat(R124i.w) + intBitsToFloat(PV0iw)); + PV1iy = floatBitsToInt(intBitsToFloat(R127i.y) + intBitsToFloat(PV0ix)); + float param_137 = intBitsToFloat(R125i.y); + float param_138 = intBitsToFloat(R0i.y); + PV1iz = floatBitsToInt(mul_nonIEEE(param_137, param_138)); + float param_139 = intBitsToFloat(R125i.y); + float param_140 = intBitsToFloat(R0i.z); + PV1iw = floatBitsToInt(mul_nonIEEE(param_139, param_140)); + PS1i = R125i.z; + PV0ix = floatBitsToInt(intBitsToFloat(R126i.z) + intBitsToFloat(R127i.w)); + PV0iy = floatBitsToInt(intBitsToFloat(R126i.y) + intBitsToFloat(PS1i)); + R126i.z = floatBitsToInt(intBitsToFloat(PV1ix) + intBitsToFloat(PV1iw)); + R127i.w = floatBitsToInt(intBitsToFloat(PV1iy) + intBitsToFloat(PV1iz)); + float param_141 = intBitsToFloat(R125i.z); + float param_142 = intBitsToFloat(R16i.x); + PS0i = floatBitsToInt(mul_nonIEEE(param_141, param_142)); + PV1ix = floatBitsToInt(intBitsToFloat(PV0ix) + intBitsToFloat(PS0i)); + float param_143 = intBitsToFloat(R125i.z); + float param_144 = intBitsToFloat(R16i.z); + PV1iy = floatBitsToInt(mul_nonIEEE(param_143, param_144)); + float param_145 = intBitsToFloat(R125i.z); + float param_146 = intBitsToFloat(R16i.y); + PV1iz = floatBitsToInt(mul_nonIEEE(param_145, param_146)); + R124i.x = floatBitsToInt(1.0 / intBitsToFloat(PV0iy)); + R16i.x = floatBitsToInt(intBitsToFloat(PV1ix) * intBitsToFloat(R124i.x)); + PV0iz = floatBitsToInt(intBitsToFloat(R126i.z) + intBitsToFloat(PV1iy)); + PV0iw = floatBitsToInt(intBitsToFloat(R127i.w) + intBitsToFloat(PV1iz)); + R16i.y = floatBitsToInt(intBitsToFloat(PV0iw) * intBitsToFloat(R124i.x)); + R16i.z = floatBitsToInt(intBitsToFloat(PV0iz) * intBitsToFloat(R124i.x)); + tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R16i.x), intBitsToFloat(R16i.y), intBitsToFloat(R16i.z), intBitsToFloat(int(0x80000000))), vec4(intBitsToFloat(1050220167), intBitsToFloat(1058424226), intBitsToFloat(1038710997), 0.0))); + PV0ix = tempi.x; + PV0iy = tempi.x; + PV0iz = tempi.x; + R16i.w = tempi.x; + passPixelColor0 = vec4(intBitsToFloat(R16i.x), intBitsToFloat(R16i.y), intBitsToFloat(R16i.z), intBitsToFloat(0.0)); +} + diff --git a/src/SkylandersTrapTeam/Enhancements/MotionBlur/rules.txt b/src/SkylandersTrapTeam/Enhancements/MotionBlur/rules.txt new file mode 100644 index 000000000..827177098 --- /dev/null +++ b/src/SkylandersTrapTeam/Enhancements/MotionBlur/rules.txt @@ -0,0 +1,6 @@ +[Definition] +titleIds = 000500001017C600,0005000010181F00 +name = Motion blur removal +path = "Skylanders Trap Team/Enhancements/Motion blur removal" +description = Removes the motion blur when playing the game (requires the blur removal)||Made by Flextape05 +version = 6 diff --git a/src/SkylandersTrapTeam/Enhancements/RemoveAntiAliasingBlur/887d460787a04617_00000000000003c9_ps.txt b/src/SkylandersTrapTeam/Enhancements/RemoveAntiAliasingBlur/887d460787a04617_00000000000003c9_ps.txt new file mode 100644 index 000000000..eb2c6e6a3 --- /dev/null +++ b/src/SkylandersTrapTeam/Enhancements/RemoveAntiAliasingBlur/887d460787a04617_00000000000003c9_ps.txt @@ -0,0 +1,51 @@ +#version 460 + +// Vulkan specific layout for texture and uniform binding +#ifdef VULKAN + layout(set = 1, binding = 2, std140) uniform ufBlock { + vec4 uf_fragCoordScale; + }; + layout(set = 1, binding = 1) uniform sampler2D textureUnitPS1; + layout(set = 1, binding = 0) uniform sampler2D textureUnitPS0; +#else + // OpenGL bindings for uniform and textures + uniform ufBlock { + vec4 uf_fragCoordScale; + }; + uniform sampler2D textureUnitPS1; + uniform sampler2D textureUnitPS0; +#endif + +layout(location = 0) in vec4 passParameterSem133; +layout(location = 0) out vec4 passPixelColor0; + +void main() { + ivec4 R0i = floatBitsToInt(passParameterSem133); + ivec4 R1i = ivec4(0); + + // Sample textureUnitPS1 + vec4 tex1Sample = texture(textureUnitPS1, vec2(intBitsToFloat(R0i.z), intBitsToFloat(R0i.w))); + R1i.x = floatBitsToInt(tex1Sample.z); + + // Sample textureUnitPS0 + vec3 tex0Sample = texture(textureUnitPS0, vec2(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y))).xyz; + R0i.xyz = floatBitsToInt(tex0Sample); + + // Apply adjustment to R0i.w + R0i.w = floatBitsToInt(clamp(-intBitsToFloat(R1i.x) * 7.0 + 0.5, 0.0, 1.0)); + + // Conditional discard + if (intBitsToFloat(R0i.w) < 0.0) { + discard; + } + + // Final dot product calculation + float dotResult = dot( + vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), -1.0), + vec4(0.5, 0.67, 0.41, 0.0) + ); + R0i.w = floatBitsToInt(dotResult); + + // Output final color + passPixelColor0 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), intBitsToFloat(R0i.w)); +} diff --git a/src/SkylandersTrapTeam/Enhancements/RemoveAntiAliasingBlur/9a67c35f1f18a38a_0000000000000079_ps.txt b/src/SkylandersTrapTeam/Enhancements/RemoveAntiAliasingBlur/9a67c35f1f18a38a_0000000000000079_ps.txt new file mode 100644 index 000000000..d01d81b43 --- /dev/null +++ b/src/SkylandersTrapTeam/Enhancements/RemoveAntiAliasingBlur/9a67c35f1f18a38a_0000000000000079_ps.txt @@ -0,0 +1,17 @@ +#version 460 + +// Define uniform binding for Vulkan and OpenGL compatibility +#ifdef VULKAN + layout(set = 1, binding = 0) uniform sampler2D textureUnitPS0; +#else + uniform sampler2D textureUnitPS0; +#endif + +// Input and output locations +layout(location = 0) in vec2 passUV; +layout(location = 0) out vec4 passPixelColor0; + +void main() +{ + passPixelColor0 = texture(textureUnitPS0, passUV); +} diff --git a/src/SkylandersTrapTeam/Enhancements/RemoveAntiAliasingBlur/rules.txt b/src/SkylandersTrapTeam/Enhancements/RemoveAntiAliasingBlur/rules.txt new file mode 100644 index 000000000..cda8e34cf --- /dev/null +++ b/src/SkylandersTrapTeam/Enhancements/RemoveAntiAliasingBlur/rules.txt @@ -0,0 +1,6 @@ +[Definition] +titleIds = 000500001017C600,0005000010181F00 +name = Blur filter removal +path = "Skylanders Trap Team/Enhancements/Blur filter removal" +description = Removes the muddy blur AA when playing the game||Made by Flextape05 +version = 6 diff --git a/src/SkylandersTrapTeam/Graphics/rules.txt b/src/SkylandersTrapTeam/Graphics/rules.txt index dcf154437..1bc0baa51 100644 --- a/src/SkylandersTrapTeam/Graphics/rules.txt +++ b/src/SkylandersTrapTeam/Graphics/rules.txt @@ -2,7 +2,7 @@ titleIds = 000500001017C600,0005000010181F00 name = Game Resolution and Shadow Quality path = "Skylanders Trap Team/Graphics" -description = Changes the resolution of the game and the quality of the shadows.||Made by Crementif.Aspect ratio patch made by Flextape05 +description = Changes the resolution of the game and the quality of the shadows.||Made by Crementif.||Aspect ratio patch and fixes made by Flextape05 version = 5 [Default] @@ -19,7 +19,9 @@ $fov = 0.017453292 [Preset] category = Resolution -name = 1280x720 (Default) +name = 1024x576 (Default) +$width = 1024 +$height = 576 [Preset] category = Resolution @@ -33,6 +35,12 @@ name = 960x540 $width = 960 $height = 540 +[Preset] +category = Resolution +name = 1280x720 +$width = 1280 +$height = 720 + [Preset] category = Resolution name = 1600x900 @@ -82,7 +90,7 @@ $width = 2560 $height = 1080 $hudY = 720 $hudX = 1720 -$fov = 0.0163 +$fov = 0.0159 [Preset] category = Resolution @@ -91,7 +99,7 @@ $width = 3440 $height = 1440 $hudY = 720 $hudX = 1720 -$fov = 0.0163 +$fov = 0.0159 [Preset] category = Resolution @@ -100,7 +108,7 @@ $width = 5120 $height = 2160 $hudY = 720 $hudX = 1720 -$fov = 0.0163 +$fov = 0.0159 [Preset] category = Resolution @@ -226,9 +234,9 @@ overwriteHeight = ($height/$gameHeight) * 480 [TextureRedefine] # Stage rendering width = 1024 height = 576 -formats = 0x01a,0x011,0x80e -overwriteWidth = ($width/$gameWidth) * 1024 -overwriteHeight = ($height/$gameHeight) * 576 +formats = 0x01a,0x011,0x80e,0x820 +overwriteWidth = ($width/$gameWidth) * 1280 +overwriteHeight = ($height/$gameHeight) * 720 [TextureRedefine] # Squashed/bloom alt viewport width = 512