[Skylanders Trap Team] HUD, blur filter removal and more (#674)

Thanks to @Flextape05 for his work on these additions!
This commit is contained in:
Flextape05 2025-01-13 02:31:06 +01:00 committed by GitHub
parent 2386f8e40c
commit c5bb44a3b7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
42 changed files with 1925 additions and 168 deletions

View File

@ -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);
}

View File

@ -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

View File

@ -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);
}

View File

@ -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

View File

@ -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);
}

View File

@ -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

View File

@ -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);
}

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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);
}

View File

@ -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

View File

@ -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);
}

View File

@ -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

View File

@ -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);
}

View File

@ -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

View File

@ -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);
}

View File

@ -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

View File

@ -0,0 +1,6 @@
[tfbgame_cafe0]
moduleMatches = 0xc22a1809
0x10007b3c = .float $width/$height #Main aspect ratio
0x10007b34 = .float $hudX
0x10007b38 = .float $hudY
0x10007b7c = .float $fov

View File

@ -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

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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

View File

@ -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);
}

View File

@ -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));
}

View File

@ -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);
}

View File

@ -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

View File

@ -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);
}

View File

@ -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

View File

@ -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

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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

View File

@ -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));
}

View File

@ -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));
}

View File

@ -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

View File

@ -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));
}

View File

@ -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

View File

@ -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));
}

View File

@ -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);
}

View File

@ -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

View File

@ -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