Merge branch 'master' into intra0-xcxlibini

This commit is contained in:
Crementif 2025-04-08 13:12:58 +02:00 committed by GitHub
commit 9476c77bfc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
203 changed files with 10415 additions and 1027 deletions

View file

@ -3,4 +3,5 @@ titleIds = 0005000010137F00,0005000010138300,0005000010144800
name = AA Removal
path = "Donkey Kong Country: Tropical Freeze/Enhancements/AA Removal"
description = Removes AA, no performance gain. Used for clean look or injecting external AA.
#Credits: Skalfate
version = 4

View file

@ -1,6 +0,0 @@
[Definition]
titleIds = 0005000010150300,0005000010152A00,0005000010152B00
name = Anti-Aliasing
path = "Dr. Luigi/Graphics/Anti-Aliasing (WIP)"
description = Re-enables the game's anti-aliasing and scales it up to the current resolution. Made by M&&M.
version = 4

View file

@ -1,6 +0,0 @@
[Definition]
titleIds = 5000010173E00,5000010174000,5000010174100,5000010176100,5000010176000,5000010176200,5000010176D00,5000010176C00,5000010176E00,500001017A000,500001017A100,500001017BA00,500001017A200,500001017BB00,500001017BC00,5000010180100,500001017A400,500001017A300,5000010156700,5000010156600,5000010156800,5000010156A00,5000010156900,5000010156B00,5000010156E00,5000010156C00,5000010156F00,5000010157100,5000010157000,5000010157200,5000010157400,5000010157300,5000010157500,500001015D800,500001015D700,500001015D900,500001015DB00,500001015DA00,500001015DC00,500001015DE00,500001015DD00,500001015DF00,500001015E000,500001015E400,500001015E300,500001015E500,500001015E100,500001015E200,500001016CF00,5000010169700,500001016D000,500001016D100,5000010169800,500001016D200,5000010169A00,5000010169900,5000010169B00,5000010169D00,5000010169C00,5000010169E00,500001016A000,5000010169F00,500001016A100,500001016F200,500001016F100,5000010170900,500001016F400,500001016F300,5000010172C00,500001016F600,500001016F500,5000010172D00,500001016F800,500001016F700,5000010172E00,500001016FA00,500001016F900,5000010172F00,5000010173600,5000010173500,5000010173700,5000010173900,5000010173800,5000010173F00,5000010173B00,5000010173A00,5000010173C00
name = Undarken
path = Virtual Console/GBA/Enhancements/Undarken
description = Undarkens the emulator output. Made by Zalnor.
version = 4

View file

@ -1,6 +0,0 @@
[Definition]
titleIds = 50000101FEA00,50000101FE900,5000010199200,5000010199100,5000010199300,5000010199500,5000010199400,5000010199700,5000010199600,5000010199800,5000010199B00,5000010199A00,5000010199C00,50000101A0E00,50000101A0D00,50000101A1000,50000101A5900,50000101A5800,50000101A5B00,50000101A5A00,50000101AC400,50000101AC600,50000101AC500,50000101B4600,50000101B4500,50000101B4800,50000101B4700,50000101BAF00,50000101BAE00,50000101BB000,50000101BB200,50000101BB100,50000101C5D00,50000101C5C00,50000101C5E00,50000101DA800,50000101DA700,50000101DA900,50000101E6500,50000101E6400,50000101E6700,50000101E6600,50000101EBB00,50000101FE800,50000101FE700
name = Undarken
path = Virtual Console/N64/Enhancements/Undarken
description = Undarkens the emulator output. Made by Zalnor.
version = 4

View file

@ -1,6 +0,0 @@
[Definition]
titleIds = 500001012A100,500001012DF00,500001012DE00,500001012E000,500001012E100,500001012E300,500001012E200,500001012E400,500001012E700,500001012E600,500001012E800,500001012F400,500001012F300,500001012F500,500001012F700,500001012F600,500001012F800,5000010106D00,5000010106C00,5000010106E00,5000010107000,5000010106F00,5000010107100,5000010107500,5000010107200,5000010107600,5000010107800,5000010107700,5000010107900,5000010107C00,5000010107B00,5000010107D00,5000010107F00,5000010107E00,5000010108000,5000010108200,5000010108100,5000010108300,5000010108500,5000010108400,5000010108600,5000010108800,5000010108700,5000010108900,5000010108B00,5000010108A00,5000010108C00,5000010113F00,5000010113E00,5000010114000,5000010114200,5000010114100,5000010114300,5000010114500,5000010114400,5000010114600,5000010114800,5000010114700,5000010114900,5000010114A00,5000010119200,5000010119100,5000010119300,500001011A900,5000010119400,500001011AA00,500001011AE00,5000010119500,5000010119700,5000010119800,500001011AC00,500001011AB00,500001011AD00,5000010129800,5000010129700,5000010129900,5000010129A00,5000010129C00,5000010129B00,5000010129D00,5000010129F00,5000010129E00,500001012A000
name = Undarken
path = Virtual Console/NES/Enhancements/Undarken
description = Undarkens the emulator output. Made by Zalnor.
version = 4

View file

@ -0,0 +1,6 @@
[zelda-tp-disable-mirroring]
moduleMatches = 0x1A03E108, 0xA3175EEA
0x02941064 = stb r0, 0x667d(r12)
0x0294819c = li r0, 32
0x029481ac = stb r0, 0x667d(r11)

View file

@ -0,0 +1,6 @@
[Definition]
titleIds = 000500001019C800,000500001019E600,000500001019E500
name = Disable Mirroring
path = "The Legend of Zelda: Twilight Princess HD/Mods/Disable Mirroring (Hero Mode)"
description = Hero Mode will no longer be mirrored.|Made by EitchKeii.
version = 4

View file

@ -3,6 +3,7 @@ titleIds = 0005000010137F00,0005000010138300,0005000010144800
name = Resolution
path = "Donkey Kong Country: Tropical Freeze/Graphics/Resolution"
description = Changes the resolution of the game. Made by getdls and Skalfate.
#Credits: getdls, Skalfate
version = 4
[Preset]

View file

@ -1,246 +0,0 @@
#version 420
#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 SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
#define gl_VertexID gl_VertexIndex
#define gl_InstanceID gl_InstanceIndex
#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 SET_POSITION(_v) gl_Position = _v
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
#endif
// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL.
// shader 9e9abde99f9510dc
#ifdef VULKAN
layout(set = 1, binding = 1) uniform ufBlock
{
uniform float uf_alphaTestRef;
uniform vec4 uf_fragCoordScale;
};
#else
uniform float uf_alphaTestRef;
uniform vec2 uf_fragCoordScale;
#endif
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0;
layout(location = 0) in vec4 passParameterSem129;
layout(location = 1) in vec4 passParameterSem128;
layout(location = 0) out vec4 passPixelColor0;
// uf_fragCoordScale was moved to the ufBlock
int clampFI32(int v)
{
if( v == 0x7FFFFFFF )
return floatBitsToInt(1.0);
else if( v == 0xFFFFFFFF )
return floatBitsToInt(0.0);
return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0));
}
float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; }
void main()
{
ivec4 R0i = ivec4(0);
ivec4 R1i = ivec4(0);
ivec4 R2i = ivec4(0);
ivec4 R3i = ivec4(0);
ivec4 R4i = ivec4(0);
ivec4 R5i = ivec4(0);
ivec4 R6i = ivec4(0);
ivec4 R7i = ivec4(0);
ivec4 R8i = ivec4(0);
ivec4 R122i = ivec4(0);
ivec4 R123i = ivec4(0);
ivec4 R126i = ivec4(0);
ivec4 R127i = ivec4(0);
int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i;
ivec4 PV0i = ivec4(0), PV1i = ivec4(0);
int PS0i = 0, PS1i = 0;
ivec4 tempi = ivec4(0);
float tempResultf;
int tempResulti;
ivec4 ARi = ivec4(0);
bool predResult = true;
vec3 cubeMapSTM;
int cubeMapFaceId;
//R0i = floatBitsToInt(passParameterSem129);
R1i = floatBitsToInt(passParameterSem128);
R5i.xyz = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R1i.zw)).xyz);
R6i.xyz = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R1i.xy)).xyz);
// 0
backupReg0i = R0i.y;
backupReg1i = R0i.x;
PV0i.x = 0;
PV0i.y = floatBitsToInt(intBitsToFloat(backupReg0i) * 1.0);
PV0i.z = 0;
R127i.w = floatBitsToInt(intBitsToFloat(backupReg1i) * 1.0);
PV0i.w = R127i.w;
R8i.w = 0x3f800000;
PS0i = R8i.w;
// 1
R2i.x = floatBitsToInt(intBitsToFloat(R1i.z) + intBitsToFloat(PV0i.w));
R2i.y = floatBitsToInt(intBitsToFloat(R1i.w) + intBitsToFloat(PV0i.x));
R3i.z = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(R1i.z));
PV1i.w = PV0i.y;
R3i.y = floatBitsToInt(intBitsToFloat(PV0i.y) + intBitsToFloat(R1i.w));
PS1i = R3i.y;
// 2
R4i.x = floatBitsToInt(intBitsToFloat(R1i.z) + intBitsToFloat(R127i.w));
R4i.y = floatBitsToInt(intBitsToFloat(R1i.w) + intBitsToFloat(PV1i.w));
R0i.z = floatBitsToInt(intBitsToFloat(R6i.z) * intBitsToFloat(0x3de978d5));
R3i.x = floatBitsToInt(intBitsToFloat(R5i.z) * intBitsToFloat(0x3de978d5));
PS0i = R3i.x;
R2i.xyz = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R2i.xy)).xyz);
R7i.xyz = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R3i.zy)).xyz);
R4i.xyz = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R4i.xy)).xyz);
// 0
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R5i.y),intBitsToFloat(R3i.x),-0.0),vec4(intBitsToFloat(0x3e991687),intBitsToFloat(0x3f1645a2),1.0,0.0)));
PV0i.x = tempi.x;
PV0i.y = tempi.x;
PV0i.z = tempi.x;
PV0i.w = tempi.x;
R127i.z = tempi.x;
R122i.x = floatBitsToInt((intBitsToFloat(R6i.y) * intBitsToFloat(0x3f1645a2) + intBitsToFloat(R0i.z)));
PS0i = R122i.x;
// 1
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R2i.z),-0.0),vec4(intBitsToFloat(0x3e991687),intBitsToFloat(0x3f1645a2),intBitsToFloat(0x3de978d5),0.0)));
PV1i.x = tempi.x;
PV1i.y = tempi.x;
PV1i.z = tempi.x;
PV1i.w = tempi.x;
R127i.y = tempi.x;
R126i.z = floatBitsToInt((intBitsToFloat(R6i.x) * intBitsToFloat(0x3e991687) + intBitsToFloat(PS0i)));
PS1i = R126i.z;
// 2
R126i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R7i.x),intBitsToFloat(R7i.y),intBitsToFloat(R7i.z),-0.0),vec4(intBitsToFloat(0x3e991687),intBitsToFloat(0x3f1645a2),intBitsToFloat(0x3de978d5),0.0)));
PV0i.x = R126i.x;
PV0i.y = R126i.x;
PV0i.z = R126i.x;
PV0i.w = R126i.x;
R127i.x = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(PV1i.x));
PS0i = R127i.x;
// 3
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R4i.x),intBitsToFloat(R4i.y),intBitsToFloat(R4i.z),-0.0),vec4(intBitsToFloat(0x3e991687),intBitsToFloat(0x3f1645a2),intBitsToFloat(0x3de978d5),0.0)));
PV1i.x = tempi.x;
PV1i.y = tempi.x;
PV1i.z = tempi.x;
PV1i.w = tempi.x;
R127i.w = tempi.x;
PS1i = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(PS0i));
// 4
PV0i.x = floatBitsToInt(intBitsToFloat(R127i.y) + intBitsToFloat(PV1i.x));
PV0i.y = floatBitsToInt(intBitsToFloat(R126i.x) + intBitsToFloat(PV1i.x));
PV0i.z = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(R126i.x));
PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(PS1i));
R126i.y = floatBitsToInt(min(intBitsToFloat(R127i.z), intBitsToFloat(R127i.y)));
PS0i = R126i.y;
// 5
backupReg0i = R127i.x;
backupReg1i = R127i.z;
backupReg2i = R127i.y;
R127i.x = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + intBitsToFloat(PV0i.z));
PV1i.x = R127i.x;
PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.w) * intBitsToFloat(0x3d000000));
R127i.z = floatBitsToInt(min(intBitsToFloat(R126i.x), intBitsToFloat(R127i.w)));
PV1i.w = floatBitsToInt(-(intBitsToFloat(PV0i.y)) + intBitsToFloat(backupReg0i));
R127i.y = floatBitsToInt(max(intBitsToFloat(backupReg1i), intBitsToFloat(backupReg2i)));
PS1i = R127i.y;
// 6
backupReg0i = R126i.x;
backupReg1i = R127i.w;
R126i.x = floatBitsToInt(-(intBitsToFloat(PV1i.w)));
PV0i.y = floatBitsToInt(max(intBitsToFloat(PV1i.x), -(intBitsToFloat(PV1i.x))));
PV0i.z = floatBitsToInt(max(-(intBitsToFloat(PV1i.w)), intBitsToFloat(PV1i.w)));
R127i.w = floatBitsToInt(max(intBitsToFloat(PV1i.y), intBitsToFloat(0x3c000000)));
PS0i = floatBitsToInt(max(intBitsToFloat(backupReg0i), intBitsToFloat(backupReg1i)));
// 7
PV1i.x = floatBitsToInt(min(intBitsToFloat(PV0i.z), intBitsToFloat(PV0i.y)));
PV1i.y = floatBitsToInt(max(intBitsToFloat(R127i.y), intBitsToFloat(PS0i)));
PV1i.w = floatBitsToInt(min(intBitsToFloat(R126i.y), intBitsToFloat(R127i.z)));
// 8
R2i.x = floatBitsToInt(max(intBitsToFloat(R126i.z), intBitsToFloat(PV1i.y)));
R2i.z = floatBitsToInt(min(intBitsToFloat(R126i.z), intBitsToFloat(PV1i.w)));
PV0i.w = floatBitsToInt(intBitsToFloat(R127i.w) + intBitsToFloat(PV1i.x));
// 9
PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.w));
// 10
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PS1i)));
PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PS1i)));
// 11
PV1i.z = floatBitsToInt(max(intBitsToFloat(PV0i.x), intBitsToFloat(0xc1000000)));
PV1i.w = floatBitsToInt(max(intBitsToFloat(PV0i.y), intBitsToFloat(0xc1000000)));
// 12
PV0i.y = floatBitsToInt(min(intBitsToFloat(PV1i.w), intBitsToFloat(0x41000000)));
PV0i.w = floatBitsToInt(min(intBitsToFloat(PV1i.z), intBitsToFloat(0x41000000)));
// 13
R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.x), intBitsToFloat(PV0i.y)));
PV1i.z = R126i.z;
R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.y), intBitsToFloat(PV0i.w)));
PV1i.w = R127i.w;
// 14
R0i.x = floatBitsToInt((intBitsToFloat(PV1i.z) * intBitsToFloat(0x3e2aaaac) + intBitsToFloat(R1i.x)));
R0i.y = floatBitsToInt((intBitsToFloat(PV1i.w) * intBitsToFloat(0x3e2aaaac) + intBitsToFloat(R1i.y)));
R4i.z = floatBitsToInt((intBitsToFloat(PV1i.z) * intBitsToFloat(0xbe2aaaaa) + intBitsToFloat(R1i.x)));
R4i.w = floatBitsToInt((intBitsToFloat(PV1i.w) * intBitsToFloat(0xbe2aaaaa) + intBitsToFloat(R1i.y)));
R4i.x = floatBitsToInt((intBitsToFloat(PV1i.z) * 0.5 + intBitsToFloat(R1i.x)));
PS0i = R4i.x;
// 15
backupReg0i = R1i.x;
R1i.x = floatBitsToInt((-(intBitsToFloat(R126i.z)) * 0.5 + intBitsToFloat(backupReg0i)));
R4i.y = floatBitsToInt((intBitsToFloat(R127i.w) * 0.5 + intBitsToFloat(R1i.y)));
R1i.z = floatBitsToInt((-(intBitsToFloat(R127i.w)) * 0.5 + intBitsToFloat(R1i.y)));
R0i.xyz = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R0i.xy)).xyz);
R7i.xyz = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R4i.zw)).xyz);
R4i.xyz = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R4i.xy)).xyz);
R1i.xyz = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R1i.xz)).xyz);
// 0
R126i.x = floatBitsToInt(intBitsToFloat(R0i.z) + intBitsToFloat(R7i.z));
R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) / 2.0);
R127i.z = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(R7i.y));
R127i.z = floatBitsToInt(intBitsToFloat(R127i.z) / 2.0);
PV0i.z = R127i.z;
R127i.w = floatBitsToInt(intBitsToFloat(R0i.x) + intBitsToFloat(R7i.x));
R127i.w = floatBitsToInt(intBitsToFloat(R127i.w) / 2.0);
PV0i.w = R127i.w;
// 1
PV1i.x = floatBitsToInt(intBitsToFloat(R4i.x) + intBitsToFloat(R1i.x));
PV1i.y = PV0i.w;
PV1i.y = floatBitsToInt(intBitsToFloat(PV1i.y) / 2.0);
R126i.z = floatBitsToInt(intBitsToFloat(R4i.z) + intBitsToFloat(R1i.z));
PV1i.w = floatBitsToInt(intBitsToFloat(R4i.y) + intBitsToFloat(R1i.y));
PS1i = PV0i.z;
PS1i = floatBitsToInt(intBitsToFloat(PS1i) / 2.0);
// 2
R127i.x = floatBitsToInt((intBitsToFloat(PV1i.x) * 0.25 + intBitsToFloat(PV1i.y)));
R127i.y = floatBitsToInt((intBitsToFloat(PV1i.w) * 0.25 + intBitsToFloat(PS1i)));
PV0i.w = R126i.x;
PV0i.w = floatBitsToInt(intBitsToFloat(PV0i.w) / 2.0);
// 3
backupReg0i = R126i.z;
R126i.z = floatBitsToInt((intBitsToFloat(backupReg0i) * 0.25 + intBitsToFloat(PV0i.w)));
PV1i.z = R126i.z;
// 4
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.y),intBitsToFloat(PV1i.z),-0.0),vec4(intBitsToFloat(0x3e991687),intBitsToFloat(0x3f1645a2),intBitsToFloat(0x3de978d5),0.0)));
PV0i.x = tempi.x;
PV0i.y = tempi.x;
PV0i.z = tempi.x;
PV0i.w = tempi.x;
// 5
PV1i.y = ((intBitsToFloat(PV0i.x) > intBitsToFloat(R2i.x))?int(0xFFFFFFFF):int(0x0));
PV1i.z = ((intBitsToFloat(R2i.z) > intBitsToFloat(PV0i.x))?int(0xFFFFFFFF):int(0x0));
// 6
R123i.x = ((PV1i.z == 0)?(PV1i.y):(int(-1)));
PV0i.x = R123i.x;
// 7
R8i.x = ((PV0i.x == 0)?(R127i.x):(R127i.w));
R8i.y = ((PV0i.x == 0)?(R127i.y):(R127i.z));
R8i.z = ((PV0i.x == 0)?(R126i.z):(R126i.x));
// export
if( ((vec4(intBitsToFloat(R8i.x), intBitsToFloat(R8i.y), intBitsToFloat(R8i.z), intBitsToFloat(R8i.w))).a > uf_alphaTestRef) == false) discard;
passPixelColor0 = vec4(intBitsToFloat(R8i.x), intBitsToFloat(R8i.y), intBitsToFloat(R8i.z), intBitsToFloat(R8i.w));
}

View file

@ -1,145 +0,0 @@
[Definition]
titleIds = 5000010173E00,5000010174000,5000010174100,5000010176100,5000010176000,5000010176200,5000010176D00,5000010176C00,5000010176E00,500001017A000,500001017A100,500001017BA00,500001017A200,500001017BB00,500001017BC00,5000010180100,500001017A400,500001017A300,5000010156700,5000010156600,5000010156800,5000010156A00,5000010156900,5000010156B00,5000010156E00,5000010156C00,5000010156F00,5000010157100,5000010157000,5000010157200,5000010157400,5000010157300,5000010157500,500001015D800,500001015D700,500001015D900,500001015DB00,500001015DA00,500001015DC00,500001015DE00,500001015DD00,500001015DF00,500001015E000,500001015E400,500001015E300,500001015E500,500001015E100,500001015E200,500001016CF00,5000010169700,500001016D000,500001016D100,5000010169800,500001016D200,5000010169A00,5000010169900,5000010169B00,5000010169D00,5000010169C00,5000010169E00,500001016A000,5000010169F00,500001016A100,500001016F200,500001016F100,5000010170900,500001016F400,500001016F300,5000010172C00,500001016F600,500001016F500,5000010172D00,500001016F800,500001016F700,5000010172E00,500001016FA00,500001016F900,5000010172F00,5000010173600,5000010173500,5000010173700,5000010173900,5000010173800,5000010173F00,5000010173B00,5000010173A00,5000010173C00
name = "Resolution"
path = Virtual Console/GBA/Graphics/Resolution
description = Changes the resolution of the game. Made by Zalnor.
version = 4
[Preset]
name = 1920x1080 (Default)
$width = 1920
$height = 1080
$gameWidth = 1920
$gameHeight = 1088
$GPgameWidth = 864
$GPgameHeight = 480
GBA Resolutions----------------------------
[Preset]
name = ~~~Original GBA Resolutions~~~
$width = 284
$height = 160
$gameWidth = 1920
$gameHeight = 1088
$GPgameWidth = 864
$GPgameHeight = 480
[Preset]
name = 240x160 (Original GBA)
$width = 284
$height = 160
$gameWidth = 1920
$gameHeight = 1088
$GPgameWidth = 864
$GPgameHeight = 480
[Preset]
name = 480x320 2x
$width = 569
$height = 320
$gameWidth = 1920
$gameHeight = 1088
$GPgameWidth = 864
$GPgameHeight = 480
[Preset]
name = 720x480 3x (480p)
$width = 853
$height = 480
$gameWidth = 1920
$gameHeight = 1088
$GPgameWidth = 864
$GPgameHeight = 480
[Preset]
name = 960x640 4x
$width = 1138
$height = 640
$gameWidth = 1920
$gameHeight = 1088
$GPgameWidth = 864
$GPgameHeight = 480
[Preset]
name = 1200x800 5x (720p)
$width = 1422
$height = 800
$gameWidth = 1920
$gameHeight = 1088
$GPgameWidth = 864
$GPgameHeight = 480
[Preset]
name = 1440x960 6x
$width = 1707
$height = 960
$gameWidth = 1920
$gameHeight = 1088
$GPgameWidth = 864
$GPgameHeight = 480
[Preset]
name = 1680x1120 7x (1080p)
$width = 1991
$height = 1120
$gameWidth = 1920
$gameHeight = 1088
$GPgameWidth = 864
$GPgameHeight = 480
[Preset]
name = 1920x1280 8x
$width = 2276
$height = 1280
$gameWidth = 1920
$gameHeight = 1088
$GPgameWidth = 864
$GPgameHeight = 480
[Preset]
name = 2160x1440 9x (1440p)
$width = 2560
$height = 1440
$gameWidth = 1920
$gameHeight = 1088
$GPgameWidth = 864
$GPgameHeight = 480
#TV Viewports-------------------------------------
[TextureRedefine]
width = 1920
height = 1080
formats = 0x01a
overwriteWidth = ($width/$gameWidth) * 1920
overwriteHeight = ($height/$gameHeight) * 1080
[TextureRedefine]
width = 1920
height = 1088
formats = 0x01a
overwriteWidth = ($width/$gameWidth) * 1920
overwriteHeight = ($height/$gameHeight) * 1088
#Gamepad Viewports---------------------------------
[TextureRedefine]
width = 864
height = 480
formats = 0x01a
overwriteWidth = ($width/$GPgameWidth) * 864
overwriteHeight = ($height/$GPgameHeight) * 480
[TextureRedefine]
width = 854
height = 480
formats = 0x01a
overwriteWidth = ($width/$GPgameWidth) * 854
overwriteHeight = ($height/$GPgameHeight) * 480
#VC Menu-------------------------------------------
#please add it here if you figure out how to scale the menu seperate, so it can look good at low res

View file

@ -1,145 +0,0 @@
[Definition]
titleIds = 500001012A100,500001012DF00,500001012DE00,500001012E000,500001012E100,500001012E300,500001012E200,500001012E400,500001012E700,500001012E600,500001012E800,500001012F400,500001012F300,500001012F500,500001012F700,500001012F600,500001012F800,5000010106D00,5000010106C00,5000010106E00,5000010107000,5000010106F00,5000010107100,5000010107500,5000010107200,5000010107600,5000010107800,5000010107700,5000010107900,5000010107C00,5000010107B00,5000010107D00,5000010107F00,5000010107E00,5000010108000,5000010108200,5000010108100,5000010108300,5000010108500,5000010108400,5000010108600,5000010108800,5000010108700,5000010108900,5000010108B00,5000010108A00,5000010108C00,5000010113F00,5000010113E00,5000010114000,5000010114200,5000010114100,5000010114300,5000010114500,5000010114400,5000010114600,5000010114800,5000010114700,5000010114900,5000010114A00,5000010119200,5000010119100,5000010119300,500001011A900,5000010119400,500001011AA00,500001011AE00,5000010119500,5000010119700,5000010119800,500001011AC00,500001011AB00,500001011AD00,5000010129800,5000010129700,5000010129900,5000010129A00,5000010129C00,5000010129B00,5000010129D00,5000010129F00,5000010129E00,500001012A000
name = "Resolution"
path = Virtual Console/NES/Graphics/Resolution
description = Changes the resolution of the game. Made by Zalnor.
version = 4
[Preset]
name = 1920x1080 (Default)
$width = 1920
$height = 1080
$gameWidth = 1920
$gameHeight = 1088
$GPgameWidth = 864
$GPgameHeight = 480
SNES Resolutions-----------------------------
[Preset]
name = ~~~Original NES Resolutions~~~
$width = 427
$height = 240
$gameWidth = 1920
$gameHeight = 1088
$GPgameWidth = 864
$GPgameHeight = 480
[Preset]
name = 256x240 (Original NES)
$width = 427
$height = 240
$gameWidth = 1920
$gameHeight = 1088
$GPgameWidth = 864
$GPgameHeight = 480
[Preset]
name = 512x480 2x (480p)
$width = 853
$height = 480
$gameWidth = 1920
$gameHeight = 1088
$GPgameWidth = 864
$GPgameHeight = 480
[Preset]
name = 768x720 3x (720p)
$width = 1280
$height = 720
$gameWidth = 1920
$gameHeight = 1088
$GPgameWidth = 864
$GPgameHeight = 480
[Preset]
name = 1024x960 4x
$width = 1707
$height = 960
$gameWidth = 1920
$gameHeight = 1088
$GPgameWidth = 864
$GPgameHeight = 480
[Preset]
name = 1280x1200 5x (1080p)
$width = 2133
$height = 1200
$gameWidth = 1920
$gameHeight = 1088
$GPgameWidth = 864
$GPgameHeight = 480
[Preset]
name = 1536x1440 6x (1440p)
$width = 2560
$height = 1440
$gameWidth = 1920
$gameHeight = 1088
$GPgameWidth = 864
$GPgameHeight = 480
[Preset]
name = 1792x1680 7x
$width = 2987
$height = 1680
$gameWidth = 1920
$gameHeight = 1088
$GPgameWidth = 864
$GPgameHeight = 480
[Preset]
name = 2048x1920 8x (1800p)
$width = 3413
$height = 1920
$gameWidth = 1920
$gameHeight = 1088
$GPgameWidth = 864
$GPgameHeight = 480
[Preset]
name = 2304x2106 9x
$width = 3840
$height = 2106
$gameWidth = 1920
$gameHeight = 1088
$GPgameWidth = 864
$GPgameHeight = 480
#TV Viewports-----------------------------------------
[TextureRedefine]
width = 1920
height = 1080
formats = 0x01a
overwriteWidth = ($width/$gameWidth) * 1920
overwriteHeight = ($height/$gameHeight) * 1080
[TextureRedefine]
width = 1920
height = 1088
formats = 0x01a
overwriteWidth = ($width/$gameWidth) * 1920
overwriteHeight = ($height/$gameHeight) * 1088
#Gamepad Viewports-------------------------------------
[TextureRedefine]
width = 864
height = 480
formats = 0x01a
overwriteWidth = ($width/$GPgameWidth) * 864
overwriteHeight = ($height/$GPgameHeight) * 480
[TextureRedefine]
width = 854
height = 480
formats = 0x01a
overwriteWidth = ($width/$GPgameWidth) * 854
overwriteHeight = ($height/$GPgameHeight) * 480
#VC Menu
#please add it here if you figure out how to scale the menu seperate, so it can look good at low res

View file

@ -1,145 +0,0 @@
[Definition]
titleIds = 500001012A800,500001012E900,500001012EC00,500001012EE00,500001012ED00,500001012EF00,5000010130200,5000010130400,5000010130300,5000010130500,5000010130700,5000010130600,5000010130800,5000010130A00,5000010130900,5000010130B00,5000010108F00,5000010108E00,5000010109000,5000010109200,5000010109100,5000010109300,5000010109500,5000010109400,5000010109600,5000010109800,5000010109700,5000010109900,5000010109D00,5000010109C00,5000010109E00,5000010109F00,500001010A100,500001010A000,500001010A200,500001010A400,500001010A600,500001010A500,500001010A700,500001010A900,500001010A800,500001010AA00,5000010114C00,5000010114B00,5000010114D00,5000010115000,5000010114F00,5000010115100,5000010115300,5000010115200,5000010115400,5000010115A00,5000010115B00,5000010119A00,5000010119900,5000010119B00,5000010119D00,5000010119C00,5000010119E00,500001011A000,5000010119F00,500001011A100,500001011A200,500001011A400,500001011A300,500001011A500,500001012A200,500001012A300,500001012A600,500001012A500,500001012AD00,500001012A700,500001014B300,0500001014B300,5000010151600,5000010153D00,5000010153E00,5000010153F00,5000010154000,5000010159100,5000010159000,5000010159200,5000010159300,5000010130D00,5000010130C00,5000010130E00,5000010133400,5000010133300,5000010133500,5000010134700,5000010134600,5000010136000,5000010134B00,5000010134A00,5000010134C00,5000010134D00,5000010135C00,5000010137300,5000010137400,5000010137500,5000010137600,5000010137700,5000010137A00,5000010138000,5000010137B00,5000010140C00,5000010140E00,5000010140D00,5000010140F00,5000010141200,5000010141100,5000010141300,5000010141400,5000010141500,5000010141700,5000010141600,5000010141800,5000010141A00,5000010141900,5000010141B00,5000010141D00,5000010141C00,5000010141E00,5000010141F00,5000010143700,5000010143C00,500001014B000
name = "Resolution"
path = Virtual Console/SNES/Graphics/Resolution
description = Changes the resolution of the game. Made by Zalnor.
version = 4
[Preset]
name = 1920x1080 (Default)
$width = 1920
$height = 1080
$gameWidth = 1920
$gameHeight = 1088
$GPgameWidth = 864
$GPgameHeight = 480
SNES Resolutions-----------------------------
[Preset]
name = ~~~Original SNES Resolutions~~~
$width = 796
$height = 448
$gameWidth = 1920
$gameHeight = 1088
$GPgameWidth = 864
$GPgameHeight = 480
[Preset]
name = 512x448 (Original SNES) (480p)
$width = 796
$height = 448
$gameWidth = 1920
$gameHeight = 1088
$GPgameWidth = 864
$GPgameHeight = 480
[Preset]
name = 1024x896 2x (720p)
$width = 1593
$height = 896
$gameWidth = 1920
$gameHeight = 1088
$GPgameWidth = 864
$GPgameHeight = 480
[Preset]
name = 1536x1344 3x (1080p)
$width = 2389
$height = 1344
$gameWidth = 1920
$gameHeight = 1088
$GPgameWidth = 864
$GPgameHeight = 480
[Preset]
name = 2048x1792 4x (1800p)
$width = 3186
$height = 1792
$gameWidth = 1920
$gameHeight = 1088
$GPgameWidth = 864
$GPgameHeight = 480
[Preset]
name = 2560x2240 5x (4K)
$width = 3982
$height = 2240
$gameWidth = 1920
$gameHeight = 1088
$GPgameWidth = 864
$GPgameHeight = 480
[Preset]
name = 3072x2688 6x
$width = 4779
$height = 2688
$gameWidth = 1920
$gameHeight = 1088
$GPgameWidth = 864
$GPgameHeight = 480
[Preset]
name = 3584x3136 7x (5k)
$width = 5575
$height = 3136
$gameWidth = 1920
$gameHeight = 1088
$GPgameWidth = 864
$GPgameHeight = 480
[Preset]
name = 4096x3584 8x (6k)
$width = 6371
$height = 3584
$gameWidth = 1920
$gameHeight = 1088
$GPgameWidth = 864
$GPgameHeight = 480
[Preset]
name = 4608x4032 9x (7k)
$width = 7168
$height = 4032
$gameWidth = 1920
$gameHeight = 1088
$GPgameWidth = 864
$GPgameHeight = 480
#TV Viewports-----------------------------------------
[TextureRedefine]
width = 1920
height = 1080
formats = 0x01a
overwriteWidth = ($width/$gameWidth) * 1920
overwriteHeight = ($height/$gameHeight) * 1080
[TextureRedefine]
width = 1920
height = 1088
formats = 0x01a
overwriteWidth = ($width/$gameWidth) * 1920
overwriteHeight = ($height/$gameHeight) * 1088
#Gamepad Viewports-------------------------------------
[TextureRedefine]
width = 864
height = 480
formats = 0x01a
overwriteWidth = ($width/$GPgameWidth) * 864
overwriteHeight = ($height/$GPgameHeight) * 480
[TextureRedefine]
width = 854
height = 480
formats = 0x01a
overwriteWidth = ($width/$GPgameWidth) * 854
overwriteHeight = ($height/$GPgameHeight) * 480
#VC Menu
#please add it here if you figure out how to scale the menu seperate, so it can look good at low res

View file

@ -0,0 +1,609 @@
// shader 340382e6fbbb3951
#include <metal_stdlib>
using namespace metal;
#define SET_POSITION(_v) out.position = _v; out.position.z = (out.position.z + out.position.w) / 2.0
// start of shader inputs/outputs, predetermined by Cemu. Do not touch
struct SupportBuffer {
int4 remapped[11];
float2 fragCoordScale;
};
#define GET_FRAGCOORD() float4(in.position.xy * supportBuffer.fragCoordScale.xy, in.position.z, 1.0 / in.position.w)
struct FragmentIn {
float4 position [[position]];
float4 passParameterSem0 [[user(locn0)]] [[center_no_perspective]];
float4 passParameterSem1 [[user(locn1)]] [[center_no_perspective]];
};
struct FragmentOut {
float4 passPixelColor0 [[color(0)]];
};
// end of shader inputs/outputs
template<typename TextureT, typename CoordT>
float sampleCompareEmulate(TextureT tex, sampler samplr, CoordT coord, float compareValue) {
return compareValue < tex.sample(samplr, coord).x ? 1.0 : 0.0;
}
template<typename TextureT, typename CoordT>
float2 textureCalculateLod(TextureT tex, sampler samplr, CoordT coord) {
float lod = tex.calculate_unclamped_lod(samplr, coord);
return float2(floor(lod), fract(lod));
}
int clampFI32(int v)
{
if( v == 0x7FFFFFFF )
return as_type<int>(1.0);
else if( v == 0xFFFFFFFF )
return as_type<int>(0.0);
return as_type<int>(clamp(as_type<float>(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; }
fragment FragmentOut main0(FragmentIn in [[stage_in]], float2 pointCoord [[point_coord]], bool frontFacing [[front_facing]], constant SupportBuffer& supportBuffer [[buffer(0)]], texture2d_array<float> tex0 [[texture(0)]], sampler samplr0 [[sampler(0)]], texture2d<float> tex1 [[texture(1)]], sampler samplr1 [[sampler(1)]], texture2d<float> tex2 [[texture(2)]], sampler samplr2 [[sampler(2)]]) {
FragmentOut out;
int4 R0i = int4(0);
int4 R1i = int4(0);
int4 R2i = int4(0);
int4 R3i = int4(0);
int4 R4i = int4(0);
int4 R5i = int4(0);
int4 R6i = int4(0);
int4 R7i = int4(0);
int4 R8i = int4(0);
int4 R9i = int4(0);
int4 R122i = int4(0);
int4 R123i = int4(0);
int4 R124i = int4(0);
int4 R125i = int4(0);
int4 R126i = int4(0);
int4 R127i = int4(0);
int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i;
int PV0ix = 0, PV0iy = 0, PV0iz = 0, PV0iw = 0, PV1ix = 0, PV1iy = 0, PV1iz = 0, PV1iw = 0;
int PS0i = 0, PS1i = 0;
int4 tempi = int4(0);
float tempResultf;
int tempResulti;
int4 ARi = int4(0);
bool predResult = true;
bool activeMaskStack[2];
bool activeMaskStackC[3];
activeMaskStack[0] = false;
activeMaskStackC[0] = false;
activeMaskStackC[1] = false;
activeMaskStack[0] = true;
activeMaskStackC[0] = true;
activeMaskStackC[1] = true;
R0i = as_type<int4>(in.passParameterSem0);
R1i = as_type<int4>(in.passParameterSem1);
if( activeMaskStackC[1] == true ) {
R7i.xyz = as_type<int3>(tex2.sample(samplr2, float2(as_type<float>(R0i.x),as_type<float>(R0i.y))).xyz);
R1i.w = as_type<int>(tex1.sample(samplr1, float2(as_type<float>(R0i.x),as_type<float>(R0i.y))).x);
}
if( activeMaskStackC[1] == true ) {
// 0
R127i.x = as_type<int>(as_type<float>(R7i.x) * 2.0 + -(1.0));
R127i.y = as_type<int>(as_type<float>(R7i.y) * 2.0 + -(1.0));
PV0iz = 0;
R127i.w = as_type<int>(mul_nonIEEE(-(as_type<float>(R1i.w)),as_type<float>(supportBuffer.remapped[0].x)) + -(as_type<float>(supportBuffer.remapped[1].z)));
R126i.w = int(0x3f800000);
// 1
tempi.x = as_type<int>(dot(float4(as_type<float>(R127i.x),as_type<float>(R127i.y),as_type<float>(PV0iz),as_type<float>(0x80000000)),float4(as_type<float>(R127i.x),as_type<float>(R127i.y),as_type<float>(R127i.y),0.0)));
PV1ix = tempi.x;
PV1iy = tempi.x;
PV1iz = tempi.x;
PV1iw = tempi.x;
R2i.x = as_type<int>(mul_nonIEEE(as_type<float>(R1i.x), as_type<float>(R127i.w)));
// 2
R125i.x = as_type<int>(mul_nonIEEE(as_type<float>(R1i.y), as_type<float>(R127i.w)));
PV0iy = as_type<int>(-(as_type<float>(PV1ix)) + 1.0);
R126i.z = R127i.w;
R3i.w = as_type<int>(max(as_type<float>(R127i.w), -(as_type<float>(R127i.w))));
R125i.w = int(0x3f800000);
// 3
tempi.x = as_type<int>(dot(float4(as_type<float>(R2i.x),as_type<float>(R125i.x),as_type<float>(R126i.z),as_type<float>(R126i.w)),float4(as_type<float>(supportBuffer.remapped[2].x),as_type<float>(supportBuffer.remapped[2].y),as_type<float>(supportBuffer.remapped[2].z),as_type<float>(supportBuffer.remapped[2].w))));
PV1ix = tempi.x;
PV1iy = tempi.x;
PV1iz = tempi.x;
PV1iw = tempi.x;
PS1i = as_type<int>(sqrt(as_type<float>(PV0iy)));
// 4
R126i.x = 0;
R5i.y = 0;
R127i.z = as_type<int>(-(as_type<float>(PS1i)));
R127i.w = as_type<int>(mul_nonIEEE(as_type<float>(R126i.w), as_type<float>(supportBuffer.remapped[3].w)));
R124i.w = as_type<int>(1.0 / as_type<float>(PV1ix));
// 5
tempi.x = as_type<int>(dot(float4(as_type<float>(R127i.x),as_type<float>(R127i.y),as_type<float>(R127i.z),as_type<float>(0x80000000)),float4(as_type<float>(R127i.x),as_type<float>(R127i.y),as_type<float>(R127i.z),0.0)));
PV1ix = tempi.x;
PV1iy = tempi.x;
PV1iz = tempi.x;
PV1iw = tempi.x;
R6i.z = 0;
// 6
tempi.x = as_type<int>(dot(float4(as_type<float>(R2i.x),as_type<float>(R125i.x),as_type<float>(R126i.z),as_type<float>(R127i.w)),float4(as_type<float>(supportBuffer.remapped[3].x),as_type<float>(supportBuffer.remapped[3].y),as_type<float>(supportBuffer.remapped[3].z),1.0)));
PV0ix = tempi.x;
PV0iy = tempi.x;
PV0iz = tempi.x;
PV0iw = tempi.x;
tempResultf = 1.0 / sqrt(as_type<float>(PV1ix));
PS0i = as_type<int>(tempResultf);
// 7
R1i.x = as_type<int>(mul_nonIEEE(as_type<float>(R127i.x), as_type<float>(PS0i)));
R1i.y = as_type<int>(mul_nonIEEE(as_type<float>(R127i.y), as_type<float>(PS0i)));
R3i.z = as_type<int>(mul_nonIEEE(as_type<float>(R127i.z), as_type<float>(PS0i)));
R127i.w = as_type<int>(mul_nonIEEE(as_type<float>(R126i.w), as_type<float>(supportBuffer.remapped[4].w)));
R6i.x = as_type<int>(as_type<float>(PV0ix) * as_type<float>(R124i.w));
// 8
R124i.x = as_type<int>(mul_nonIEEE(as_type<float>(R1i.x),as_type<float>(R3i.w)) + as_type<float>(R2i.x));
R127i.y = as_type<int>(mul_nonIEEE(as_type<float>(R1i.y),as_type<float>(R3i.w)) + as_type<float>(R125i.x));
R127i.z = as_type<int>(mul_nonIEEE(as_type<float>(R3i.z),as_type<float>(R3i.w)) + as_type<float>(R126i.z));
PV0iw = as_type<int>(max(as_type<float>(R1i.y), -(as_type<float>(R1i.y))));
tempResultf = max(0.0, as_type<float>(supportBuffer.remapped[5].w));
tempResultf = log2(tempResultf);
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
R4i.w = as_type<int>(tempResultf);
// 9
tempi.x = as_type<int>(dot(float4(as_type<float>(R124i.x),as_type<float>(R127i.y),as_type<float>(R127i.z),as_type<float>(R125i.w)),float4(as_type<float>(supportBuffer.remapped[2].x),as_type<float>(supportBuffer.remapped[2].y),as_type<float>(supportBuffer.remapped[2].z),as_type<float>(supportBuffer.remapped[2].w))));
PV1ix = tempi.x;
PV1iy = tempi.x;
PV1iz = tempi.x;
PV1iw = tempi.x;
R6i.y = as_type<int>(-(as_type<float>(PV0iw)) + 1.0);
// 10
tempi.x = as_type<int>(dot(float4(as_type<float>(R2i.x),as_type<float>(R125i.x),as_type<float>(R126i.z),as_type<float>(R127i.w)),float4(as_type<float>(supportBuffer.remapped[4].x),as_type<float>(supportBuffer.remapped[4].y),as_type<float>(supportBuffer.remapped[4].z),1.0)));
PV0ix = tempi.x;
PV0iy = tempi.x;
PV0iz = tempi.x;
PV0iw = tempi.x;
R1i.x = as_type<int>(1.0 / as_type<float>(PV1ix));
// 11
tempi.x = as_type<int>(dot(float4(as_type<float>(R124i.x),as_type<float>(R127i.y),as_type<float>(R127i.z),as_type<float>(R125i.w)),float4(as_type<float>(supportBuffer.remapped[3].x),as_type<float>(supportBuffer.remapped[3].y),as_type<float>(supportBuffer.remapped[3].z),as_type<float>(supportBuffer.remapped[3].w))));
PV1ix = tempi.x;
PV1iy = tempi.x;
PV1iz = tempi.x;
PV1iw = tempi.x;
R7i.y = as_type<int>(as_type<float>(PV0ix) * as_type<float>(R124i.w));
// 12
tempi.x = as_type<int>(dot(float4(as_type<float>(R124i.x),as_type<float>(R127i.y),as_type<float>(R127i.z),as_type<float>(R125i.w)),float4(as_type<float>(supportBuffer.remapped[4].x),as_type<float>(supportBuffer.remapped[4].y),as_type<float>(supportBuffer.remapped[4].z),as_type<float>(supportBuffer.remapped[4].w))));
PV0ix = tempi.x;
PV0iy = tempi.x;
PV0iz = tempi.x;
PV0iw = tempi.x;
PS0i = as_type<int>(as_type<float>(PV1ix) * as_type<float>(R1i.x));
// 13
R127i.x = as_type<int>(-(as_type<float>(R6i.x)) + as_type<float>(PS0i));
R126i.y = as_type<int>(-(as_type<float>(R6i.x)) + as_type<float>(PS0i));
PV1iz = as_type<int>(as_type<float>(PV0ix) * as_type<float>(R1i.x));
PV1iw = as_type<int>(mul_nonIEEE(as_type<float>(R125i.w), as_type<float>(supportBuffer.remapped[6].w)));
PS1i = as_type<int>(mul_nonIEEE(as_type<float>(R126i.w), as_type<float>(supportBuffer.remapped[6].w)));
// 14
R3i.x = as_type<int>(-(as_type<float>(R7i.y)) + as_type<float>(PV1iz));
PV0iy = as_type<int>(-(as_type<float>(R7i.y)) + as_type<float>(PV1iz));
R127i.z = as_type<int>(mul_nonIEEE(as_type<float>(R127i.z),as_type<float>(supportBuffer.remapped[6].z)) + as_type<float>(PV1iw));
R122i.x = as_type<int>(mul_nonIEEE(as_type<float>(R126i.z),as_type<float>(supportBuffer.remapped[6].z)) + as_type<float>(PS1i));
// 15
tempi.x = as_type<int>(dot(float4(as_type<float>(R127i.x),as_type<float>(PV0iy),as_type<float>(R126i.x),as_type<float>(0x80000000)),float4(as_type<float>(R127i.x),as_type<float>(PV0iy),as_type<float>(R126i.x),0.0)));
PV1ix = tempi.x;
PV1iy = tempi.x;
PV1iz = tempi.x;
PV1iw = tempi.x;
R127i.x = as_type<int>(mul_nonIEEE(as_type<float>(R125i.x),as_type<float>(supportBuffer.remapped[6].y)) + as_type<float>(R122i.x));
// 16
tempi.x = as_type<int>(dot(float4(as_type<float>(R124i.x),as_type<float>(R127i.y),as_type<float>(R127i.z),0.0),float4(as_type<float>(supportBuffer.remapped[6].x),as_type<float>(supportBuffer.remapped[6].y),1.0,0.0)));
PV0ix = tempi.x;
PV0iy = tempi.x;
PV0iz = tempi.x;
PV0iw = tempi.x;
PS0i = as_type<int>(sqrt(as_type<float>(PV1ix)));
// 17
R123i.z = as_type<int>(mul_nonIEEE(as_type<float>(R2i.x),as_type<float>(supportBuffer.remapped[6].x)) + as_type<float>(R127i.x));
R126i.w = as_type<int>(as_type<float>(PV0ix) * as_type<float>(R1i.x));
PS1i = as_type<int>(1.0 / as_type<float>(PS0i));
// 18
R4i.z = as_type<int>(as_type<float>(R123i.z) * as_type<float>(R124i.w));
PV0iw = as_type<int>(as_type<float>(PS1i) * as_type<float>(0x3db4b4b5));
// 19
PV1ix = as_type<int>(mul_nonIEEE(as_type<float>(PV0iw), as_type<float>(supportBuffer.remapped[5].y)));
PV1iw = as_type<int>(-(as_type<float>(R4i.z)) + as_type<float>(R126i.w));
// 20
R7i.x = as_type<int>(mul_nonIEEE(as_type<float>(R126i.y), as_type<float>(PV1ix)));
R8i.y = as_type<int>(mul_nonIEEE(as_type<float>(R3i.x), as_type<float>(PV1ix)));
R5i.z = as_type<int>(mul_nonIEEE(as_type<float>(PV1iw), as_type<float>(PV1ix)));
}
while( activeMaskStackC[1] == true )
{
if( activeMaskStackC[1] == true ) {
activeMaskStack[1] = activeMaskStack[0];
activeMaskStackC[2] = activeMaskStackC[1];
// 0
R1i.y = (($sampleCount > as_type<float>(R6i.z))?-1:0);
// 1
predResult = (R1i.y == 0);
activeMaskStack[1] = predResult;
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
}
else {
activeMaskStack[1] = false;
activeMaskStackC[2] = false;
}
if( activeMaskStackC[2] == true ) {
// 0
R1i.y = R5i.y;
}
if( activeMaskStackC[2] == true ) {
break;
}
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
if( activeMaskStackC[1] == true ) {
activeMaskStack[1] = activeMaskStack[0];
activeMaskStackC[2] = activeMaskStackC[1];
// 0
R123i.w = as_type<int>(as_type<float>(R6i.z) * 4.0 + 0.0);
// 1
R8i.x = as_type<int>(as_type<float>(R123i.w) + 1.0);
R9i.y = as_type<int>(as_type<float>(R123i.w) + 2.0);
R8i.z = as_type<int>(as_type<float>(R123i.w) + 3.0);
R5i.w = as_type<int>(as_type<float>(R123i.w) + 4.0);
// 2
R1i.x = as_type<int>(mul_nonIEEE(as_type<float>(R7i.x),as_type<float>(R8i.x)) + as_type<float>(R6i.x));
R1i.y = as_type<int>(mul_nonIEEE(as_type<float>(R8i.y),as_type<float>(R8i.x)) + as_type<float>(R7i.y));
R1i.z = as_type<int>(mul_nonIEEE(as_type<float>(R7i.x),as_type<float>(R9i.y)) + as_type<float>(R6i.x));
R1i.w = as_type<int>(mul_nonIEEE(as_type<float>(R8i.y),as_type<float>(R9i.y)) + as_type<float>(R7i.y));
R2i.x = as_type<int>(mul_nonIEEE(as_type<float>(R7i.x),as_type<float>(R8i.z)) + as_type<float>(R6i.x));
// 3
PV1ix = as_type<int>(max(as_type<float>(R1i.y), -(1.0)));
R2i.y = as_type<int>(mul_nonIEEE(as_type<float>(R8i.y),as_type<float>(R8i.z)) + as_type<float>(R7i.y));
PV1iz = as_type<int>(max(as_type<float>(R1i.x), -(1.0)));
PV1iw = as_type<int>(max(as_type<float>(R1i.z), -(1.0)));
R127i.w = as_type<int>(max(as_type<float>(R1i.w), -(1.0)));
// 4
PV0ix = as_type<int>(min(as_type<float>(PV1iz), 1.0));
PV0iy = as_type<int>(min(as_type<float>(PV1ix), 1.0));
R2i.z = as_type<int>(mul_nonIEEE(as_type<float>(R7i.x),as_type<float>(R5i.w)) + as_type<float>(R6i.x));
R2i.w = as_type<int>(mul_nonIEEE(as_type<float>(R8i.y),as_type<float>(R5i.w)) + as_type<float>(R7i.y));
R127i.y = as_type<int>(min(as_type<float>(PV1iw), 1.0));
// 5
R127i.x = as_type<int>(max(as_type<float>(R2i.y), -(1.0)));
R126i.y = as_type<int>(as_type<float>(R1i.x) + -(as_type<float>(PV0ix)));
PV1iz = as_type<int>(max(as_type<float>(R2i.x), -(1.0)));
PV1iw = as_type<int>(min(as_type<float>(R127i.w), 1.0));
R125i.y = as_type<int>(as_type<float>(R1i.y) + -(as_type<float>(PV0iy)));
// 6
PV0ix = as_type<int>(max(as_type<float>(R2i.w), -(1.0)));
PV0iy = as_type<int>(max(as_type<float>(R2i.z), -(1.0)));
R127i.z = as_type<int>(as_type<float>(R1i.z) + -(as_type<float>(R127i.y)));
R127i.w = as_type<int>(as_type<float>(R1i.w) + -(as_type<float>(PV1iw)));
PS0i = as_type<int>(min(as_type<float>(PV1iz), 1.0));
// 7
PV1ix = as_type<int>(min(as_type<float>(R127i.x), 1.0));
R127i.y = as_type<int>(as_type<float>(R2i.x) + -(as_type<float>(PS0i)));
PV1iz = as_type<int>(min(as_type<float>(PV0iy), 1.0));
PV1iw = as_type<int>(min(as_type<float>(PV0ix), 1.0));
R3i.x = as_type<int>(mul_nonIEEE(as_type<float>(R5i.z),as_type<float>(R8i.x)) + as_type<float>(R4i.z));
// 8
PV0ix = as_type<int>(0.0);
R124i.y = as_type<int>(as_type<float>(R2i.y) + -(as_type<float>(PV1ix)));
R126i.z = as_type<int>(as_type<float>(R2i.z) + -(as_type<float>(PV1iz)));
R126i.w = as_type<int>(as_type<float>(R2i.w) + -(as_type<float>(PV1iw)));
R4i.y = as_type<int>(mul_nonIEEE(as_type<float>(R5i.z),as_type<float>(R9i.y)) + as_type<float>(R4i.z));
// 9
tempi.x = as_type<int>(dot(float4(as_type<float>(R126i.y),as_type<float>(R125i.y),as_type<float>(PV0ix),as_type<float>(0x80000000)),float4(1.0,1.0,1.0,0.0)));
PV1ix = tempi.x;
PV1iy = tempi.x;
PV1iz = tempi.x;
PV1iw = tempi.x;
R0i.z = as_type<int>(mul_nonIEEE(as_type<float>(R5i.z),as_type<float>(R8i.z)) + as_type<float>(R4i.z));
// 10
tempi.x = as_type<int>(dot(float4(as_type<float>(R127i.z),as_type<float>(R127i.w),as_type<float>(R127i.w),as_type<float>(0x80000000)),float4(1.0,1.0,0.0,0.0)));
PV0ix = tempi.x;
PV0iy = tempi.x;
PV0iz = tempi.x;
PV0iw = tempi.x;
R127i.z = ((as_type<float>(PV1ix) != 0.0)?-1:0);
// 11
tempi.x = as_type<int>(dot(float4(as_type<float>(R127i.y),as_type<float>(R124i.y),as_type<float>(R124i.y),as_type<float>(0x80000000)),float4(1.0,1.0,0.0,0.0)));
PV1ix = tempi.x;
R127i.y = tempi.x;
PV1iz = tempi.x;
PV1iw = tempi.x;
PS1i = ((as_type<float>(PV0ix) != 0.0)?-1:0);
// 12
tempi.x = as_type<int>(dot(float4(as_type<float>(R126i.z),as_type<float>(R126i.w),as_type<float>(R126i.w),as_type<float>(0x80000000)),float4(1.0,1.0,0.0,0.0)));
PV0ix = tempi.x;
PV0iy = tempi.x;
PV0iz = tempi.x;
PV0iw = tempi.x;
R127i.z = R127i.z | PS1i;
// 13
PV1iy = ((as_type<float>(R127i.y) != 0.0)?-1:0);
R126i.w = ((as_type<float>(PV0ix) != 0.0)?-1:0);
R0i.w = as_type<int>(mul_nonIEEE(as_type<float>(R5i.z),as_type<float>(R5i.w)) + as_type<float>(R4i.z));
// 14
PV0ix = PV1iy | R127i.z;
// 15
R3i.y = R126i.w | PV0ix;
// 16
predResult = (R3i.y != 0);
activeMaskStack[1] = predResult;
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
}
else {
activeMaskStack[1] = false;
activeMaskStackC[2] = false;
}
if( activeMaskStackC[2] == true ) {
// 0
R1i.y = R5i.y;
}
if( activeMaskStackC[2] == true ) {
break;
}
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
if( activeMaskStackC[1] == true ) {
// 0
PV0ix = R1i.z;
PV0ix = as_type<int>(as_type<float>(PV0ix) / 2.0);
PV0iy = as_type<int>(-(as_type<float>(R1i.w)));
PV0iy = as_type<int>(as_type<float>(PV0iy) / 2.0);
PV0iz = R1i.x;
PV0iz = as_type<int>(as_type<float>(PV0iz) / 2.0);
PV0iw = as_type<int>(-(as_type<float>(R1i.y)));
PV0iw = as_type<int>(as_type<float>(PV0iw) / 2.0);
R127i.y = R2i.x;
R127i.y = as_type<int>(as_type<float>(R127i.y) / 2.0);
// 1
R1i.x = as_type<int>(as_type<float>(PV0iz) + 0.5);
R1i.y = as_type<int>(as_type<float>(PV0iw) + 0.5);
R1i.z = as_type<int>(as_type<float>(PV0ix) + 0.5);
R1i.w = as_type<int>(as_type<float>(PV0iy) + 0.5);
PS1i = as_type<int>(-(as_type<float>(R2i.y)));
PS1i = as_type<int>(as_type<float>(PS1i) / 2.0);
// 2
R2i.x = as_type<int>(as_type<float>(R127i.y) + 0.5);
R2i.y = as_type<int>(as_type<float>(PS1i) + 0.5);
PV0iz = as_type<int>(-(as_type<float>(R2i.w)));
PV0iz = as_type<int>(as_type<float>(PV0iz) / 2.0);
PV0iw = R2i.z;
PV0iw = as_type<int>(as_type<float>(PV0iw) / 2.0);
R4i.x = 0;
// 3
backupReg0i = R3i.x;
R3i.x = as_type<int>(as_type<float>(PV0iw) + 0.5);
R3i.y = as_type<int>(as_type<float>(PV0iz) + 0.5);
R2i.z = backupReg0i;
R2i.w = int(0x3f800000);
R5i.x = 0;
}
if( activeMaskStackC[1] == true ) {
R1i.x = as_type<int>(tex1.sample(samplr1, float2(as_type<float>(R1i.x),as_type<float>(R1i.y))).x);
R1i.y = as_type<int>(tex1.sample(samplr1, float2(as_type<float>(R1i.z),as_type<float>(R1i.w))).x);
R1i.z = as_type<int>(tex1.sample(samplr1, float2(as_type<float>(R2i.x),as_type<float>(R2i.y))).x);
R1i.w = as_type<int>(tex1.sample(samplr1, float2(as_type<float>(R3i.x),as_type<float>(R3i.y))).x);
}
if( activeMaskStackC[1] == true ) {
activeMaskStack[1] = activeMaskStack[0];
activeMaskStackC[2] = activeMaskStackC[1];
// 0
R126i.x = 0;
R125i.y = R0i.z;
R127i.z = R4i.y;
R127i.w = int(0x3f800000);
R125i.w = int(0x3f800000);
// 1
tempi.x = as_type<int>(dot(float4(as_type<float>(R4i.x),as_type<float>(R4i.x),as_type<float>(R2i.z),as_type<float>(R2i.w)),float4(as_type<float>(supportBuffer.remapped[7].x),as_type<float>(supportBuffer.remapped[7].y),as_type<float>(supportBuffer.remapped[7].z),as_type<float>(supportBuffer.remapped[7].w))));
PV1ix = tempi.x;
R127i.y = tempi.x;
PV1iz = tempi.x;
PV1iw = tempi.x;
R125i.x = 0;
// 2
tempi.x = as_type<int>(dot(float4(as_type<float>(R5i.x),as_type<float>(R5i.x),as_type<float>(R127i.z),as_type<float>(R127i.w)),float4(as_type<float>(supportBuffer.remapped[7].x),as_type<float>(supportBuffer.remapped[7].y),as_type<float>(supportBuffer.remapped[7].z),as_type<float>(supportBuffer.remapped[7].w))));
PV0ix = tempi.x;
PV0iy = tempi.x;
PV0iz = tempi.x;
R126i.w = tempi.x;
R126i.z = R0i.w;
// 3
backupReg0i = R127i.y;
PV1ix = as_type<int>(mul_nonIEEE(as_type<float>(R2i.w), as_type<float>(supportBuffer.remapped[8].w)));
R127i.y = as_type<int>(mul_nonIEEE(as_type<float>(R127i.w), as_type<float>(supportBuffer.remapped[8].w)));
R127i.w = int(0x3f800000);
R127i.x = as_type<int>(1.0 / as_type<float>(backupReg0i));
// 4
tempi.x = as_type<int>(dot(float4(as_type<float>(R4i.x),as_type<float>(R4i.x),as_type<float>(R2i.z),as_type<float>(PV1ix)),float4(as_type<float>(supportBuffer.remapped[8].x),as_type<float>(supportBuffer.remapped[8].y),as_type<float>(supportBuffer.remapped[8].z),1.0)));
PV0ix = tempi.x;
PV0iy = tempi.x;
PV0iz = tempi.x;
PV0iw = tempi.x;
R126i.y = as_type<int>(1.0 / as_type<float>(R126i.w));
// 5
tempi.x = as_type<int>(dot(float4(as_type<float>(R5i.x),as_type<float>(R5i.x),as_type<float>(R127i.z),as_type<float>(R127i.y)),float4(as_type<float>(supportBuffer.remapped[8].x),as_type<float>(supportBuffer.remapped[8].y),as_type<float>(supportBuffer.remapped[8].z),1.0)));
PV1ix = tempi.x;
PV1iy = tempi.x;
PV1iz = tempi.x;
PV1iw = tempi.x;
R127i.z = as_type<int>(as_type<float>(PV0ix) * as_type<float>(R127i.x));
// 6
tempi.x = as_type<int>(dot(float4(as_type<float>(R126i.x),as_type<float>(R126i.x),as_type<float>(R125i.y),as_type<float>(R125i.w)),float4(as_type<float>(supportBuffer.remapped[7].x),as_type<float>(supportBuffer.remapped[7].y),as_type<float>(supportBuffer.remapped[7].z),as_type<float>(supportBuffer.remapped[7].w))));
PV0ix = tempi.x;
PV0iy = tempi.x;
PV0iz = tempi.x;
PV0iw = tempi.x;
R127i.x = as_type<int>(as_type<float>(PV1ix) * as_type<float>(R126i.y));
// 7
tempi.x = as_type<int>(dot(float4(as_type<float>(R126i.x),as_type<float>(R126i.x),as_type<float>(R125i.y),as_type<float>(R125i.w)),float4(as_type<float>(supportBuffer.remapped[8].x),as_type<float>(supportBuffer.remapped[8].y),as_type<float>(supportBuffer.remapped[8].z),as_type<float>(supportBuffer.remapped[8].w))));
PV1ix = tempi.x;
PV1iy = tempi.x;
PV1iz = tempi.x;
PV1iw = tempi.x;
PS1i = as_type<int>(1.0 / as_type<float>(PV0ix));
// 8
tempi.x = as_type<int>(dot(float4(as_type<float>(R125i.x),as_type<float>(R125i.x),as_type<float>(R126i.z),as_type<float>(R127i.w)),float4(as_type<float>(supportBuffer.remapped[7].x),as_type<float>(supportBuffer.remapped[7].y),as_type<float>(supportBuffer.remapped[7].z),as_type<float>(supportBuffer.remapped[7].w))));
PV0ix = tempi.x;
PV0iy = tempi.x;
PV0iz = tempi.x;
PV0iw = tempi.x;
R125i.y = as_type<int>(as_type<float>(PV1ix) * as_type<float>(PS1i));
// 9
tempi.x = as_type<int>(dot(float4(as_type<float>(R125i.x),as_type<float>(R125i.x),as_type<float>(R126i.z),as_type<float>(R127i.w)),float4(as_type<float>(supportBuffer.remapped[8].x),as_type<float>(supportBuffer.remapped[8].y),as_type<float>(supportBuffer.remapped[8].z),as_type<float>(supportBuffer.remapped[8].w))));
PV1ix = tempi.x;
PV1iy = tempi.x;
PV1iz = tempi.x;
PV1iw = tempi.x;
PS1i = as_type<int>(1.0 / as_type<float>(PV0ix));
// 10
R123i.x = as_type<int>(mul_nonIEEE(as_type<float>(supportBuffer.remapped[0].y),-(as_type<float>(R127i.x))) + -(as_type<float>(supportBuffer.remapped[0].z)));
R123i.y = as_type<int>(mul_nonIEEE(as_type<float>(supportBuffer.remapped[0].y),-(as_type<float>(R127i.z))) + -(as_type<float>(supportBuffer.remapped[0].z)));
R123i.z = as_type<int>(mul_nonIEEE(as_type<float>(supportBuffer.remapped[0].y),-(as_type<float>(R125i.y))) + -(as_type<float>(supportBuffer.remapped[0].z)));
PV0iw = as_type<int>(as_type<float>(PV1ix) * as_type<float>(PS1i));
// 11
R1i.x = as_type<int>(as_type<float>(R1i.x) + -(as_type<float>(R123i.y)));
R1i.y = as_type<int>(as_type<float>(R1i.y) + -(as_type<float>(R123i.x)));
R0i.z = as_type<int>(as_type<float>(R1i.z) + -(as_type<float>(R123i.z)));
R123i.w = as_type<int>(mul_nonIEEE(as_type<float>(supportBuffer.remapped[0].y),-(as_type<float>(PV0iw))) + -(as_type<float>(supportBuffer.remapped[0].z)));
// 12
R2i.x = ((0.0 > as_type<float>(R1i.x))?-1:0);
R1i.z = ((0.0 > as_type<float>(R0i.z))?-1:0);
R0i.w = ((0.0 > as_type<float>(R1i.y))?-1:0);
R1i.w = as_type<int>(as_type<float>(R1i.w) + -(as_type<float>(R123i.w)));
// 13
PV1iy = R2i.x | R0i.w;
R2i.y = ((0.0 > as_type<float>(R1i.w))?-1:0);
// 14
PV0ix = R1i.z | PV1iy;
// 15
R2i.z = R2i.y | PV0ix;
// 16
predResult = (R2i.z != 0);
activeMaskStack[1] = predResult;
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
}
else {
activeMaskStack[1] = false;
activeMaskStackC[2] = false;
}
if( activeMaskStackC[2] == true ) {
// 0
int offset = as_type<int>($sampleCount * 4.0);
R127i.x = ((R0i.w == 0)?(offset):(R9i.y));
R127i.y = ((R2i.x == 0)?(offset):(R8i.x));
R127i.z = ((R2i.y == 0)?(offset):(R5i.w));
R127i.w = ((R1i.z == 0)?(offset):(R8i.z));
PS0i = as_type<int>(1.0 / as_type<float>(supportBuffer.remapped[9].x));
// 1
R126i.x = as_type<int>(as_type<float>(R3i.w) * as_type<float>(PS0i));
R126i.x = clampFI32(R126i.x);
PV1iy = as_type<int>(min(as_type<float>(R127i.y), as_type<float>(R127i.x)));
R126i.z = as_type<int>(max(as_type<float>(R1i.x), -(as_type<float>(R1i.x))));
R126i.w = as_type<int>(max(as_type<float>(R1i.y), -(as_type<float>(R1i.y))));
R125i.z = as_type<int>(max(as_type<float>(R0i.z), -(as_type<float>(R0i.z))));
// 2
PV0ix = as_type<int>(min(as_type<float>(R127i.w), as_type<float>(PV1iy)));
R126i.y = as_type<int>(max(as_type<float>(R1i.w), -(as_type<float>(R1i.w))));
// 3
R5i.y = as_type<int>(min(as_type<float>(R127i.z), as_type<float>(PV0ix)));
// 4
backupReg0i = R127i.x;
backupReg1i = R127i.z;
R127i.x = ((as_type<float>(R127i.y) == as_type<float>(R5i.y))?-1:0);
R127i.y = ((as_type<float>(R127i.w) == as_type<float>(R5i.y))?-1:0);
R127i.z = ((as_type<float>(backupReg0i) == as_type<float>(R5i.y))?-1:0);
PV0iw = as_type<int>(as_type<float>(R5i.y) / ($sampleCount * 4.0)); // TODO: should $sampleCount be used here as well?
R125i.y = ((as_type<float>(backupReg1i) == as_type<float>(R5i.y))?-1:0);
// 5
PV1iy = as_type<int>(mul_nonIEEE(as_type<float>(PV0iw), as_type<float>(R6i.y)));
// 6
PV0iw = as_type<int>(mul_nonIEEE(as_type<float>(R126i.x), as_type<float>(PV1iy)));
PV0iw = clampFI32(PV0iw);
// 7
PV1iz = as_type<int>(mul_nonIEEE(as_type<float>(supportBuffer.remapped[5].z), as_type<float>(PV0iw)));
// 8
PV0ix = as_type<int>(mul_nonIEEE(as_type<float>(PV1iz), as_type<float>(R4i.w)));
// 9
PS1i = as_type<int>(exp2(as_type<float>(PV0ix)));
// 10
PV0iw = as_type<int>(mul_nonIEEE(as_type<float>(supportBuffer.remapped[5].x), as_type<float>(PS1i)));
// 11
PV1ix = ((as_type<float>(PV0iw) > as_type<float>(R126i.z))?-1:0);
PV1iy = ((as_type<float>(PV0iw) > as_type<float>(R125i.z))?-1:0);
PV1iz = ((as_type<float>(PV0iw) > as_type<float>(R126i.y))?-1:0);
PV1iw = ((as_type<float>(PV0iw) > as_type<float>(R126i.w))?-1:0);
// 12
R123i.x = ((R127i.z == 0)?(0):(PV1iw));
R127i.y = ((R127i.y == 0)?(0):(PV1iy));
R123i.z = ((R127i.x == 0)?(0):(PV1ix));
R126i.w = ((R125i.y == 0)?(0):(PV1iz));
// 13
PV1iz = R123i.z | R123i.x;
// 14
PV0ix = R127i.y | PV1iz;
// 15
R1i.y = R126i.w | PV0ix;
}
if( activeMaskStackC[2] == true ) {
break;
}
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
if( activeMaskStackC[1] == true ) {
// 0
R6i.z = as_type<int>(as_type<float>(R6i.z) + 1.0);
}
}
if( activeMaskStackC[1] == true ) {
// 0
R123i.x = as_type<int>(as_type<float>(R0i.x) * 2.0 + -(1.0));
R127i.y = as_type<int>(mul_nonIEEE(as_type<float>(R7i.x),as_type<float>(R5i.y)) + as_type<float>(R6i.x));
PV0iz = as_type<int>(as_type<float>(R5i.y) / ($sampleCount * 4.0));
R123i.w = as_type<int>(as_type<float>(R0i.y) * 2.0 + -(1.0));
PS0i = as_type<int>(1.0 / as_type<float>(R3i.z));
// 1
R123i.x = as_type<int>(mul_nonIEEE(-(as_type<float>(R123i.x)),as_type<float>(R123i.x)) + 1.0);
PV1iy = as_type<int>(-(as_type<float>(PV0iz)) + 1.0);
R123i.z = as_type<int>(mul_nonIEEE(-(as_type<float>(R123i.w)),as_type<float>(R123i.w)) + 1.0);
PV1iw = as_type<int>(as_type<float>(supportBuffer.remapped[9].w) * as_type<float>(PS0i));
PV1iw = clampFI32(PV1iw);
R126i.y = as_type<int>(mul_nonIEEE(as_type<float>(R8i.y),as_type<float>(R5i.y)) + as_type<float>(R7i.y));
// 2
backupReg0i = R1i.y;
PV0ix = as_type<int>(max(as_type<float>(PV1iy), as_type<float>(0x3dcccccd)));
R1i.y = as_type<int>(mul_nonIEEE(as_type<float>(R123i.z), as_type<float>(R123i.x)));
R2i.z = as_type<int>(-(as_type<float>(PV1iw)) + 1.0);
R0i.w = ((backupReg0i == 0)?(0):(int(0x3f800000)));
PS0i = R127i.y;
PS0i = as_type<int>(as_type<float>(PS0i) / 2.0);
// 3
PV1ix = as_type<int>(-(as_type<float>(R126i.y)));
PV1ix = as_type<int>(as_type<float>(PV1ix) / 2.0);
R0i.z = as_type<int>(rint(1.0));
PV1iw = as_type<int>(min(as_type<float>(PV0ix), 1.0));
R0i.x = as_type<int>(as_type<float>(PS0i) + 0.5);
// 4
R0i.y = as_type<int>(as_type<float>(PV1ix) + 0.5);
R1i.z = as_type<int>(mul_nonIEEE(as_type<float>(PV1iw), as_type<float>(PV1iw)));
}
if( activeMaskStackC[1] == true ) {
R0i.xyz = as_type<int3>(tex0.sample(samplr0, float2(as_type<float>(R0i.x), as_type<float>(R0i.y)), uint(rint(as_type<float>(R0i.z)))).xyz);
}
if( activeMaskStackC[1] == true ) {
// 0
PV0iw = as_type<int>(mul_nonIEEE(as_type<float>(R1i.z), as_type<float>(supportBuffer.remapped[10].w)));
PV0iw = clampFI32(PV0iw);
// 1
PV1iy = as_type<int>(mul_nonIEEE(as_type<float>(R7i.z), as_type<float>(PV0iw)));
// 2
PV0iw = as_type<int>(mul_nonIEEE(as_type<float>(PV1iy), as_type<float>(R1i.y)));
// 3
PV1iw = as_type<int>(mul_nonIEEE(as_type<float>(PV0iw), as_type<float>(R2i.z)));
// 4
PV0iy = as_type<int>(mul_nonIEEE(as_type<float>(PV1iw), as_type<float>(R0i.w)));
// 5
PV1ix = as_type<int>(mul_nonIEEE(as_type<float>(supportBuffer.remapped[10].x), as_type<float>(PV0iy)));
R2i.w = as_type<int>(mul_nonIEEE(as_type<float>(supportBuffer.remapped[10].y), as_type<float>(PV0iy)));
// 6
R2i.x = as_type<int>(mul_nonIEEE(as_type<float>(R0i.x), as_type<float>(PV1ix)));
R2i.y = as_type<int>(mul_nonIEEE(as_type<float>(R0i.y), as_type<float>(PV1ix)));
R2i.z = as_type<int>(mul_nonIEEE(as_type<float>(R0i.z), as_type<float>(PV1ix)));
}
// export
out.passPixelColor0 = as_type<float4>(float4(as_type<float>(R2i.x), as_type<float>(R2i.y), as_type<float>(R2i.z), as_type<float>(R2i.w)));
return out;
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,585 @@
// shader 8ff2cf86e789335f
#include <metal_stdlib>
using namespace metal;
#define SET_POSITION(_v) out.position = _v; out.position.z = (out.position.z + out.position.w) / 2.0
// start of shader inputs/outputs, predetermined by Cemu. Do not touch
struct SupportBuffer {
int4 remapped[10];
float2 fragCoordScale;
};
#define GET_FRAGCOORD() float4(in.position.xy * supportBuffer.fragCoordScale.xy, in.position.z, 1.0 / in.position.w)
struct FragmentIn {
float4 position [[position]];
float4 passParameterSem0 [[user(locn0)]];
float4 passParameterSem1 [[user(locn1)]];
float4 passParameterSem3 [[user(locn2)]];
float4 passParameterSem4 [[user(locn3)]];
float4 passParameterSem6 [[user(locn4)]];
};
struct FragmentOut {
float4 passPixelColor0 [[color(0)]];
};
// end of shader inputs/outputs
void redcCUBE(float4 src0, float4 src1, thread float3& stm, thread int& faceId)
{
// stm -> x .. s, y .. t, z .. MajorAxis*2.0
float3 inputCoord = normalize(float3(src1.y, src1.x, src0.x));
float rx = inputCoord.x;
float ry = inputCoord.y;
float rz = inputCoord.z;
if( abs(rx) > abs(ry) && abs(rx) > abs(rz) )
{
stm.z = rx*2.0;
stm.xy = float2(ry,rz);
if( rx >= 0.0 )
{
faceId = 0;
}
else
{
faceId = 1;
}
}
else if( abs(ry) > abs(rx) && abs(ry) > abs(rz) )
{
stm.z = ry*2.0;
stm.xy = float2(rx,rz);
if( ry >= 0.0 )
{
faceId = 2;
}
else
{
faceId = 3;
}
}
else //if( abs(rz) > abs(ry) && abs(rz) > abs(rx) )
{
stm.z = rz*2.0;
stm.xy = float2(rx,ry);
if( rz >= 0.0 )
{
faceId = 4;
}
else
{
faceId = 5;
}
}
}
float3 redcCUBEReverse(float2 st, int faceId)
{
st.yx = st.xy;
float3 v;
float majorAxis = 1.0;
if( faceId == 0 )
{
v.yz = (st-float2(1.5))*(majorAxis*2.0);
v.x = 1.0;
}
else if( faceId == 1 )
{
v.yz = (st-float2(1.5))*(majorAxis*2.0);
v.x = -1.0;
}
else if( faceId == 2 )
{
v.xz = (st-float2(1.5))*(majorAxis*2.0);
v.y = 1.0;
}
else if( faceId == 3 )
{
v.xz = (st-float2(1.5))*(majorAxis*2.0);
v.y = -1.0;
}
else if( faceId == 4 )
{
v.xy = (st-float2(1.5))*(majorAxis*2.0);
v.z = 1.0;
}
else
{
v.xy = (st-float2(1.5))*(majorAxis*2.0);
v.z = -1.0;
}
return v;
}
template<typename TextureT, typename CoordT>
float sampleCompareEmulate(TextureT tex, sampler samplr, CoordT coord, float compareValue) {
return compareValue < tex.sample(samplr, coord).x ? 1.0 : 0.0;
}
template<typename TextureT, typename CoordT>
float2 textureCalculateLod(TextureT tex, sampler samplr, CoordT coord) {
float lod = tex.calculate_unclamped_lod(samplr, coord);
return float2(floor(lod), fract(lod));
}
int clampFI32(int v)
{
if( v == 0x7FFFFFFF )
return as_type<int>(1.0);
else if( v == 0xFFFFFFFF )
return as_type<int>(0.0);
return as_type<int>(clamp(as_type<float>(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; }
#define reflExtra $reflExtra
fragment FragmentOut main0(FragmentIn in [[stage_in]], float2 pointCoord [[point_coord]], bool frontFacing [[front_facing]], constant SupportBuffer& supportBuffer [[buffer(0)]], texture2d<float> tex1 [[texture(0)]], sampler samplr1 [[sampler(0)]], texture2d<float> tex2 [[texture(1)]], sampler samplr2 [[sampler(1)]], texture2d<float> tex3 [[texture(2)]], sampler samplr3 [[sampler(2)]], texture2d<float> tex5 [[texture(3)]], sampler samplr5 [[sampler(3)]], texture2d<float> tex7 [[texture(4)]], sampler samplr7 [[sampler(4)]], texture2d<float> tex8 [[texture(5)]], sampler samplr8 [[sampler(5)]], texturecube_array<float> tex9 [[texture(6)]], sampler samplr9 [[sampler(6)]], texture2d_array<float> tex11 [[texture(7)]], sampler samplr11 [[sampler(7)]], texture2d<float> tex12 [[texture(8)]], sampler samplr12 [[sampler(8)]], texture2d<float> tex14 [[texture(9)]], sampler samplr14 [[sampler(9)]]) {
FragmentOut out;
int4 R0i = int4(0);
int4 R1i = int4(0);
int4 R2i = int4(0);
int4 R3i = int4(0);
int4 R4i = int4(0);
int4 R5i = int4(0);
int4 R6i = int4(0);
int4 R7i = int4(0);
int4 R8i = int4(0);
int4 R9i = int4(0);
int4 R10i = int4(0);
int4 R11i = int4(0);
int4 R12i = int4(0);
int4 R13i = int4(0);
int4 R122i = int4(0);
int4 R123i = int4(0);
int4 R124i = int4(0);
int4 R125i = int4(0);
int4 R126i = int4(0);
int4 R127i = int4(0);
int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i;
int PV0ix = 0, PV0iy = 0, PV0iz = 0, PV0iw = 0, PV1ix = 0, PV1iy = 0, PV1iz = 0, PV1iw = 0;
int PS0i = 0, PS1i = 0;
int4 tempi = int4(0);
float tempResultf;
int tempResulti;
int4 ARi = int4(0);
bool predResult = true;
float3 cubeMapSTM;
int cubeMapFaceId;
float cubeMapArrayIndex9 = 0.0;
R0i = as_type<int4>(in.passParameterSem0);
R1i = as_type<int4>(in.passParameterSem1);
R2i = as_type<int4>(in.passParameterSem3);
R3i = as_type<int4>(in.passParameterSem4);
R4i = as_type<int4>(in.passParameterSem6);
R7i.xyzw = as_type<int4>(tex3.sample(samplr3, float2(as_type<float>(R4i.z),as_type<float>(R4i.w))).xyzw);
R2i.w = as_type<int>(tex5.sample(samplr5, float2(as_type<float>(R0i.x),as_type<float>(R0i.y))).x);
R5i.xyzw = as_type<int4>(tex7.gather(samplr7, float2(0.0001) + float2(as_type<float>(R0i.x),as_type<float>(R0i.y))).xyzw);
R6i.xyzw = as_type<int4>(tex8.gather(samplr8, float2(0.0001) + float2(as_type<float>(R0i.x),as_type<float>(R0i.y))).xyzw);
R8i.xyzw = as_type<int4>(tex1.sample(samplr1, float2(as_type<float>(R4i.z),as_type<float>(R4i.w))).xyzw);
// 0
R127i.x = as_type<int>(as_type<float>(R7i.x) * 2.0 + -(1.0));
R127i.y = as_type<int>(as_type<float>(R7i.y) * 2.0 + -(1.0));
R126i.z = as_type<int>(as_type<float>(R7i.z) * 2.0 + -(1.0));
R127i.w = as_type<int>(mul_nonIEEE(as_type<float>(R2i.w),as_type<float>(supportBuffer.remapped[0].x)) + as_type<float>(supportBuffer.remapped[1].x));
R127i.z = as_type<int>(-(as_type<float>(R2i.w)) + as_type<float>(R5i.x));
// 1
tempi.x = as_type<int>(dot(float4(as_type<float>(R127i.x),as_type<float>(R127i.y),as_type<float>(R126i.z),as_type<float>(0x80000000)),float4(as_type<float>(R127i.x),as_type<float>(R127i.y),as_type<float>(R126i.z),0.0)));
PV1ix = tempi.x;
PV1iy = tempi.x;
PV1iz = tempi.x;
PV1iw = tempi.x;
R2i.z = as_type<int>(-(as_type<float>(R127i.w)));
// 2
R12i.x = as_type<int>(mul_nonIEEE(as_type<float>(R0i.z), -(as_type<float>(R127i.w))));
R12i.y = as_type<int>(mul_nonIEEE(as_type<float>(R0i.w), -(as_type<float>(R127i.w))));
PV0iz = as_type<int>(mul_nonIEEE(as_type<float>(R127i.w), as_type<float>(supportBuffer.remapped[2].y)));
R125i.w = as_type<int>(max(as_type<float>(R127i.z), -(as_type<float>(R127i.z))));
tempResultf = 1.0 / sqrt(as_type<float>(PV1ix));
R126i.y = as_type<int>(tempResultf);
// 3
R4i.x = as_type<int>(mul_nonIEEE(as_type<float>(R127i.x), as_type<float>(R126i.y)));
R4i.y = as_type<int>(mul_nonIEEE(as_type<float>(R127i.y), as_type<float>(R126i.y)));
R127i.z = as_type<int>(-(as_type<float>(R2i.w)) + as_type<float>(R5i.y));
R126i.w = as_type<int>(-(as_type<float>(R2i.w)) + as_type<float>(R5i.z));
R127i.w = as_type<int>(1.0 / as_type<float>(PV0iz));
R127i.w = as_type<int>(as_type<float>(R127i.w) * 2.0);
// 4
tempi.x = as_type<int>(dot(float4(as_type<float>(R12i.x),as_type<float>(R12i.y),as_type<float>(R2i.z),as_type<float>(0x80000000)),float4(as_type<float>(R12i.x),as_type<float>(R12i.y),as_type<float>(R2i.z),0.0)));
PV0ix = tempi.x;
PV0iy = tempi.x;
PV0iz = tempi.x;
PV0iw = tempi.x;
R9i.x = as_type<int>(mul_nonIEEE(as_type<float>(R2i.x),as_type<float>(R4i.x)) + as_type<float>(R0i.x));
// 5
backupReg0i = R127i.z;
R126i.x = as_type<int>(-(as_type<float>(R2i.w)) + as_type<float>(R5i.w));
R9i.y = as_type<int>(mul_nonIEEE(as_type<float>(R2i.y),as_type<float>(R4i.y)) + as_type<float>(R0i.y));
R127i.z = as_type<int>(mul_nonIEEE(as_type<float>(supportBuffer.remapped[0].x), as_type<float>(R127i.w)));
R127i.w = as_type<int>(max(as_type<float>(backupReg0i), -(as_type<float>(backupReg0i))));
PS1i = as_type<int>(sqrt(as_type<float>(PV0ix)));
// 6
R127i.x = as_type<int>(dot(float4(as_type<float>(R7i.x),as_type<float>(R7i.y),as_type<float>(R7i.z),as_type<float>(0x80000000)),float4(as_type<float>(0x3eaaaaab),as_type<float>(0x3eaaaaab),as_type<float>(0x3eaaaaab),0.0)));
PV0iy = R127i.x;
PV0iz = R127i.x;
PV0iw = R127i.x;
PS0i = as_type<int>(1.0 / as_type<float>(PS1i));
// 7
R2i.x = as_type<int>(mul_nonIEEE(as_type<float>(R12i.x), as_type<float>(PS0i)));
R13i.y = as_type<int>(mul_nonIEEE(as_type<float>(R12i.y), as_type<float>(PS0i)));
R9i.z = as_type<int>(mul_nonIEEE(as_type<float>(R2i.z), as_type<float>(PS0i)));
PV1iw = as_type<int>(-(as_type<float>(R127i.x)) + as_type<float>(R6i.x));
R125i.x = as_type<int>(-(as_type<float>(R127i.x)) + as_type<float>(R6i.y));
// 8
backupReg0i = R127i.x;
R127i.x = as_type<int>(max(as_type<float>(R126i.w), -(as_type<float>(R126i.w))));
PV0iy = as_type<int>(-(as_type<float>(backupReg0i)) + as_type<float>(R6i.w));
R125i.z = as_type<int>(max(as_type<float>(R126i.x), -(as_type<float>(R126i.x))));
PV0iw = as_type<int>(-(as_type<float>(backupReg0i)) + as_type<float>(R6i.z));
PS0i = as_type<int>(max(as_type<float>(PV1iw), -(as_type<float>(PV1iw))));
PS0i = as_type<int>(as_type<float>(PS0i) * 4.0);
// 9
backupReg0i = R126i.z;
PV1ix = as_type<int>(max(as_type<float>(R125i.x), -(as_type<float>(R125i.x))));
PV1ix = as_type<int>(as_type<float>(PV1ix) * 4.0);
PV1iy = as_type<int>(max(as_type<float>(PV0iy), -(as_type<float>(PV0iy))));
PV1iy = as_type<int>(as_type<float>(PV1iy) * 4.0);
R126i.z = as_type<int>(mul_nonIEEE(as_type<float>(R127i.z),as_type<float>(R125i.w)) + as_type<float>(PS0i));
PV1iw = as_type<int>(max(as_type<float>(PV0iw), -(as_type<float>(PV0iw))));
PV1iw = as_type<int>(as_type<float>(PV1iw) * 4.0);
R5i.z = as_type<int>(mul_nonIEEE(as_type<float>(backupReg0i), as_type<float>(R126i.y)));
// 10
backupReg0i = R127i.z;
R123i.x = as_type<int>(mul_nonIEEE(as_type<float>(backupReg0i),as_type<float>(R127i.w)) + as_type<float>(PV1ix));
R123i.y = as_type<int>(mul_nonIEEE(as_type<float>(backupReg0i),as_type<float>(R125i.z)) + as_type<float>(PV1iy));
R127i.z = as_type<int>(fract(as_type<float>(R3i.x)));
R123i.w = as_type<int>(mul_nonIEEE(as_type<float>(backupReg0i),as_type<float>(R127i.x)) + as_type<float>(PV1iw));
R125i.x = as_type<int>(fract(as_type<float>(R3i.y)));
// 11
R127i.x = as_type<int>(as_type<float>(R126i.z) + -(as_type<float>(R123i.w)));
R126i.y = R4i.x;
R126i.y = as_type<int>(as_type<float>(R126i.y) * 2.0);
R126i.z = as_type<int>(-(as_type<float>(R123i.x)) + as_type<float>(R123i.y));
R127i.w = R4i.y;
R127i.w = as_type<int>(as_type<float>(R127i.w) * 2.0);
R125i.w = R5i.z;
R125i.w = as_type<int>(as_type<float>(R125i.w) * 2.0);
// 12
tempi.x = as_type<int>(dot(float4(as_type<float>(R4i.x),as_type<float>(R4i.y),as_type<float>(R5i.z),as_type<float>(0x80000000)),float4(as_type<float>(R2i.x),as_type<float>(R13i.y),as_type<float>(R9i.z),0.0)));
PV0ix = tempi.x;
R127i.y = tempi.x;
PV0iz = tempi.x;
PV0iw = tempi.x;
PS0i = as_type<int>(as_type<float>(R126i.z) + as_type<float>(R127i.x));
// 13
backupReg0i = R127i.x;
R127i.x = as_type<int>(mul_nonIEEE(-(as_type<float>(PV0ix)),as_type<float>(R126i.y)) + as_type<float>(R2i.x));
PV1iy = as_type<int>(as_type<float>(R126i.z) + -(as_type<float>(backupReg0i)));
R126i.z = as_type<int>(mul_nonIEEE(-(as_type<float>(PV0ix)),as_type<float>(R127i.w)) + as_type<float>(R13i.y));
PV1iw = as_type<int>(as_type<float>(PS0i) + as_type<float>(R127i.z));
PV1iw = clampFI32(PV1iw);
R125i.z = as_type<int>(mul_nonIEEE(-(as_type<float>(PV0ix)),as_type<float>(R125i.w)) + as_type<float>(R9i.z));
// 14
R6i.x = as_type<int>(mul_nonIEEE(as_type<float>(R1i.x),as_type<float>(R9i.x)) + as_type<float>(R1i.z));
PV0iy = as_type<int>(as_type<float>(PV1iy) + as_type<float>(R125i.x));
PV0iy = clampFI32(PV0iy);
R11i.z = as_type<int>(rint(0.0));
PV0iw = as_type<int>(-(as_type<float>(R127i.z)) + as_type<float>(PV1iw));
R10i.w = as_type<int>(-(as_type<float>(R7i.w)) * 3.0 + 3.0);
// 15
R11i.x = as_type<int>(mul_nonIEEE(as_type<float>(R3i.z),as_type<float>(PV0iw)) + as_type<float>(R0i.x));
R5i.y = as_type<int>(mul_nonIEEE(as_type<float>(R1i.y),as_type<float>(R9i.y)) + as_type<float>(R1i.w));
R1i.z = as_type<int>(as_type<float>(R2i.x) + as_type<float>(supportBuffer.remapped[3].x));
PV1iw = as_type<int>(-(as_type<float>(R125i.x)) + as_type<float>(PV0iy));
R1i.y = as_type<int>(as_type<float>(R13i.y) + as_type<float>(supportBuffer.remapped[3].y));
// 16
R125i.x = as_type<int>(max(-(as_type<float>(R127i.y)), 0.0));
R11i.y = as_type<int>(mul_nonIEEE(as_type<float>(R3i.w),as_type<float>(PV1iw)) + as_type<float>(R0i.y));
R6i.z = as_type<int>(as_type<float>(R9i.z) + as_type<float>(supportBuffer.remapped[3].z));
R127i.w = as_type<int>(as_type<float>(R8i.w) * 255.0);
R6i.y = as_type<int>(-(as_type<float>(R7i.w)) + 1.0);
// 17
tempi.x = as_type<int>(dot(float4(as_type<float>(supportBuffer.remapped[4].x),as_type<float>(supportBuffer.remapped[4].y),as_type<float>(supportBuffer.remapped[4].z),as_type<float>(0x80000000)),float4(as_type<float>(R127i.x),as_type<float>(R126i.z),as_type<float>(R125i.z),0.0)));
PV1ix = tempi.x;
PV1iy = tempi.x;
PV1iz = tempi.x;
PV1iw = tempi.x;
R1i.w = 0;
// 18
R124i.x = as_type<int>(dot(float4(as_type<float>(supportBuffer.remapped[5].x),as_type<float>(supportBuffer.remapped[5].y),as_type<float>(supportBuffer.remapped[5].z),as_type<float>(0x80000000)),float4(as_type<float>(R127i.x),as_type<float>(R126i.z),as_type<float>(R125i.z),0.0)));
PV0iy = R124i.x;
PV0iz = R124i.x;
PV0iw = R124i.x;
R124i.z = as_type<int>(-(as_type<float>(PV1ix)));
// 19
tempi.x = as_type<int>(dot(float4(as_type<float>(supportBuffer.remapped[6].x),as_type<float>(supportBuffer.remapped[6].y),as_type<float>(supportBuffer.remapped[6].z),as_type<float>(0x80000000)),float4(as_type<float>(R127i.x),as_type<float>(R126i.z),as_type<float>(R125i.z),0.0)));
PV1ix = tempi.x;
R124i.y = tempi.x;
PV1iz = tempi.x;
PV1iw = tempi.x;
R4i.z = int(as_type<float>(R127i.w));
// 20
redcCUBE(float4(as_type<float>(R124i.z),as_type<float>(R124i.z),as_type<float>(R124i.x),as_type<float>(PV1ix)),float4(as_type<float>(PV1ix),as_type<float>(R124i.x),as_type<float>(R124i.z),as_type<float>(R124i.z)),cubeMapSTM,cubeMapFaceId);
R0i.x = as_type<int>(cubeMapSTM.x);
R0i.y = as_type<int>(cubeMapSTM.y);
R0i.z = as_type<int>(cubeMapSTM.z);
R0i.w = cubeMapFaceId;
R2i.y = as_type<int>(min(as_type<float>(R125i.x), 1.0));
// 21
R3i.x = 0;
R3i.y = as_type<int>(as_type<float>(R7i.w) * 255.0);
R10i.z = R0i.w;
R3i.w = as_type<int>(mul_nonIEEE(-(as_type<float>(R7i.w)),as_type<float>(R6i.y)) + as_type<float>(R6i.y));
R3i.z = as_type<int>(1.0 / abs(as_type<float>(R0i.z)));
// 0
R125i.x = as_type<int>(mul_nonIEEE(as_type<float>(supportBuffer.remapped[3].x), as_type<float>(supportBuffer.remapped[7].w)));
R123i.y = as_type<int>(mul_nonIEEE(as_type<float>(R0i.y),as_type<float>(R3i.z)) + 1.5);
R124i.z = R4i.z & int(0xfc);
R123i.w = as_type<int>(mul_nonIEEE(as_type<float>(R0i.x),as_type<float>(R3i.z)) + 1.5);
R127i.y = as_type<int>(mul_nonIEEE(as_type<float>(supportBuffer.remapped[3].y), as_type<float>(supportBuffer.remapped[7].w)));
// 1
R10i.x = R123i.y;
R10i.y = R123i.w;
R125i.z = as_type<int>(mul_nonIEEE(as_type<float>(supportBuffer.remapped[3].z), as_type<float>(supportBuffer.remapped[7].w)));
R127i.w = as_type<int>(as_type<float>(R3i.w) + as_type<float>(0x3c23d70a));
R127i.w = clampFI32(R127i.w);
R126i.z = as_type<int>(-(as_type<float>(R2i.y)) + 1.0);
// 2
tempi.x = as_type<int>(dot(float4(as_type<float>(R1i.z),as_type<float>(R1i.y),as_type<float>(R6i.z),as_type<float>(0x80000000)),float4(as_type<float>(R1i.z),as_type<float>(R1i.y),as_type<float>(R6i.z),0.0)));
PV0ix = tempi.x;
PV0iy = tempi.x;
PV0iz = tempi.x;
PV0iw = tempi.x;
R124i.y = int(as_type<float>(R3i.y));
// 3
tempi.x = as_type<int>(dot(float4(as_type<float>(R4i.x),as_type<float>(R4i.y),as_type<float>(R5i.z),as_type<float>(R5i.z)),float4(-(as_type<float>(R125i.x)),-(as_type<float>(R127i.y)),-(as_type<float>(R125i.z)),-(as_type<float>(R3i.x)))));
PV1ix = tempi.x;
PV1iy = tempi.x;
PV1iz = tempi.x;
R126i.w = tempi.x;
tempResultf = 1.0 / sqrt(as_type<float>(PV0ix));
PS1i = as_type<int>(tempResultf);
// 4
backupReg0i = R124i.z;
PV0ix = as_type<int>(mul_nonIEEE(as_type<float>(R1i.z), as_type<float>(PS1i)));
PV0iy = as_type<int>(mul_nonIEEE(as_type<float>(R1i.y), as_type<float>(PS1i)));
R124i.z = as_type<int>(mul_nonIEEE(as_type<float>(R127i.w), as_type<float>(R127i.w)));
PV0iw = as_type<int>(mul_nonIEEE(as_type<float>(R6i.z), as_type<float>(PS1i)));
R127i.x = as_type<int>(float(backupReg0i));
// 5
backupReg0i = R126i.z;
R124i.x = as_type<int>(mul_nonIEEE(as_type<float>(PV0ix), as_type<float>(supportBuffer.remapped[7].w)));
R126i.y = as_type<int>(mul_nonIEEE(as_type<float>(PV0iy), as_type<float>(supportBuffer.remapped[7].w)));
R126i.z = as_type<int>(mul_nonIEEE(as_type<float>(PV0iw), as_type<float>(supportBuffer.remapped[7].w)));
R127i.w = as_type<int>(as_type<float>(R6i.y) * 0.5 + 0.5);
R125i.y = as_type<int>(mul_nonIEEE(-(as_type<float>(R2i.y)),as_type<float>(backupReg0i)) + as_type<float>(backupReg0i));
// 6
tempi.x = as_type<int>(dot(float4(as_type<float>(R4i.x),as_type<float>(R4i.y),as_type<float>(R5i.z),as_type<float>(R5i.z)),float4(-(as_type<float>(R124i.x)),-(as_type<float>(R126i.y)),-(as_type<float>(R126i.z)),-(as_type<float>(R1i.w)))));
tempi.x = clampFI32(tempi.x);
PV0ix = tempi.x;
PV0iy = tempi.x;
PV0iz = tempi.x;
PV0iw = tempi.x;
R126i.x = R124i.y & int(1);
// 7
tempi.x = as_type<int>(dot(float4(-(as_type<float>(R125i.x)),-(as_type<float>(R127i.y)),-(as_type<float>(R125i.z)),as_type<float>(0x80000000)),float4(-(as_type<float>(R124i.x)),-(as_type<float>(R126i.y)),-(as_type<float>(R126i.z)),0.0)));
tempi.x = clampFI32(tempi.x);
PV1ix = tempi.x;
PV1iy = tempi.x;
PV1iz = tempi.x;
R125i.w = tempi.x;
PS1i = as_type<int>(mul_nonIEEE(as_type<float>(PV0ix), as_type<float>(PV0ix)));
// 8
R125i.x = as_type<int>(mul_nonIEEE(as_type<float>(R127i.w), as_type<float>(R127i.w)));
R125i.x = as_type<int>(as_type<float>(R125i.x) / 2.0);
R127i.y = as_type<int>(mul_nonIEEE(as_type<float>(R124i.z),as_type<float>(PS1i)) + -(as_type<float>(PS1i)));
PV0iz = as_type<int>(-(as_type<float>(PV1ix)) + 1.0);
R3i.w = as_type<int>(as_type<float>(R127i.x) * as_type<float>(0x3b820821));
R122i.x = as_type<int>(mul_nonIEEE(-(as_type<float>(R2i.y)),as_type<float>(R125i.y)) + as_type<float>(R125i.y));
// 9
backupReg0i = R125i.y;
R127i.x = R126i.w;
R127i.x = as_type<int>(as_type<float>(R127i.x) * 2.0);
R125i.y = as_type<int>(mul_nonIEEE(-(as_type<float>(R125i.w)),as_type<float>(PV0iz)) + as_type<float>(PV0iz));
R126i.z = as_type<int>(-(as_type<float>(R7i.w)) * 3.0 + 4.0);
R127i.w = as_type<int>(mul_nonIEEE(as_type<float>(backupReg0i), as_type<float>(R122i.x)));
R7i.y = as_type<int>(as_type<float>(R3i.w) * 0.25 + 0.25);
// 10
R3i.x = R126i.w;
R3i.x = clampFI32(R3i.x);
R126i.y = ((R126i.x == 0)?(0):(int(0x3f800000)));
PV0iz = as_type<int>(as_type<float>(R127i.y) + 1.0);
R123i.w = as_type<int>(mul_nonIEEE(as_type<float>(R2i.y),-(as_type<float>(R125i.x))) + as_type<float>(R2i.y));
R125i.z = as_type<int>(-(as_type<float>(R3i.w)) * as_type<float>(0x3d23d70a) + as_type<float>(0x3d23d70a));
// 11
backupReg0i = R126i.z;
R123i.x = as_type<int>(mul_nonIEEE(-(as_type<float>(R125i.w)),as_type<float>(R125i.y)) + as_type<float>(R125i.y));
R127i.y = as_type<int>(mul_nonIEEE(as_type<float>(R127i.y),as_type<float>(PV0iz)) + as_type<float>(PV0iz));
R126i.z = as_type<int>(as_type<float>(R125i.x) + as_type<float>(R123i.w));
PV1iw = as_type<int>(mul_nonIEEE(as_type<float>(R126i.w), as_type<float>(R127i.x)));
PS1i = as_type<int>(1.0 / as_type<float>(backupReg0i));
// 12
R124i.x = as_type<int>(mul_nonIEEE(as_type<float>(R127i.w), as_type<float>(PS1i)));
R123i.y = as_type<int>(mul_nonIEEE(as_type<float>(R3i.x),-(as_type<float>(R125i.x))) + as_type<float>(R3i.x));
R6i.z = as_type<int>(mul_nonIEEE(as_type<float>(R126i.y), as_type<float>(PV1iw)));
R126i.w = as_type<int>(mul_nonIEEE(as_type<float>(R125i.y), as_type<float>(R123i.x)));
R127i.x = as_type<int>(mul_nonIEEE(as_type<float>(R8i.y),as_type<float>(R3i.w)) + as_type<float>(R125i.z));
// 13
backupReg0i = R125i.x;
backupReg1i = R123i.y;
R125i.x = as_type<int>(mul_nonIEEE(as_type<float>(supportBuffer.remapped[7].w), as_type<float>(supportBuffer.remapped[7].w)));
R123i.y = as_type<int>(mul_nonIEEE(as_type<float>(R8i.x),as_type<float>(R3i.w)) + as_type<float>(R125i.z));
R127i.z = as_type<int>(as_type<float>(backupReg0i) + as_type<float>(backupReg1i));
R127i.w = as_type<int>(mul_nonIEEE(as_type<float>(R8i.z),as_type<float>(R3i.w)) + as_type<float>(R125i.z));
R125i.z = as_type<int>(1.0 / as_type<float>(R127i.y));
// 14
backupReg0i = R126i.z;
R126i.x = as_type<int>(mul_nonIEEE(as_type<float>(R123i.y),-(as_type<float>(R124i.x))) + as_type<float>(R123i.y));
R127i.y = as_type<int>(mul_nonIEEE(as_type<float>(R127i.w),-(as_type<float>(R126i.w))) + as_type<float>(R127i.w));
R126i.z = as_type<int>(mul_nonIEEE(as_type<float>(R127i.x),-(as_type<float>(R126i.w))) + as_type<float>(R127i.x));
R123i.w = as_type<int>(mul_nonIEEE(as_type<float>(R123i.y),-(as_type<float>(R126i.w))) + as_type<float>(R123i.y));
R7i.x = as_type<int>(1.0 / as_type<float>(backupReg0i));
// 15
backupReg0i = R127i.z;
R123i.x = as_type<int>(mul_nonIEEE(as_type<float>(R127i.x),-(as_type<float>(R124i.x))) + as_type<float>(R127i.x));
R125i.y = as_type<int>(mul_nonIEEE(as_type<float>(R124i.z), as_type<float>(R125i.z)));
R127i.z = as_type<int>(as_type<float>(R126i.w) + as_type<float>(R123i.w));
R127i.w = as_type<int>(mul_nonIEEE(as_type<float>(R127i.w),-(as_type<float>(R124i.x))) + as_type<float>(R127i.w));
R126i.y = as_type<int>(1.0 / as_type<float>(backupReg0i));
// 16
backupReg0i = R126i.x;
R126i.x = as_type<int>(as_type<float>(R126i.w) + as_type<float>(R127i.y));
R2i.y = as_type<int>(as_type<float>(R124i.x) + as_type<float>(backupReg0i));
R7i.z = as_type<int>(mul_nonIEEE(as_type<float>(R125i.x), as_type<float>(R125i.x)));
R126i.w = as_type<int>(as_type<float>(R126i.w) + as_type<float>(R126i.z));
R6i.y = as_type<int>(as_type<float>(R124i.x) + as_type<float>(R123i.x));
// 17
backupReg0i = R7i.x;
R7i.x = as_type<int>(as_type<float>(R124i.x) + as_type<float>(R127i.w));
R3i.y = as_type<int>(mul_nonIEEE(as_type<float>(R126i.y), as_type<float>(R125i.y)));
R3i.z = as_type<int>(as_type<float>(R8i.x) * as_type<float>(0x3f895ef0) + as_type<float>(0xba0a8ec8));
R3i.z = clampFI32(R3i.z);
PV1iw = as_type<int>(0.25 * as_type<float>(backupReg0i));
R0i.w = as_type<int>(as_type<float>(R8i.y) * as_type<float>(0x3f895ef0) + as_type<float>(0xba0a8ec8));
R0i.w = clampFI32(R0i.w);
// 18
PV0ix = as_type<int>(mul_nonIEEE(as_type<float>(R126i.x), as_type<float>(PV1iw)));
PV0iy = as_type<int>(mul_nonIEEE(as_type<float>(R126i.w), as_type<float>(PV1iw)));
PV0iz = as_type<int>(mul_nonIEEE(as_type<float>(R127i.z), as_type<float>(PV1iw)));
R6i.w = as_type<int>(as_type<float>(R8i.z) * as_type<float>(0x3f895ef0) + as_type<float>(0xba0a8ec8));
R6i.w = clampFI32(R6i.w);
PS0i = R4i.z & int(1);
// 19
R8i.y = as_type<int>(mul_nonIEEE(as_type<float>(supportBuffer.remapped[8].z), as_type<float>(PV0ix)));
R5i.z = as_type<int>(mul_nonIEEE(as_type<float>(supportBuffer.remapped[8].y), as_type<float>(PV0iy)));
R7i.w = as_type<int>(mul_nonIEEE(as_type<float>(supportBuffer.remapped[8].x), as_type<float>(PV0iz)));
R8i.z = as_type<int>(float(PS0i));
// 20
R4i.x = R11i.x;
R4i.y = R11i.y;
R4i.z = as_type<int>(rint(1.0));
R8i.w = as_type<int>(tex5.sample(samplr5, float2(as_type<float>(R9i.x),as_type<float>(R9i.y))).x);
R13i.xzw = as_type<int3>(tex12.sample(samplr12, float2(as_type<float>(R11i.x),as_type<float>(R11i.y))).xzw);
R0i.xyz = as_type<int3>(tex11.sample(samplr11, float2(as_type<float>(R11i.x), as_type<float>(R11i.y)), uint(rint(as_type<float>(R11i.z)))).xyz);
R1i.xyzw = as_type<int4>(tex2.sample(samplr2, float2(as_type<float>(R11i.x),as_type<float>(R11i.y)), level(0.0)).xyzw);
R4i.xyz = as_type<int3>(tex11.sample(samplr11, float2(as_type<float>(R4i.x), as_type<float>(R4i.y)), uint(rint(as_type<float>(R4i.z)))).xyz);
#if (reflExtra == 0) // Normal Reflections
R10i.xyz = as_type<int3>(tex9.sample(samplr9, redcCUBEReverse(as_type<float2>(R10i.xy),R10i.z), uint(cubeMapArrayIndex9), level(as_type<float>(R10i.w))).xyz);
#elif (reflExtra == 1) // Enhanced Reflections
R10i.xyz = as_type<int3>(tex9.sample(samplr9, redcCUBEReverse(as_type<float2>(R10i.xy),R10i.z), uint(cubeMapArrayIndex9), level(0.0)).xyz);
#endif
R11i.xyz = as_type<int3>(tex14.sample(samplr14, float2(as_type<float>(R11i.x),as_type<float>(R11i.y))).xyz);
// 0
R123i.x = as_type<int>(as_type<float>(R13i.w) * 0.5 + 0.5);
R123i.y = as_type<int>(mul_nonIEEE(as_type<float>(R13i.w),-(as_type<float>(R7i.y))) + as_type<float>(R13i.w));
R123i.z = as_type<int>(mul_nonIEEE(as_type<float>(supportBuffer.remapped[0].x),as_type<float>(R8i.w)) + as_type<float>(supportBuffer.remapped[1].x));
R126i.w = as_type<int>(mul_nonIEEE(as_type<float>(R13i.x), as_type<float>(R3i.x)));
R127i.w = as_type<int>(mul_nonIEEE(as_type<float>(R1i.z),as_type<float>(R7i.x)) + as_type<float>(R4i.z));
// 1
PV1ix = as_type<int>(-(as_type<float>(R123i.z)));
PV1iy = as_type<int>(as_type<float>(R3i.x) + as_type<float>(R123i.x));
PV1iy = clampFI32(PV1iy);
PV1iz = as_type<int>(mul_nonIEEE(-(as_type<float>(R123i.z)), as_type<float>(R5i.y)));
PV1iw = as_type<int>(mul_nonIEEE(-(as_type<float>(R123i.z)), as_type<float>(R6i.x)));
PS1i = as_type<int>(as_type<float>(R7i.y) + as_type<float>(R123i.y));
// 2
R126i.x = as_type<int>(-(as_type<float>(R12i.x)) + as_type<float>(PV1iw));
R126i.y = as_type<int>(-(as_type<float>(R12i.y)) + as_type<float>(PV1iz));
PV0iz = as_type<int>(-(as_type<float>(R2i.z)) + as_type<float>(PV1ix));
R8i.w = as_type<int>(mul_nonIEEE(as_type<float>(R126i.w), as_type<float>(PV1iy)));
R125i.y = as_type<int>(mul_nonIEEE(as_type<float>(PS1i),-(as_type<float>(R1i.w))) + as_type<float>(PS1i));
// 3
tempi.x = as_type<int>(dot(float4(as_type<float>(R2i.x),as_type<float>(R13i.y),as_type<float>(R9i.z),as_type<float>(0x80000000)),float4(as_type<float>(R126i.x),as_type<float>(R126i.y),as_type<float>(PV0iz),0.0)));
PV1ix = tempi.x;
R127i.y = tempi.x;
PV1iz = tempi.x;
PV1iw = tempi.x;
PS1i = as_type<int>(mul_nonIEEE(as_type<float>(supportBuffer.remapped[9].x), as_type<float>(R126i.w)));
// 4
backupReg0i = R126i.y;
R123i.x = as_type<int>(mul_nonIEEE(-(as_type<float>(R2i.x)),as_type<float>(PV1ix)) + as_type<float>(R126i.x));
R126i.y = as_type<int>(mul_nonIEEE(as_type<float>(PS1i), as_type<float>(R7i.z)));
R127i.z = as_type<int>(mul_nonIEEE(as_type<float>(R13i.z), as_type<float>(R13i.z)));
R126i.w = as_type<int>(mul_nonIEEE(-(as_type<float>(R13i.y)),as_type<float>(PV1ix)) + as_type<float>(backupReg0i));
// 5
PV1ix = as_type<int>(mul_nonIEEE(as_type<float>(R125i.y), as_type<float>(R2i.y)));
R123i.y = as_type<int>(mul_nonIEEE(as_type<float>(R1i.x),as_type<float>(R2i.y)) + as_type<float>(R4i.x));
PV1iz = as_type<int>(mul_nonIEEE(as_type<float>(R123i.x), as_type<float>(R123i.x)));
R125i.w = as_type<int>(mul_nonIEEE(as_type<float>(R125i.y), as_type<float>(R6i.y)));
PS1i = as_type<int>(mul_nonIEEE(as_type<float>(R125i.y), as_type<float>(R7i.x)));
// 6
backupReg0i = R123i.y;
backupReg1i = R127i.z;
R123i.x = as_type<int>(mul_nonIEEE(as_type<float>(R1i.y),as_type<float>(R6i.y)) + as_type<float>(R4i.y));
R123i.y = as_type<int>(mul_nonIEEE(as_type<float>(R126i.w),as_type<float>(R126i.w)) + as_type<float>(PV1iz));
R127i.z = as_type<int>(mul_nonIEEE(as_type<float>(R10i.x),as_type<float>(PV1ix)) + as_type<float>(backupReg0i));
R127i.w = as_type<int>(mul_nonIEEE(as_type<float>(R10i.z),as_type<float>(PS1i)) + as_type<float>(R127i.w));
R4i.w = as_type<int>(mul_nonIEEE(as_type<float>(R8i.z), as_type<float>(backupReg1i)));
// 7
backupReg0i = R123i.y;
R123i.y = as_type<int>(mul_nonIEEE(as_type<float>(R10i.y),as_type<float>(R125i.w)) + as_type<float>(R123i.x));
PV1iw = as_type<int>(mul_nonIEEE(as_type<float>(R126i.y), as_type<float>(R3i.y)));
tempResultf = 1.0 / sqrt(as_type<float>(backupReg0i));
PS1i = as_type<int>(tempResultf);
// 8
R1i.x = as_type<int>(mul_nonIEEE(as_type<float>(R7i.w),as_type<float>(PV1iw)) + as_type<float>(R127i.z));
R8i.y = as_type<int>(mul_nonIEEE(as_type<float>(R8i.y),as_type<float>(PV1iw)) + as_type<float>(R127i.w));
R5i.z = as_type<int>(mul_nonIEEE(as_type<float>(R5i.z),as_type<float>(PV1iw)) + as_type<float>(R123i.y));
PV0iw = as_type<int>(mul_nonIEEE(as_type<float>(R127i.y), as_type<float>(PS1i)));
// 9
PV1iz = as_type<int>(mul_nonIEEE(as_type<float>(supportBuffer.remapped[2].z), as_type<float>(PV0iw)));
// 10
PV0iy = as_type<int>(as_type<float>(PV1iz) * as_type<float>(0x3ced9168));
PV0iy = clampFI32(PV0iy);
// 11
R123i.y = as_type<int>(mul_nonIEEE(as_type<float>(PV0iy),as_type<float>(R6i.z)) + 1.0);
// 12
R10i.x = as_type<int>(mul_nonIEEE(-(as_type<float>(R3i.w)),as_type<float>(R123i.y)) + as_type<float>(R123i.y));
// 0
R123i.x = as_type<int>(mul_nonIEEE(as_type<float>(supportBuffer.remapped[8].x),as_type<float>(R8i.w)) + as_type<float>(R0i.x));
R123i.z = as_type<int>(mul_nonIEEE(as_type<float>(supportBuffer.remapped[8].z),as_type<float>(R8i.w)) + as_type<float>(R0i.z));
R123i.w = as_type<int>(mul_nonIEEE(as_type<float>(supportBuffer.remapped[8].y),as_type<float>(R8i.w)) + as_type<float>(R0i.y));
// 1
PV1iy = as_type<int>(mul_nonIEEE(as_type<float>(R123i.z), as_type<float>(R10i.x)));
PV1iz = as_type<int>(mul_nonIEEE(as_type<float>(R123i.w), as_type<float>(R10i.x)));
PV1iw = as_type<int>(mul_nonIEEE(as_type<float>(R123i.x), as_type<float>(R10i.x)));
// 2
PV0ix = as_type<int>(mul_nonIEEE(as_type<float>(PV1iz), as_type<float>(R0i.w)));
PV0iy = as_type<int>(mul_nonIEEE(as_type<float>(PV1iw), as_type<float>(R3i.z)));
PV0iw = as_type<int>(mul_nonIEEE(as_type<float>(PV1iy), as_type<float>(R6i.w)));
// 3
R123i.x = as_type<int>(as_type<float>(PV0iw) * as_type<float>(0x3f6e896b) + as_type<float>(0x3a011b1e));
R123i.y = as_type<int>(as_type<float>(PV0ix) * as_type<float>(0x3f6e896b) + as_type<float>(0x3a011b1e));
R123i.z = as_type<int>(as_type<float>(PV0iy) * as_type<float>(0x3f6e896b) + as_type<float>(0x3a011b1e));
// 4
PV0iy = as_type<int>(as_type<float>(R8i.y) + as_type<float>(R123i.x));
PV0iz = as_type<int>(as_type<float>(R5i.z) + as_type<float>(R123i.y));
PV0iw = as_type<int>(as_type<float>(R1i.x) + as_type<float>(R123i.z));
// 5
R4i.x = as_type<int>(mul_nonIEEE(as_type<float>(R13i.z),as_type<float>(PV0iw)) + as_type<float>(R11i.x));
R4i.y = as_type<int>(mul_nonIEEE(as_type<float>(R13i.z),as_type<float>(PV0iz)) + as_type<float>(R11i.y));
R4i.z = as_type<int>(mul_nonIEEE(as_type<float>(R13i.z),as_type<float>(PV0iy)) + as_type<float>(R11i.z));
// export
out.passPixelColor0 = as_type<float4>(float4(as_type<float>(R4i.x), as_type<float>(R4i.y), as_type<float>(R4i.z), as_type<float>(R4i.w)));
return out;
}

View file

@ -0,0 +1,69 @@
// shader cb0e6e8cbec4502a
#include <metal_stdlib>
using namespace metal;
#define SET_POSITION(_v) out.position = _v; out.position.z = (out.position.z + out.position.w) / 2.0
// start of shader inputs/outputs, predetermined by Cemu. Do not touch
struct SupportBuffer {
float2 fragCoordScale;
};
#define GET_FRAGCOORD() float4(in.position.xy * supportBuffer.fragCoordScale.xy, in.position.z, 1.0 / in.position.w)
struct FragmentIn {
float4 position [[position]];
float4 passParameterSem3 [[user(locn0)]];
};
struct FragmentOut {
float4 passPixelColor0 [[color(0)]];
};
// end of shader inputs/outputs
template<typename TextureT, typename CoordT>
float sampleCompareEmulate(TextureT tex, sampler samplr, CoordT coord, float compareValue) {
return compareValue < tex.sample(samplr, coord).x ? 1.0 : 0.0;
}
template<typename TextureT, typename CoordT>
float2 textureCalculateLod(TextureT tex, sampler samplr, CoordT coord) {
float lod = tex.calculate_unclamped_lod(samplr, coord);
return float2(floor(lod), fract(lod));
}
int clampFI32(int v)
{
if( v == 0x7FFFFFFF )
return as_type<int>(1.0);
else if( v == 0xFFFFFFFF )
return as_type<int>(0.0);
return as_type<int>(clamp(as_type<float>(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; }
#define disableDOF $disableDOF
#if (disableDOF == 0) // Keep DOF Enabled
fragment FragmentOut main0(FragmentIn in [[stage_in]], float2 pointCoord [[point_coord]], bool frontFacing [[front_facing]], constant SupportBuffer& supportBuffer [[buffer(0)]], texture2d<float> tex0 [[texture(0)]], sampler samplr0 [[sampler(0)]]) {
int radius = int(rint(2.0 / supportBuffer.fragCoordScale.y));
float2 resolution = float2(tex0.get_width(), tex0.get_height());
float2 center = (in.passParameterSem3.xy + in.passParameterSem3.zw) / 2.0;
float3 result = float3(0.0);
float count = 0.0;
for (int x = 1 - radius; x <= radius - 1; x += 2) {
for (int y = 1 - radius; y <= radius - 1; y += 2) {
if (length(float2(x, y)) <= radius) {
result += tex0.sample(samplr0, center + float2(x, y) / resolution).xyz;
count += 1.0;
}
}
}
return {float4(result / count, 1.0)};
}
#elif (disableDOF == 1) // Disable DOF
fragment FragmentOut main0(FragmentIn in [[stage_in]], float2 pointCoord [[point_coord]], bool frontFacing [[front_facing]], constant SupportBuffer& supportBuffer [[buffer(0)]], texture2d<float> tex0 [[texture(0)]], sampler samplr0 [[sampler(0)]]) {
return {tex0.sample(samplr0, in.passParameterSem3)};
}
#endif

View file

@ -1,4 +1,4 @@
#version 420
#version 430
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN
@ -207,7 +207,7 @@ passPixelColor0 = vec4(R2f.x, R2f.y, R2f.z, R2f.w);
#define FXAA_PC 1
#define FXAA_GLSL_130 1
#define FXAA_QUALITY_PRESET 14
#define FXAA_QUALITY_PRESET 39
#define FXAA_GREEN_AS_LUMA 1
#define FXAA_DISCARD 0
@ -1093,4 +1093,4 @@ void main()
passPixelColor0 = FxaaPixelShader(passParameterSem2.xy, textureUnitPS0, RcpFrame, Subpix, EdgeThreshold, EdgeThresholdMin);
}
#endif
#endif

View file

@ -29,6 +29,10 @@ uniform vec4 uf_fragCoordScale;
uniform float uf_alphaTestRef;
uniform vec2 uf_fragCoordScale;
#endif
#define AAENABLE $AAEnable
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0;
layout(location = 0) in vec4 passParameterSem129;
layout(location = 1) in vec4 passParameterSem128;
@ -68,22 +72,34 @@ ivec4 ARi = ivec4(0);
bool predResult = true;
vec3 cubeMapSTM;
int cubeMapFaceId;
R0i = floatBitsToInt(passParameterSem129);
#if (AAENABLE == 1)
R0i = floatBitsToInt(passParameterSem129);
#endif
R1i = floatBitsToInt(passParameterSem128);
R5i.xyz = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R1i.zw)).xyz);
R6i.xyz = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R1i.xy)).xyz);
ivec2 resolution = textureSize(textureUnitPS0,0);
float iresX = float(resolution.x)/float(1280);
float iresY = float(resolution.y)/float(720);
#if (AAENABLE == 1)
ivec2 resolution = textureSize(textureUnitPS0,0);
float iresX = float(resolution.x)/float(1280);
float iresY = float(resolution.y)/float(720);
#endif
// 0
backupReg0i = R0i.y;
backupReg1i = R0i.x;
PV0i.x = 0;
PV0i.y = floatBitsToInt(intBitsToFloat(backupReg0i) / iresY);
#if (AAENABLE == 1)
PV0i.y = floatBitsToInt(intBitsToFloat(backupReg0i) / iresY);
#else
PV0i.y = floatBitsToInt(intBitsToFloat(backupReg0i) * 1.0);
#endif
PV0i.z = 0;
R127i.w = floatBitsToInt(intBitsToFloat(backupReg1i) / iresX);
#if (AAENABLE == 1)
R127i.w = floatBitsToInt(intBitsToFloat(backupReg1i) / iresX);
#else
R127i.w = floatBitsToInt(intBitsToFloat(backupReg1i) * 1.0);
#endif
PV0i.w = R127i.w;
R8i.w = 0x3f800000;
PS0i = R8i.w;

View file

@ -1,83 +1,90 @@
[Definition]
titleIds = 0005000010150300,0005000010152A00,0005000010152B00
name = Resolution
path = "Dr. Luigi/Graphics/Resolution"
description = Changes the resolution of the game. Anti-aliasing is disabled by default. Made by M&&M.
version = 4
name = Graphics Settings
path = "Dr. Luigi/Graphics"
description = Changes the resolution of the game and Enable/Disable the game's Anti-Aliasing.|Made by M&&M.
#Credits: M&&M
version = 6
[Preset]
name = 1280x720 (Default)
[Default]
$width = 1280
$height = 720
$gameWidth = 1280
$gameHeight = 720
$AAEnable:int = 1
# Performance
[Preset]
category = Resolution
name = 640x360
$width = 640
$height = 360
$gameWidth = 1280
$gameHeight = 720
[Preset]
category = Resolution
name = 960x540
$width = 960
$height = 540
$gameWidth = 1280
$gameHeight = 720
[Preset]
category = Resolution
name = 1280x720 (Default)
default = 1
# Common HD Resolutions
[Preset]
category = Resolution
name = 1600x900
$width = 1600
$height = 900
$gameWidth = 1280
$gameHeight = 720
[Preset]
category = Resolution
name = 1920x1080
$width = 1920
$height = 1080
$gameWidth = 1280
$gameHeight = 720
[Preset]
category = Resolution
name = 2560x1440
$width = 2560
$height = 1440
$gameWidth = 1280
$gameHeight = 720
[Preset]
category = Resolution
name = 3200x1800
$width = 3200
$height = 1800
$gameWidth = 1280
$gameHeight = 720
[Preset]
category = Resolution
name = 3840x2160
$width = 3840
$height = 2160
$gameWidth = 1280
$gameHeight = 720
[Preset]
category = Resolution
name = 5120x2880
$width = 5120
$height = 2880
$gameWidth = 1280
$gameHeight = 720
[Preset]
category = Resolution
name = 7680x4320
$width = 7680
$height = 4320
$gameWidth = 1280
$gameHeight = 720
[Preset]
category = Anti-Aliasing
name = Enable
$AAEnable:int = 1
[Preset]
category = Anti-Aliasing
name = Disable
$AAEnable:int = 0
[TextureRedefine]
width = 1280

View file

@ -0,0 +1,197 @@
[Definition]
titleIds = 5000010101a00, 5000010101b00
name = "Resolution"
path = "Lego City Undercover/Graphics"
description = Changes the resolution of the game. Made by Ryce-Fast.
version = 5
[Default]
$width = 1280
$height = 720
$gameWidth = 1280
$gameHeight = 720
$0x031 = 0
$0x033 = 0
$0x034 = 0
$0x035 = 0
$0x431 = 0
$0x432 = 0
$0x433 = 0
$0x434 = 0
# Resolutions
[Preset]
name = 640x360
category = Resolution
$width = 640
$height = 360
$gameWidth = 1280
$gameHeight = 720
[Preset]
name = 960x540
category = Resolution
$width = 960
$height = 540
$gameWidth = 1280
$gameHeight = 720
[Preset]
name = 1280x720 (HD, Default)
category = Resolution
default = 1
[Preset]
name = 1600x900 (HD+)
category = Resolution
$width = 1600
$height = 900
$gameWidth = 1280
$gameHeight = 720
[Preset]
name = 1920x1080 (Full HD)
category = Resolution
$width = 1920
$height = 1080
$gameWidth = 1280
$gameHeight = 720
[Preset]
name = 2560x1440 (2K)
category = Resolution
$width = 2560
$height = 1440
$gameWidth = 1280
$gameHeight = 720
[Preset]
name = 3200x1800
category = Resolution
$width = 3200
$height = 1800
$gameWidth = 1280
$gameHeight = 720
[Preset]
name = 3840x2160 (4K)
category = Resolution
$width = 3840
$height = 2160
$gameWidth = 1280
$gameHeight = 720
[Preset]
name = 5120x2880
category = Resolution
$width = 5120
$height = 2880
$gameWidth = 1280
$gameHeight = 720
[Preset]
name = 7680x4320 (8K)
category = Resolution
$width = 7680
$height = 4320
$gameWidth = 1280
$gameHeight = 720
# Texture Sharpness
[Preset]
name = Normal Sharpness
category = Texture Quality
default = 1
[Preset]
name = Medium Sharpness
category = Texture Quality
$0x031 = -.5
$0x033 = -.5
$0x034 = -.5
$0x035 = -.5
$0x431 = -.5
$0x432 = -.5
$0x433 = -.5
$0x434 = -.5
[Preset]
name = High Sharpness
category = Texture Quality
$0x031 = -1
$0x033 = -1
$0x034 = -1
$0x035 = -1
$0x431 = -1
$0x432 = -1
$0x433 = -1
$0x434 = -1
[Preset]
name = Ultra Sharpness
category = Texture Quality
$0x031 = -4
$0x033 = -4
$0x034 = -4
$0x035 = -4
$0x431 = -4
$0x432 = -4
$0x433 = -4
$0x434 = -4
[TextureRedefine]
width = 1280
height = 720
tileModesExcluded = 0x001 # For Video Playback
overwriteWidth = ($width/$gameWidth) * 1280
overwriteHeight = ($height/$gameHeight) * 720
#[TextureRedefine]
#width = 864
#height = 480
#formats = 0x01a
#overwriteWidth = ($width/$gameWidth) * 864
#overwriteHeight = ($height/$gameHeight) * 480
[TextureRedefine]
width = 640
height = 368
overwriteWidth = ($width/$gameWidth) * 640
overwriteHeight = ($height/$gameHeight) * 368
[TextureRedefine]
formats = 0x031
overwriteRelativeLodBias = $0x031
[TextureRedefine]
formats = 0x033
overwriteRelativeLodBias = $0x033
[TextureRedefine]
formats = 0x034
overwriteRelativeLodBias = $0x034
[TextureRedefine]
formats = 0x035
overwriteRelativeLodBias = $0x035
[TextureRedefine]
formats = 0x431
overwriteRelativeLodBias = $0x431
[TextureRedefine]
formats = 0x432
overwriteRelativeLodBias = $0x432
[TextureRedefine]
formats = 0x433
overwriteRelativeLodBias = $0x433
[TextureRedefine]
formats = 0x434
overwriteRelativeLodBias = $0x434

View file

@ -3,6 +3,7 @@ titleIds = 000500001010ec00,000500001010ed00,000500001010eb00
name = Contrasty
path = "Mario Kart 8/Enhancements/Contrasty"
description = This pack tweaks the colors and contrast to whatever preset you set it as.|You can also make your own preset by editing the Default preset in the Contrasty folder from the game's graphic packs.|Made by getdls.
#Credits: getdls
version = 6
[Default]

View file

@ -3,6 +3,7 @@ titleIds = 000500001010ec00,000500001010ed00,000500001010eb00
name = Debanding
path = "Mario Kart 8/Enhancements/Debanding"
description = Adds a debanding post processing shader to the game.|This pack can only be used with OpenGL.|Made by getdls.
#Credits: getdls
version = 6
rendererFilter = opengl

View file

@ -3,6 +3,7 @@ titleIds = 000500001010ec00,000500001010ed00,000500001010eb00
name = Remove MKTV Watermark
path = "Mario Kart 8/Enhancements/Remove MKTV Watermark"
description = Removes the MKTV watermark in the replays or highlight reel.|Made by Crementif.
#Credits: Crementif
version = 6
[TextureRedefine]

View file

@ -3,6 +3,7 @@ titleIds = 000500001010ec00,000500001010ed00,000500001010eb00
name = Graphic Options
path = "Mario Kart 8/Graphics"
description = Allows you to change the game's TV resolution, gamepad resolution, shadow quality, anti-aliasing, bloom intensity, motion blur quality, level of detail and anisotropic filtering quality.|Made by Crementif, theboy181 and M&&M.
#Credits: Crementif, theboy181, M&&M
version = 6
[Default]

View file

@ -3,4 +3,5 @@ titleIds = 000500001010ec00,000500001010ed00,000500001010eb00
name = 60FPS for 3/4 Player Splitscreen
path = "Mario Kart 8/Mods/60FPS Splitscreen"
description = Forces the game to run at 60FPS instead of 30FPS in 3/4 player splitscreen.|In those splitscreen modes, it normally alternates which screen is being updated each frame. This mod forces it to draw all the screens every frame instead.|Made by theboy181 and Xalphenos.
#Credits: theboy181, Xalphenos
version = 6

View file

@ -3,4 +3,5 @@ titleIds = 000500001010ec00,000500001010ed00,000500001010eb00
name = Remove All HUD Elements
path = "Mario Kart 8/Mods/No HUD (breaks menus)"
description = Disables any HUD while racing.|Breaks many of the menu's so don't use this if you just want to play the game.||Made by Crementif.
#Credits: Crementif
version = 6

View file

@ -3,6 +3,7 @@ titleIds = 000500001010ec00,000500001010ed00,000500001010eb00
name = Multiplayer network port
path = "Mario Kart 8/Workarounds/Multiplayer network port"
description = Forces peer-to-peer multiplayer to use a certain network port number, so that you can port forward it in your router.||This might help with connecting to online services, or with some 118-XXXX errors.
#Credits: ashquarky
version = 6
[Default]

View file

@ -0,0 +1,267 @@
#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 ivec4 uf_remappedPS[3];
uniform vec4 uf_fragCoordScale;
};
#else
uniform ivec4 uf_remappedPS[3];
uniform vec2 uf_fragCoordScale;
#endif
// shader 023831cdf6638473
//ps aa restore
const float resScale = (float($width)/float($gameWidth));
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; // Tex0 addr 0xf531c800 res 1920x1080x1 dim 1 tm: 4 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 0
TEXTURE_LAYOUT(3, 1, 1) uniform sampler2D textureUnitPS3; // Tex3 addr 0xf5b14800 res 480x270x1 dim 1 tm: 4 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler3 ClampX/Y/Z: 0 0 0 border: 0
layout(location = 0) in vec4 passParameterSem129;
layout(location = 1) in vec4 passParameterSem128;
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()
{
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 R123i = ivec4(0);
ivec4 R126i = ivec4(0);
ivec4 R127i = ivec4(0);
int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i;
ivec4 PV0i = ivec4(0), PV1i = ivec4(0);
int PS0i = 0, PS1i = 0;
ivec4 tempi = ivec4(0);
float tempResultf;
int tempResulti;
ivec4 ARi = ivec4(0);
bool predResult = true;
bool activeMaskStack[2];
bool activeMaskStackC[3];
activeMaskStack[0] = false;
activeMaskStackC[0] = false;
activeMaskStackC[1] = false;
activeMaskStack[0] = true;
activeMaskStackC[0] = true;
activeMaskStackC[1] = true;
vec3 cubeMapSTM;
int cubeMapFaceId;
R0i = floatBitsToInt(passParameterSem129);
R1i = floatBitsToInt(passParameterSem128);
if( activeMaskStackC[1] == true ) {
R2i.w = floatBitsToInt(textureLod(textureUnitPS0, intBitsToFloat(R0i.zy),0.0).y);
R2i.z = floatBitsToInt(textureLod(textureUnitPS0, intBitsToFloat(R0i.xw),0.0).y);
R2i.y = floatBitsToInt(textureLod(textureUnitPS0, intBitsToFloat(R0i.xy),0.0).y);
R0i.x = floatBitsToInt(textureLod(textureUnitPS0, intBitsToFloat(R0i.zw),0.0).y);
R3i.xyzw = floatBitsToInt(textureLod(textureUnitPS0, intBitsToFloat(R1i.xy),0.0).xyzw);
}
if( activeMaskStackC[1] == true ) {
activeMaskStack[1] = activeMaskStack[0];
activeMaskStackC[2] = activeMaskStackC[1];
// 0
R127i.x = floatBitsToInt(max(intBitsToFloat(R2i.z), intBitsToFloat(R2i.y)));
R127i.y = floatBitsToInt(min(intBitsToFloat(R2i.z), intBitsToFloat(R2i.y)));
PV0i.w = floatBitsToInt(intBitsToFloat(R2i.w) + intBitsToFloat(0x3b2aaaab));
R0i.y = 0;
PS0i = R0i.y;
// 1
backupReg0i = R0i.x;
backupReg0i = R0i.x;
PV1i.x = floatBitsToInt(min(intBitsToFloat(PV0i.w), intBitsToFloat(backupReg0i)));
PV1i.y = floatBitsToInt(-(intBitsToFloat(PV0i.w)) + intBitsToFloat(R2i.z));
PV1i.z = floatBitsToInt(max(intBitsToFloat(PV0i.w), intBitsToFloat(backupReg0i)));
// 2
PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.y) + -(intBitsToFloat(R2i.y)));
R5i.z = floatBitsToInt(min(intBitsToFloat(R127i.y), intBitsToFloat(PV1i.x)));
PV0i.z = R5i.z;
PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(R2i.y));
R6i.z = floatBitsToInt(max(intBitsToFloat(R127i.x), intBitsToFloat(PV1i.z)));
PS0i = R6i.z;
// 3
backupReg0i = R0i.x;
backupReg0i = R0i.x;
PV1i.x = floatBitsToInt(max(intBitsToFloat(R3i.y), intBitsToFloat(PS0i)));
PV1i.y = floatBitsToInt(min(intBitsToFloat(R3i.y), intBitsToFloat(PV0i.z)));
R0i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + -(intBitsToFloat(backupReg0i)));
PV1i.w = floatBitsToInt(intBitsToFloat(PS0i) * intBitsToFloat(0x3e000000));
R0i.x = floatBitsToInt(intBitsToFloat(PV0i.y) + intBitsToFloat(backupReg0i));
PS1i = R0i.x;
// 4
PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.y)) + intBitsToFloat(PV1i.x));
PV0i.z = floatBitsToInt(max(intBitsToFloat(PV1i.w), intBitsToFloat(0x3d4ccccd)));
// 5
PV1i.x = ((intBitsToFloat(PV0i.z) > intBitsToFloat(PV0i.y))?int(0xFFFFFFFF):int(0x0));
// 6
R2i.x = ((PV1i.x == 0)?(0):(R3i.x));
R2i.y = ((PV1i.x == 0)?(0):(R3i.y));
R2i.z = ((PV1i.x == 0)?(0):(R3i.z));
R2i.w = ((PV1i.x == 0)?(0):(R3i.w));
R0i.w = ((PV1i.x == 0)?(0):(0x3f800000));
PS0i = R0i.w;
// 7
predResult = (R0i.w == 0);
activeMaskStack[1] = predResult;
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
}
else {
activeMaskStack[1] = false;
activeMaskStackC[2] = false;
}
if( activeMaskStackC[2] == true ) {
// 0
backupReg0i = R0i.x;
backupReg0i = R0i.x;
backupReg1i = R0i.y;
backupReg1i = R0i.y;
backupReg2i = R0i.z;
backupReg2i = R0i.z;
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),intBitsToFloat(backupReg2i),-0.0),vec4(intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),intBitsToFloat(backupReg2i),0.0)));
PV0i.x = tempi.x;
PV0i.y = tempi.x;
PV0i.z = tempi.x;
PV0i.w = tempi.x;
// 1
tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.x));
PS1i = floatBitsToInt(tempResultf);
// 2
R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), intBitsToFloat(PS1i)));
PV0i.z = R127i.z;
R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.x), intBitsToFloat(PS1i)));
PV0i.w = R127i.w;
// 3
PV1i.x = floatBitsToInt(max(intBitsToFloat(PV0i.z), -(intBitsToFloat(PV0i.z))));
PV1i.y = floatBitsToInt(max(intBitsToFloat(PV0i.w), -(intBitsToFloat(PV0i.w))));
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(uf_remappedPS[0].z) / resScale)); /////////
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(uf_remappedPS[0].w) / resScale)); /////////////
// 4
R0i.x = floatBitsToInt(intBitsToFloat(R1i.x) + -(intBitsToFloat(PV1i.z)));
R0i.y = floatBitsToInt(intBitsToFloat(R1i.y) + -(intBitsToFloat(PV1i.w)));
R2i.z = floatBitsToInt(intBitsToFloat(R1i.x) + intBitsToFloat(PV1i.z));
PV0i.w = floatBitsToInt(min(intBitsToFloat(PV1i.y), intBitsToFloat(PV1i.x)));
R2i.y = floatBitsToInt(intBitsToFloat(R1i.y) + intBitsToFloat(PV1i.w));
PS0i = R2i.y;
// 5
PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) * intBitsToFloat(0x41000000) / resScale); //////////
// 6
PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.z));
// 7
PV1i.x = floatBitsToInt(intBitsToFloat(R127i.w) * intBitsToFloat(PS0i));
PV1i.w = floatBitsToInt(intBitsToFloat(R127i.z) * intBitsToFloat(PS0i));
// 8
PV0i.y = floatBitsToInt(max(intBitsToFloat(PV1i.w), intBitsToFloat(0xc0000000) / resScale)); //////////
PV0i.z = floatBitsToInt(max(intBitsToFloat(PV1i.x), intBitsToFloat(0xc0000000) / resScale)); //////////
// 9
PV1i.x = floatBitsToInt(min(intBitsToFloat(PV0i.z), 2.0));
PV1i.w = floatBitsToInt(min(intBitsToFloat(PV0i.y), 2.0));
// 10
PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(uf_remappedPS[1].x) / resScale)); /////////////////
PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(uf_remappedPS[1].y) / resScale)); ///////////////
// 11
R3i.x = floatBitsToInt(intBitsToFloat(R1i.x) + -(intBitsToFloat(PV0i.z)));
R3i.y = floatBitsToInt(intBitsToFloat(R1i.y) + -(intBitsToFloat(PV0i.w)));
R0i.z = floatBitsToInt(intBitsToFloat(R1i.x) + intBitsToFloat(PV0i.z));
R0i.w = floatBitsToInt(intBitsToFloat(R1i.y) + intBitsToFloat(PV0i.w));
}
if( activeMaskStackC[2] == true ) {
R4i.xyzw = floatBitsToInt(textureLod(textureUnitPS0, intBitsToFloat(R0i.xy),0.0).xyzw);
R2i.xyzw = floatBitsToInt(textureLod(textureUnitPS0, intBitsToFloat(R2i.zy),0.0).xyzw);
R3i.xyzw = floatBitsToInt(textureLod(textureUnitPS0, intBitsToFloat(R3i.xy),0.0).xyzw);
R0i.xyzw = floatBitsToInt(textureLod(textureUnitPS0, intBitsToFloat(R0i.zw),0.0).xyzw);
}
if( activeMaskStackC[2] == true ) {
// 0
R126i.x = floatBitsToInt(intBitsToFloat(R4i.z) + intBitsToFloat(R2i.z));
R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) / 2.0);
R126i.y = floatBitsToInt(intBitsToFloat(R4i.y) + intBitsToFloat(R2i.y));
R126i.y = floatBitsToInt(intBitsToFloat(R126i.y) / 2.0);
R126i.z = floatBitsToInt(intBitsToFloat(R4i.x) + intBitsToFloat(R2i.x));
R126i.z = floatBitsToInt(intBitsToFloat(R126i.z) / 2.0);
R126i.w = floatBitsToInt(intBitsToFloat(R4i.w) + intBitsToFloat(R2i.w));
R126i.w = floatBitsToInt(intBitsToFloat(R126i.w) / 2.0);
// 1
backupReg0i = R0i.y;
backupReg1i = R0i.x;
backupReg2i = R0i.w;
PV1i.x = floatBitsToInt(intBitsToFloat(R3i.z) + intBitsToFloat(R0i.z));
PV1i.x = floatBitsToInt(intBitsToFloat(PV1i.x) / 2.0);
PV1i.y = floatBitsToInt(intBitsToFloat(R3i.y) + intBitsToFloat(backupReg0i));
PV1i.y = floatBitsToInt(intBitsToFloat(PV1i.y) / 2.0);
PV1i.z = floatBitsToInt(intBitsToFloat(R3i.x) + intBitsToFloat(backupReg1i));
PV1i.z = floatBitsToInt(intBitsToFloat(PV1i.z) / 2.0);
PV1i.w = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(backupReg2i));
PV1i.w = floatBitsToInt(intBitsToFloat(PV1i.w) / 2.0);
// 2
R127i.x = floatBitsToInt(intBitsToFloat(R126i.x) + intBitsToFloat(PV1i.x));
R127i.x = floatBitsToInt(intBitsToFloat(R127i.x) / 2.0);
R127i.y = floatBitsToInt(intBitsToFloat(R126i.y) + intBitsToFloat(PV1i.y));
R127i.y = floatBitsToInt(intBitsToFloat(R127i.y) / 2.0);
PV0i.y = R127i.y;
R127i.z = floatBitsToInt(intBitsToFloat(R126i.z) + intBitsToFloat(PV1i.z));
R127i.z = floatBitsToInt(intBitsToFloat(R127i.z) / 2.0);
R127i.w = floatBitsToInt(intBitsToFloat(R126i.w) + intBitsToFloat(PV1i.w));
R127i.w = floatBitsToInt(intBitsToFloat(R127i.w) / 2.0);
// 3
PV1i.y = ((intBitsToFloat(PV0i.y) > intBitsToFloat(R6i.z))?int(0xFFFFFFFF):int(0x0));
PV1i.z = ((intBitsToFloat(R5i.z) > intBitsToFloat(PV0i.y))?int(0xFFFFFFFF):int(0x0));
// 4
R123i.x = ((PV1i.z == 0)?(PV1i.y):(int(-1)));
PV0i.x = R123i.x;
// 5
R2i.x = ((PV0i.x == 0)?(R127i.z):(R126i.z));
R2i.y = ((PV0i.x == 0)?(R127i.y):(R126i.y));
R2i.z = ((PV0i.x == 0)?(R127i.x):(R126i.x));
R2i.w = ((PV0i.x == 0)?(R127i.w):(R126i.w));
}
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
if( activeMaskStackC[1] == true ) {
R1i.xyzw = floatBitsToInt(texture(textureUnitPS3, intBitsToFloat(R1i.zw)).xyzw);
}
if( activeMaskStackC[1] == true ) {
// 0
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), intBitsToFloat(R1i.w)));
PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(R1i.w)));
PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(R1i.w)));
PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(R1i.w)));
// 1
R1i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(uf_remappedPS[2].x)) + intBitsToFloat(R2i.x)));
R1i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(uf_remappedPS[2].x)) + intBitsToFloat(R2i.y)));
R1i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(uf_remappedPS[2].x)) + intBitsToFloat(R2i.z)));
R1i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(uf_remappedPS[2].x)) + intBitsToFloat(R2i.w)));
}
// export
passPixelColor0 = vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.w));
}

View file

@ -0,0 +1,101 @@
#version 430
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#extension GL_ARB_shading_language_packing : 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 gl_VertexID gl_VertexIndex
#define gl_InstanceID gl_InstanceIndex
#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0
#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 SET_POSITION(_v) gl_Position = _v
#endif
#ifdef VULKAN
layout(set = 0, binding = 0) uniform ufBlock
{
uniform ivec4 uf_remappedVS[1];
uniform vec4 uf_windowSpaceToClipSpaceTransform; ///////////
};
#else
uniform ivec4 uf_remappedVS[1];
uniform vec2 uf_windowSpaceToClipSpaceTransform; ///////////
#endif
// shader 24d99fe8b4e5f576
//AA restore
const float resScale = (float($width)/float($gameWidth));
ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0;
ATTR_LAYOUT(0, 1) in uvec4 attrDataSem1;
out gl_PerVertex
{
vec4 gl_Position;
float gl_PointSize; ////////////////
};
layout(location = 0) out vec4 passParameterSem129;
layout(location = 1) out vec4 passParameterSem128;
// 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);
uvec4 attrDecoder;
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 = floatBitsToInt(ivec4(gl_VertexID, 0, 0, gl_InstanceID));
attrDecoder.xyz = attrDataSem0.xyz;
attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24));
attrDecoder.w = 0;
R1f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(int(attrDecoder.z)), intBitsToFloat(floatBitsToInt(1.0)));
attrDecoder.xy = attrDataSem1.xy;
attrDecoder.xy = (attrDecoder.xy>>24)|((attrDecoder.xy>>8)&0xFF00)|((attrDecoder.xy<<8)&0xFF0000)|((attrDecoder.xy<<24));
attrDecoder.z = 0;
attrDecoder.w = 0;
R2f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(floatBitsToInt(0.0)), intBitsToFloat(floatBitsToInt(1.0)));
// 0
PV0f.x = R2f.y + intBitsToFloat(uf_remappedVS[0].y)/ resScale; //////////////////
PV0f.y = R2f.x + intBitsToFloat(uf_remappedVS[0].x)/ resScale; ////////////////
R1f.w = 1.0;
R0f.x = R2f.x + -(intBitsToFloat(uf_remappedVS[0].x)/ resScale); ////////////////////////
PS0f = R0f.x;
// 1
R0f.y = R2f.y + -(intBitsToFloat(uf_remappedVS[0].y)/ resScale); ////////////////
R0f.z = PV0f.y;
R0f.w = PV0f.x;
// export
gl_Position = vec4(R1f.x, R1f.y, R1f.z, R1f.w);
// export
passParameterSem129 = vec4(R0f.x, R0f.y, R0f.z, R0f.w);
// export
passParameterSem128 = vec4(R2f.x, R2f.y, R2f.x, R2f.y);
}

View file

@ -0,0 +1,141 @@
#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 = 1) uniform ufBlock
{
uniform ivec4 uf_remappedPS[1];
uniform vec4 uf_fragCoordScale;
};
#else
uniform ivec4 uf_remappedPS[1];
uniform vec2 uf_fragCoordScale;
#endif
// shader 294904d1771460cf
//vertical blur
const float resScale = (float($width)/float($gameWidth));
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; // Tex0 addr 0xf5b14800 res 480x270x1 dim 1 tm: 4 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 0
layout(location = 0) in vec4 passParameterSem128;
layout(location = 0) out vec4 passPixelColor0;
// 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 R123f = vec4(0.0);
vec4 R127f = vec4(0.0);
float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f;
vec4 PV0f = vec4(0.0), PV1f = vec4(0.0);
float PS0f = 0.0, PS1f = 0.0;
vec4 tempf = vec4(0.0);
float tempResultf;
int tempResulti;
ivec4 ARi = ivec4(0);
bool predResult = true;
vec3 cubeMapSTM;
int cubeMapFaceId;
R0f = passParameterSem128;
R4f.xyzw = (texture(textureUnitPS0, R0f.xy).xyzw);
// 0
R127f.x = intBitsToFloat(uf_remappedPS[0].x) * intBitsToFloat(0x404ec4ec) / resScale; ////////////
PV0f.x = R127f.x;
PV0f.y = intBitsToFloat(uf_remappedPS[0].x) * intBitsToFloat(0x3fb13b14) / resScale; //////////
R127f.z = 0.0;
PV0f.z = R127f.z;
// 1
R1f.x = PV0f.z + R0f.x;
PV1f.y = PV0f.x;
PV1f.z = -(PV0f.y);
PV1f.w = PV0f.y;
R2f.x = PV0f.z + R0f.x;
PS1f = R2f.x;
// 2
R3f.x = R127f.z + R0f.x;
R1f.y = PV1f.w + R0f.y;
R2f.z = PV1f.z + R0f.y;
R3f.w = PV1f.y + R0f.y;
PS0f = -(R127f.x);
// 3
backupReg0f = R0f.x;
backupReg1f = R0f.y;
R0f.x = R127f.z + backupReg0f;
R0f.y = PS0f + backupReg1f;
R1f.xyzw = (texture(textureUnitPS0, R1f.xy).xyzw);
R2f.xyzw = (texture(textureUnitPS0, R2f.xz).xyzw);
R3f.xyzw = (texture(textureUnitPS0, R3f.xw).xyzw);
R0f.xyzw = (texture(textureUnitPS0, R0f.xy).xyzw);
// 0
PV0f.x = R1f.z * intBitsToFloat(0x3ea1e718);
PV0f.y = R1f.y * intBitsToFloat(0x3ea1e718);
PV0f.z = R1f.x * intBitsToFloat(0x3ea1e718);
PV0f.w = R1f.w * intBitsToFloat(0x3ea1e718);
// 1
R123f.x = (R4f.z * intBitsToFloat(0x3e6879c6) + PV0f.x);
PV1f.x = R123f.x;
R123f.y = (R4f.y * intBitsToFloat(0x3e6879c6) + PV0f.y);
PV1f.y = R123f.y;
R123f.z = (R4f.x * intBitsToFloat(0x3e6879c6) + PV0f.z);
PV1f.z = R123f.z;
R123f.w = (R4f.w * intBitsToFloat(0x3e6879c6) + PV0f.w);
PV1f.w = R123f.w;
// 2
R123f.x = (R2f.w * intBitsToFloat(0x3ea1e718) + PV1f.w);
PV0f.x = R123f.x;
R123f.y = (R2f.z * intBitsToFloat(0x3ea1e718) + PV1f.x);
PV0f.y = R123f.y;
R123f.z = (R2f.y * intBitsToFloat(0x3ea1e718) + PV1f.y);
PV0f.z = R123f.z;
R123f.w = (R2f.x * intBitsToFloat(0x3ea1e718) + PV1f.z);
PV0f.w = R123f.w;
// 3
R123f.x = (R3f.z * intBitsToFloat(0x3d8fe9dc) + PV0f.y);
PV1f.x = R123f.x;
R123f.y = (R3f.y * intBitsToFloat(0x3d8fe9dc) + PV0f.z);
PV1f.y = R123f.y;
R123f.z = (R3f.x * intBitsToFloat(0x3d8fe9dc) + PV0f.w);
PV1f.z = R123f.z;
R123f.w = (R3f.w * intBitsToFloat(0x3d8fe9dc) + PV0f.x);
PV1f.w = R123f.w;
// 4
backupReg0f = R0f.x;
backupReg1f = R0f.y;
backupReg2f = R0f.z;
backupReg3f = R0f.w;
R0f.x = (backupReg0f * intBitsToFloat(0x3d8fe9dc) + PV1f.z);
R0f.y = (backupReg1f * intBitsToFloat(0x3d8fe9dc) + PV1f.y);
R0f.z = (backupReg2f * intBitsToFloat(0x3d8fe9dc) + PV1f.x);
R0f.w = (backupReg3f * intBitsToFloat(0x3d8fe9dc) + PV1f.w);
// export
passPixelColor0 = vec4(R0f.x, R0f.y, R0f.z, R0f.w);
}

View file

@ -0,0 +1,141 @@
#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 = 1) uniform ufBlock
{
uniform ivec4 uf_remappedPS[1];
uniform vec4 uf_fragCoordScale;
};
#else
uniform ivec4 uf_remappedPS[1];
uniform vec2 uf_fragCoordScale;
#endif
// shader 8fdd009324e987ee
//horizontal blur
const float resScale = (float($width)/float($gameWidth));
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf5b94000 res 480x270x1 dim 1 tm: 4 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 0
layout(location = 0) in vec4 passParameterSem128;
layout(location = 0) out vec4 passPixelColor0;
// 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 R123f = vec4(0.0);
vec4 R126f = vec4(0.0);
vec4 R127f = vec4(0.0);
float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f;
vec4 PV0f = vec4(0.0), PV1f = vec4(0.0);
float PS0f = 0.0, PS1f = 0.0;
vec4 tempf = vec4(0.0);
float tempResultf;
int tempResulti;
ivec4 ARi = ivec4(0);
bool predResult = true;
vec3 cubeMapSTM;
int cubeMapFaceId;
R0f = passParameterSem128;
R4f.xyzw = (texture(textureUnitPS0, R0f.xy).xyzw);
// 0
R126f.x = intBitsToFloat(uf_remappedPS[0].x) * intBitsToFloat(0x404ec4ec) / resScale; ///////////
PV0f.x = R126f.x;
PV0f.y = 0.0;
PV0f.z = 0.0;
PV0f.w = intBitsToFloat(uf_remappedPS[0].x) * intBitsToFloat(0x3fb13b14) / resScale; ///////////
R127f.x = 0.0;
PS0f = R127f.x;
// 1
R1f.x = R0f.x + PV0f.w;
R1f.y = R0f.y + PV0f.y;
R2f.z = R0f.y + PV0f.z;
PV1f.w = -(PV0f.w);
R3f.x = R0f.x + PV0f.x;
PS1f = R3f.x;
// 2
R2f.x = R0f.x + PV1f.w;
R3f.y = R0f.y + R127f.x;
PV0f.z = 0.0;
PV0f.w = -(R126f.x);
// 3
backupReg0f = R0f.x;
backupReg1f = R0f.y;
R0f.x = backupReg0f + PV0f.w;
R0f.y = backupReg1f + PV0f.z;
R1f.xyzw = (texture(textureUnitPS0, R1f.xy).xyzw);
R2f.xyzw = (texture(textureUnitPS0, R2f.xz).xyzw);
R3f.xyzw = (texture(textureUnitPS0, R3f.xy).xyzw);
R0f.xyzw = (texture(textureUnitPS0, R0f.xy).xyzw);
// 0
PV0f.x = R1f.x * intBitsToFloat(0x3ea1e718);
PV0f.y = R1f.w * intBitsToFloat(0x3ea1e718);
PV0f.z = R1f.z * intBitsToFloat(0x3ea1e718);
PV0f.w = R1f.y * intBitsToFloat(0x3ea1e718);
// 1
R123f.x = (R4f.x * intBitsToFloat(0x3e6879c6) + PV0f.x);
PV1f.x = R123f.x;
R123f.y = (R4f.w * intBitsToFloat(0x3e6879c6) + PV0f.y);
PV1f.y = R123f.y;
R123f.z = (R4f.z * intBitsToFloat(0x3e6879c6) + PV0f.z);
PV1f.z = R123f.z;
R123f.w = (R4f.y * intBitsToFloat(0x3e6879c6) + PV0f.w);
PV1f.w = R123f.w;
// 2
R123f.x = (R2f.x * intBitsToFloat(0x3ea1e718) + PV1f.x);
PV0f.x = R123f.x;
R123f.y = (R2f.w * intBitsToFloat(0x3ea1e718) + PV1f.y);
PV0f.y = R123f.y;
R123f.z = (R2f.z * intBitsToFloat(0x3ea1e718) + PV1f.z);
PV0f.z = R123f.z;
R123f.w = (R2f.y * intBitsToFloat(0x3ea1e718) + PV1f.w);
PV0f.w = R123f.w;
// 3
R123f.x = (R3f.w * intBitsToFloat(0x3d8fe9dc) + PV0f.y);
PV1f.x = R123f.x;
R123f.y = (R3f.z * intBitsToFloat(0x3d8fe9dc) + PV0f.z);
PV1f.y = R123f.y;
R123f.z = (R3f.y * intBitsToFloat(0x3d8fe9dc) + PV0f.w);
PV1f.z = R123f.z;
R123f.w = (R3f.x * intBitsToFloat(0x3d8fe9dc) + PV0f.x);
PV1f.w = R123f.w;
// 4
backupReg0f = R0f.x;
backupReg1f = R0f.y;
backupReg2f = R0f.z;
backupReg3f = R0f.w;
R0f.x = (backupReg0f * intBitsToFloat(0x3d8fe9dc) + PV1f.w);
R0f.y = (backupReg1f * intBitsToFloat(0x3d8fe9dc) + PV1f.z);
R0f.z = (backupReg2f * intBitsToFloat(0x3d8fe9dc) + PV1f.y);
R0f.w = (backupReg3f * intBitsToFloat(0x3d8fe9dc) + PV1f.x);
// export
passPixelColor0 = vec4(R0f.x, R0f.y, R0f.z, R0f.w);
}

View file

@ -0,0 +1,213 @@
[Definition]
titleIds = 00050000101DB200, 0005000010203200
name = Graphics Settings
path = "Shantae: Half-Genie Hero/Graphics"
description = Changes the game's resolution.|Setting Gamepad resolution higher than TV resolution will cause a glitch.
#Credits: getdls, Intra
version = 6
[Default]
$width = 1920
$height = 1080
$padWidth = 854
$padHeight = 480
$gameWidth = 1920
$gameHeight = 1080
$gamepadWidth = 854
$gamepadHeight = 480
# TV Resolution
[Preset]
category = TV Resolution
name = 320x180
$width = 320
$height = 180
[Preset]
category = TV Resolution
name = 640x360
$width = 640
$height = 360
[Preset]
category = TV Resolution
name = 854x480
$width = 854
$height = 480
[Preset]
category = TV Resolution
name = 960x540
$width = 960
$height = 540
[Preset]
category = TV Resolution
name = 1280x720
$width = 1280
$height = 720
[Preset]
category = TV Resolution
name = 1600x900
$width = 1600
$height = 900
[Preset]
category = TV Resolution
name = 1920x1080 (Default)
default = 1
[Preset]
category = TV Resolution
name = 2560x1440
$width = 2560
$height = 1440
[Preset]
category = TV Resolution
name = 3200x1800
$width = 3200
$height = 1800
[Preset]
category = TV Resolution
name = 3840x2160
$width = 3840
$height = 2160
[Preset]
category = TV Resolution
name = 5120x2880
$width = 5120
$height = 2880
[Preset]
category = TV Resolution
name = 7680x4320
$width = 7680
$height = 4320
# Gamepad Resolution
[Preset]
category = Gamepad Resolution
name = 320x180
$padWidth = 320
$padHeight = 180
[Preset]
category = Gamepad Resolution
name = 640x360
$padWidth = 640
$padHeight = 360
[Preset]
category = Gamepad Resolution
name = 854x480 (Default)
default = 1
[Preset]
category = Gamepad Resolution
name = 960x540
$padWidth = 960
$padHeight = 540
[Preset]
category = Gamepad Resolution
name = 1280x720
$padWidth = 1280
$padHeight = 720
[Preset]
category = Gamepad Resolution
name = 1600x900
$padWidth = 1600
$padHeight = 900
[Preset]
category = Gamepad Resolution
name = 1920x1080
$padWidth = 1920
$padHeight = 1080
[Preset]
category = Gamepad Resolution
name = 2560x1440
$padWidth = 2560
$padHeight = 1440
[Preset]
category = Gamepad Resolution
name = 3200x1800
$padWidth = 3200
$padHeight = 1800
[Preset]
category = Gamepad Resolution
name = 3840x2160
$padWidth = 3840
$padHeight = 2160
[Preset]
category = Gamepad Resolution
name = 5120x2880
$padWidth = 5120
$padHeight = 2880
[Preset]
category = Gamepad Resolution
name = 7680x4320
$padWidth = 7680
$padHeight = 4320
# Texture Redefines
# TV Resolution
[TextureRedefine]
width = 1920
height = 1080
#formats = 0x1a
overwriteWidth = ($width/$gameWidth) * 1920
overwriteHeight = ($height/$gameHeight) * 1080
[TextureRedefine]
width = 1920
height = 1088
#formats = 0x1a
overwriteWidth = ($width/$gameWidth) * 1920
overwriteHeight = ($height/$gameHeight) * 1088
[TextureRedefine] #q-res
width = 480
height = 270
overwriteWidth = ($width/$gameWidth) * 480
overwriteHeight = ($height/$gameHeight) * 270
[TextureRedefine] #q-res
width = 480
height = 272
overwriteWidth = ($width/$gameWidth) * 480
overwriteHeight = ($height/$gameHeight) * 272
# Gamepad Resolution
[TextureRedefine]
width = 864
height = 480
#formats = 0x1a
overwriteWidth = ($padWidth / $gamepadWidth) * 864
overwriteHeight = ($padHeight / $gamepadHeight) * 480
[TextureRedefine]
width = 854
height = 480
#formats = 0x1a
overwriteWidth = ($padWidth / $gamepadWidth) * 854
overwriteHeight = ($padHeight / $gamepadHeight) * 480
#version 2:
#https://github.com/cemu-project/cemu_graphic_packs/blob/939a478799c13c5ed03e8decbf952f2a7ad02366/Source/ShantaeHGH/rules.txt

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,4 @@
[SG_dt]
moduleMatches = 0x62CC63A5
0x02110EF4 = nop

View file

@ -2,7 +2,7 @@
titleIds = 000500001010D700,0005000010116000
name = FPS
path = "Skylanders: Giants/Mods/FPS"
description = Changes the game's FPS limit.|Running the game with a high FPS limit can result in glitches.||Made by DigitNetics and Mew00.
description = Changes the game's FPS limit. The speed of some things is tied to the frame rate.||Made by DigitNetics and Mew00. Fix for speed-up above 120 FPS by SuperSamus and Winner Nombre.
version = 7
[Default]

View file

@ -0,0 +1,21 @@
[SI_FixInfiniteFall]
moduleMatches = 0xc683642e, 0x39e9ebc6 ; 1.0.0, 1.1.0
.origin = codecave
const_stuckFallingDistanceThreshold:
.float 20*30/$targetFPS
_getStuckFallingDistanceThreshold:
lis r3, const_stuckFallingDistanceThreshold@ha
lfs f13, const_stuckFallingDistanceThreshold@l(r3)
blr
[SI_FixInfiniteFall_V1]
moduleMatches = 0xc683642e ; 1.0.0
0x022c434c = bla _getStuckFallingDistanceThreshold
[SI_FixInfiniteFall_V16]
moduleMatches = 0x39e9ebc6 ; 1.1.0
0x022c4eb0 = bla _getStuckFallingDistanceThreshold

View file

@ -2,7 +2,7 @@
titleIds = 00050000101F4D00,00050000101FB100
name = FPS
path = "Skylanders Imaginators/Mods/FPS"
description = Changes the game's dynamic FPS target. Might have bugs, especially when going above 120 FPS.||Made by Mew00.
description = Changes the game's FPS limit.||Needs to be disabled during certain sections, as it makes them impossible to complete:|- Sky Fortress: wrecking ball minigame (enemies are barely pushed)|- Golden Arcade: target shooting minigame (projectiles despawn before being able to reach some targets)|- Enchanted Elven Forest: water cannon near end of level (the splash is unable to put out the most distant fire)||Other minor issues:|- General: jump height is a little shorter, making some vertical jumps inconsistent|-Selfie mode: camera controls are too fast|- Cradle of Creation: hamster wheel rotates too fast||Made by Mew00. Fall respawn fix by SuperSamus and Winner Nombre.
version = 6
[Default]

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,4 @@
[SSA_dt]
moduleMatches = 0xC22A1809
0x021129A4 = nop

View file

@ -2,7 +2,7 @@
titleIds = 0005000010142d00
name = FPS V2
path = "Skylanders: Spyro's Adventure/Mods/FPS"
description = Changes the game's dynamic FPS target. Might increase the chance of issues with scanning figures.||Made by Mr.Blinker
description = Changes the game's FPS limit. The speed of some things is tied to the frame rate.||Made by Mr.Blinker. Fix for speed-up above 120 FPS by SuperSamus and Winner Nombre.
version = 6
[Default]

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

@ -2,7 +2,7 @@
titleIds = 0005000010139200,0005000010140400
name = FPS
path = "Skylanders Swap Force/Mods/FPS"
description = Changes the game's dynamic FPS target. Might have bugs, especially when going above 120 FPS.||Made by Mew00 for Imaginators, added by TheSkyDude134 for Swap Force. Infinite fall fix by SuperSamus and Winner Nombre.
description = Changes the game's FPS limit. Might have bugs, especially when going above 120 FPS.||Made by Mew00 for Imaginators, added by TheSkyDude134 for Swap Force. Infinite fall fix by SuperSamus and Winner Nombre.
version = 6
[Default]

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

@ -0,0 +1,14 @@
[tfbgame_cafe16]
moduleMatches = 0x2a14bb42
0x10006864 = .float $width/$height #Main aspect ratio
0x10006860 = .float $hudY
0x1000685c = .float $hudX
0x1005d808 = .float $fov
[tfbgame_cafe0]
moduleMatches = 0x321d97f0
0x10006864 = .float $width/$height #Main aspect ratio
0x10006860 = .float $hudY
0x1000685c = .float $hudX
0x1005d808 = .float $fov

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.
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]
@ -11,13 +11,17 @@ $height = 720
$gameWidth = 1280
$gameHeight = 720
$shadowRes = 1
$hudY = 720
$hudX = 1280
$fov = 0.017453292
# Resolution
[Preset]
category = Resolution
name = 1280x720 (Default)
name = 1024x576 (Default)
$width = 1024
$height = 576
[Preset]
category = Resolution
@ -31,6 +35,12 @@ name = 960x540
$width = 960
$height = 540
[Preset]
category = Resolution
name = 1280x720
$width = 1280
$height = 720
[Preset]
category = Resolution
name = 1600x900
@ -73,8 +83,113 @@ name = 7680x4320
$width = 7680
$height = 4320
[Preset]
category = Resolution
name = 2560x1080(21:9)
$width = 2560
$height = 1080
$hudY = 720
$hudX = 1720
$fov = 0.0159
# Shadow Quality
[Preset]
category = Resolution
name = 3440x1440(21:9)
$width = 3440
$height = 1440
$hudY = 720
$hudX = 1720
$fov = 0.0159
[Preset]
category = Resolution
name = 5120x2160(21:9)
$width = 5120
$height = 2160
$hudY = 720
$hudX = 1720
$fov = 0.0159
[Preset]
category = Resolution
name = 3840x1080(32:9)(broken shadows)
$width = 3840
$height = 1080
$hudY = 720
$hudX = 2560
$fov = 0.013
[Preset]
category = Resolution
name = 5120x1440(32:9)(broken shadows)
$width = 5120
$height = 1440
$hudY = 720
$hudX = 2560
$fov = 0.013
[Preset]
category = Resolution
name = 640x480(4:3)
$width = 640
$height = 480
$hudY = 768
$hudX = 1024
$fov = 0.019053293
[Preset]
category = Resolution
name = 1024x768(4:3)
$width = 1024
$height = 768
$hudY = 768
$hudX = 1024
$fov = 0.019053293
[Preset]
category = Resolution
name = 1600x1200(4:3)
$width = 1600
$height = 1200
$hudY = 768
$hudX = 1024
$fov = 0.019053293
[Preset]
category = Resolution
name = 1280x800(16:10)
$width = 1280
$height = 800
$hudY = 800
$hudX = 1280
$fov = 0.018353293
[Preset]
category = Resolution
name = 1680x1050(16:10)
$width = 1680
$height = 1050
$hudY = 800
$hudX = 1280
$fov = 0.018353293
[Preset]
category = Resolution
name = 1920x1200(16:10)
$width = 1920
$height = 1200
$hudY = 800
$hudX = 1280
$fov = 0.018353293
[Preset]
category = Resolution
name = 2560x1600(16:10)
$width = 2560
$height = 1600
$hudY = 800
$hudX = 1280
$fov = 0.018353293
[Preset]
category = Shadow Quality
@ -100,8 +215,6 @@ category = Shadow Quality
name = Extreme (400%, Unstable)
$shadowRes = 4
# Texture Redefines
[TextureRedefine] # Game output and hud resolution
@ -121,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
@ -213,6 +326,6 @@ overwriteHeight = ($height/$gameHeight) * 240
[TextureRedefine]
width = 512
height = 2048
formats = 0x5
formats = 0x011
overwriteWidth = $shadowRes * 512
overwriteHeight = $shadowRes * 2048

View file

@ -0,0 +1,9 @@
[STT_dt_V16]
moduleMatches = 0x2A14BB42
0x0210116C = b .+0xC
[STT_dt_V1]
moduleMatches = 0x321D97F0
0x021016D8 = b .+0xC

View file

@ -2,7 +2,7 @@
titleIds = 000500001017C600,0005000010181F00
name = FPS
path = "Skylanders Trap Team/Mods/FPS"
description = Changes the game's dynamic FPS target. Might have bugs, especially when going above 120 FPS.||Made by Mew00.
description = Changes the game's FPS limit. The speed of some things is tied to the frame rate.||Made by Mew00. Fix for speed-up above 120 FPS by SuperSamus and Winner Nombre.
version = 6
[Default]

View file

@ -0,0 +1,4 @@
[SkylandersTrapTeam_PortalCheckRemoved_v0_v16]
moduleMatches = 0x321d97f0,0x2a14bb42
0x2042fd0 = li r3, 0x21B

View file

@ -0,0 +1,6 @@
[Definition]
titleIds = 000500001017C600,0005000010181F00
name = Allow Portals From Other Skylanders Games
path = "Skylanders Trap Team/Mods/Allow Portals From Other Skylanders Games"
description = Allows any (non-Xbox!) Portal of Power to be used instead of the Traptanium Portal.||Created by OddLittlePumpkin.|Special Thanks to NefariousTechSupport and Maff.
version = 7

View file

@ -0,0 +1,151 @@
[dpad-jump_v288]
moduleMatches = 0x659C782E
Lp_Utl_getCurSceneId = 0x028C67EC
.origin = codecave
state:
.char 0
screen_x:
.short 1080 ; LEFT
.short 1080 ; UP
.short 1080 ; RIGHT
.short 1170 ; DOWN
screen_y:
.short 130 ; LEFT
.short 290 ; UP
.short 450 ; RIGHT
.short 625 ; DOWN
perform:
mflr r0 ; Push LR and important registers to the stack
stwu r1, -0x10(r1)
stw r31, 0xC(r1)
stw r30, 0x8(r1)
stw r29, 0x4(r1)
stw r0, 0x14(r1)
mr r31, r4
lis r30, state@hi
ori r30, r30, state@l
lbz r30, 0x0(r30)
bl import.vpad.VPADGetTPCalibratedPoint
mr r29, r3
bl Lp_Utl_getCurSceneId ; Check if this is being called during a match
cmpwi r3, 7
beq perform_touch
cmpwi r3, 12 ; Or Recon
bne perform_exit ; If not, then exit
perform_touch:
cmpwi r30, 0
beq perform_exit ; Exit if state is 0 (no DPAD pressed)
subi r30, r30, 1 ; state should be the array index + 1 (since 0 is reserved for no DPAD pressed)
mulli r30, r30, 2 ; Multiply by 2 for the screen arrays (.short)
lis r3, screen_x@hi
ori r3, r3, screen_x@l
lhzx r3, r3, r30
lis r4, screen_y@hi
ori r4, r4, screen_y@l
lhzx r4, r4, r30
; Perform a fake touch on the gamepad
sth r3, 0x0(r31) ; VPADTouchData.x
sth r4, 0x2(r31) ; VPADTouchData.y
li r3, 1
li r4, 0
sth r3, 0x4(r31) ; VPADTouchData.touched
sth r4, 0x6(r31) ; VPADTouchData.validity
perform_exit:
mr r3, r29 ; Return result from VPADGetTPCalibratedPoint
lwz r0, 0x14(r1) ; Restore registers from stack
mtlr r0
lwz r31, 0xC(r1)
lwz r30, 0x8(r1)
lwz r29, 0x4(r1)
addi r1, r1, 0x10
blr
check_input:
mflr r0 ; Push LR and important registers to the stack
stwu r1, -0x10(r1)
stw r31, 0xC(r1)
stw r30, 0x8(r1)
stw r0, 0x14(r1)
mr r31, r4
bl import.vpad.VPADRead
mr r30, r3
lwz r3, 0x0(r31) ; VPADStatus.hold
lis r4, 0x0000
ori r4, r4, 0x8000 ; VPAD_BUTTON_A
li r5, 0 ; Set to 0 to avoid removing input (happens at set_state)
and r6, r3, r4
cmpw r6, r4
bne check_input_reset
li r4, 0x0800 ; VPAD_BUTTON_LEFT
and r5, r3, r4
cmpwi r5, 0
li r4, 1
bne check_input_set_state
li r4, 0x0200 ; VPAD_BUTTON_UP
and r5, r3, r4
cmpwi r5, 0
li r4, 2
bne check_input_set_state
li r4, 0x0400 ; VPAD_BUTTON_RIGHT
and r5, r3, r4
cmpwi r5, 0
li r4, 3
bne check_input_set_state
li r4, 0x0100 ; VPAD_BUTTON_DOWN
and r5, r3, r4
cmpwi r5, 0
beq check_input_reset
li r4, 4
check_input_set_state:
bl Lp_Utl_getCurSceneId ; Check if this is being called during a match
cmpwi r3, 7
beq _check_input_set_state
cmpwi r3, 12 ; Or Recon
bne check_input_exit ; If not, then exit
_check_input_set_state:
lwz r3, 0x0(r31)
sub r5, r3, r5 ; Disable DPAD input to avoid sending unnecessary signals (very hacky, doesn't work too well)
stw r5, 0x0(r31)
lis r3, state@hi
ori r3, r3, state@l
stb r4, 0x0(r3)
check_input_exit:
mr r3, r30 ; Return result from VPADRead
lwz r0, 0x14(r1) ; Restore registers from stack
mtlr r0
lwz r31, 0xC(r1)
lwz r30, 0x8(r1)
addi r1, r1, 0x10
blr
check_input_reset:
li r4, 0
b check_input_set_state
0x28D0F30 = bl check_input ; VPADRead
0x286FD38 = bl perform ; VPADGetTPCalibratedPoint

View file

@ -0,0 +1,6 @@
[Definition]
titleIds = 0005000010176900,0005000010176A00,0005000010162B00
name = DPADJump
path = "Splatoon/Mods/Superjump With The DPAD"
description = Hold A + D-Pad in any direction to super jump to a teammate or the spawn point during a match or Recon, similar to SwapDRC patches.|Made by primaviera.
version = 7

View file

@ -0,0 +1,148 @@
[Definition]
titleIds = 000500001010b500,000500001010f400
name = Resolution
path = "Transformers Prime/Graphics/Resolution"
description = Changes the resolution of the game.
version = 4
[Preset]
name = 1280x720 (Default)
$width = 1280
$height = 720
$gameWidth = 1280
$gameHeight = 720
# Performance
[Preset]
name = 640x360
$width = 640
$height = 360
$gameWidth = 1280
$gameHeight = 720
[Preset]
name = 960x540
$width = 960
$height = 540
$gameWidth = 1280
$gameHeight = 720
# Common HD Resolutions
[Preset]
name = 1600x900
$width = 1600
$height = 900
$gameWidth = 1280
$gameHeight = 720
[Preset]
name = 1920x1080
$width = 1920
$height = 1080
$gameWidth = 1280
$gameHeight = 720
[Preset]
name = 2560x1440
$width = 2560
$height = 1440
$gameWidth = 1280
$gameHeight = 720
[Preset]
name = 3200x1800
$width = 3200
$height = 1800
$gameWidth = 1280
$gameHeight = 720
[Preset]
name = 3840x2160
$width = 3840
$height = 2160
$gameWidth = 1280
$gameHeight = 720
[Preset]
name = 5120x2880
$width = 5120
$height = 2880
$gameWidth = 1280
$gameHeight = 720
[Preset]
name = 7680x4320
$width = 7680
$height = 4320
$gameWidth = 1280
$gameHeight = 720
[TextureRedefine] # Game Resolution
width = 1280
height = 720
tileModesExcluded = 0x001
overwriteWidth = ($width/$gameWidth) * 1280
overwriteHeight = ($height/$gameHeight) * 720
[TextureRedefine]
width = 640
height = 368
overwriteWidth = ($width/$gameWidth) * 640
overwriteHeight = ($height/$gameHeight) * 368
[TextureRedefine]
width = 640
height = 360
tileModesExcluded = 0x001
overwriteWidth = ($width/$gameWidth) * 640
overwriteHeight = ($height/$gameHeight) * 360
[TextureRedefine] # Depth of Field Pass
width = 320
height = 192
overwriteWidth = ($width/$gameWidth) * 320
overwriteHeight = ($height/$gameHeight) * 192
[TextureRedefine] # Depth of Field Pass
width = 320
height = 180
overwriteWidth = ($width/$gameWidth) * 320
overwriteHeight = ($height/$gameHeight) * 180
[TextureRedefine]
width = 160
height = 96
overwriteWidth = ($width/$gameWidth) * 160
overwriteHeight = ($height/$gameHeight) * 96
[TextureRedefine]
width = 160
height = 90
overwriteWidth = ($width/$gameWidth) * 160
overwriteHeight = ($height/$gameHeight) * 90
[TextureRedefine]
width = 90
height = 48
overwriteWidth = ($width/$gameWidth) * 90
overwriteHeight = ($height/$gameHeight) * 48
[TextureRedefine]
width = 80
height = 45
overwriteWidth = ($width/$gameWidth) * 80
overwriteHeight = ($height/$gameHeight) * 45
[TextureRedefine] # Gamepad Resolution
width = 864
height = 480
overwriteWidth = ($width/$gameWidth) * 864
overwriteHeight = ($height/$gameHeight) * 480
[TextureRedefine] # Gamepad Resolution
width = 854
height = 480
overwriteWidth = ($width/$gameWidth) * 854
overwriteHeight = ($height/$gameHeight) * 480

View file

@ -0,0 +1,7 @@
[Definition]
titleIds = 0005000010156600,0005000010156700,0005000010156800,0005000010156900,0005000010156A00,0005000010156B00,0005000010156C00,0005000010156E00,0005000010156F00,0005000010157000,0005000010157100,0005000010157200,0005000010157300,0005000010157400,0005000010157500,000500001015D700,000500001015D800,000500001015D900,000500001015DA00,000500001015DB00,000500001015DC00,000500001015DD00,000500001015DE00,000500001015DF00,000500001015E000,000500001015E100,000500001015E200,000500001015E300,000500001015E400,000500001015E500,0005000010169700,0005000010169800,0005000010169900,0005000010169A00,0005000010169B00,0005000010169C00,0005000010169D00,0005000010169E00,0005000010169F00,000500001016A000,000500001016A100,000500001016CF00,000500001016D000,000500001016D100,000500001016D200,000500001016F100,000500001016F200,000500001016F300,000500001016F400,000500001016F500,000500001016F600,000500001016F700,000500001016F800,000500001016F900,000500001016FA00,0005000010170900,0005000010172C00,0005000010172D00,0005000010172E00,0005000010172F00,0005000010173500,0005000010173600,0005000010173700,0005000010173800,0005000010173900,0005000010173A00,0005000010173B00,0005000010173C00,0005000010173D00,0005000010173E00,0005000010173F00,0005000010174000,0005000010174100,0005000010176000,0005000010176100,0005000010176200,0005000010176C00,0005000010176D00,0005000010176E00,000500001017A000,000500001017A100,000500001017A200,000500001017A300,000500001017A400,000500001017A500,000500001017BA00,000500001017BB00,000500001017BC00,000500001017CE00,000500001017CF00,000500001017D000,000500001017D100,000500001017D200,000500001017D300,000500001017D500,000500001017D600,000500001017D700,000500001017FF00,0005000010180000,0005000010180100,0005000010180200,0005000010180300,0005000010180400,0005000010181000,0005000010181100,0005000010181200,0005000010182900,0005000010182A00,0005000010182B00,0005000010183500,0005000010183600,0005000010183700,0005000010183E00,0005000010183F00,0005000010184000,0005000010184200,0005000010184300,0005000010187F00,0005000010188000,0005000010188100,0005000010188200,0005000010188300,0005000010188400,0005000010188500,0005000010188600,0005000010188700,0005000010188800,0005000010188900,000500001018E300,000500001018E400,000500001018E500,000500001018E600,000500001018E700,000500001018E800,000500001018E900,000500001018EA00,000500001018EB00,000500001018FF00,0005000010190000,0005000010192700,0005000010192800,0005000010192900,0005000010192A00,0005000010192B00,0005000010192C00,0005000010192D00,0005000010192E00,0005000010192F00,0005000010193100,0005000010193200,0005000010194600,0005000010197000,0005000010197100,0005000010197E00,0005000010197F00,0005000010198000,0005000010198100,0005000010198200,0005000010198300,0005000010198400,0005000010198600,000500001019BC00,000500001019BD00,000500001019BE00,000500001019EF00,000500001019F000,000500001019F100,000500001019F200,000500001019F300,000500001019F500,000500001019F600,000500001019F700,000500001019F800,00050000101A3000,00050000101A3100,00050000101A3200,00050000101A3300,00050000101A3400,00050000101A4700,00050000101A9200,00050000101A9300,00050000101A9400,00050000101A9800,00050000101A9900,00050000101A9A00,00050000101ACD00,00050000101ACF00,00050000101AD000,00050000101AD100,00050000101AD200,00050000101AD300,00050000101AD400,00050000101AD500,00050000101AE400,00050000101AE500,00050000101AE600,00050000101AE700,00050000101AE800,00050000101AE900,00050000101AEA00,00050000101B9100,00050000101B9200,00050000101B9C00,00050000101B9D00,00050000101B9E00,00050000101BB900,00050000101BBA00,00050000101BBB00,00050000101C0100,00050000101C0200,00050000101C0300,00050000101C0400,00050000101C0500,00050000101C0600,00050000101C3A00,00050000101C3B00,00050000101C3D00,00050000101C3E00,00050000101C3F00,00050000101C4700,00050000101C4800,00050000101C9800,00050000101C9900,00050000101CAF00,00050000101CB000,00050000101CB100,00050000101CB200,00050000101CB300,00050000101CC100,00050000101D0A00,00050000101D0B00,00050000101D0C00,00050000101D0D00,00050000101D0E00,00050000101D2500,00050000101D2600,00050000101D2700,00050000101D5800,00050000101D5900,00050000101D5A00,00050000101D5B00,00050000101D5C00,00050000101D5D00,00050000101D5E00,00050000101D9900,00050000101E0600,00050000101E0700
name = Undarken
path = "Virtual Console/GBA/Enhancements/Undarken"
description = Undarkens the emulator output.|Made by Zalnor.
#Credits: Zalnor
version = 6

View file

@ -0,0 +1,117 @@
[Definition]
titleIds = 0005000010156600,0005000010156700,0005000010156800,0005000010156900,0005000010156A00,0005000010156B00,0005000010156C00,0005000010156E00,0005000010156F00,0005000010157000,0005000010157100,0005000010157200,0005000010157300,0005000010157400,0005000010157500,000500001015D700,000500001015D800,000500001015D900,000500001015DA00,000500001015DB00,000500001015DC00,000500001015DD00,000500001015DE00,000500001015DF00,000500001015E000,000500001015E100,000500001015E200,000500001015E300,000500001015E400,000500001015E500,0005000010169700,0005000010169800,0005000010169900,0005000010169A00,0005000010169B00,0005000010169C00,0005000010169D00,0005000010169E00,0005000010169F00,000500001016A000,000500001016A100,000500001016CF00,000500001016D000,000500001016D100,000500001016D200,000500001016F100,000500001016F200,000500001016F300,000500001016F400,000500001016F500,000500001016F600,000500001016F700,000500001016F800,000500001016F900,000500001016FA00,0005000010170900,0005000010172C00,0005000010172D00,0005000010172E00,0005000010172F00,0005000010173500,0005000010173600,0005000010173700,0005000010173800,0005000010173900,0005000010173A00,0005000010173B00,0005000010173C00,0005000010173D00,0005000010173E00,0005000010173F00,0005000010174000,0005000010174100,0005000010176000,0005000010176100,0005000010176200,0005000010176C00,0005000010176D00,0005000010176E00,000500001017A000,000500001017A100,000500001017A200,000500001017A300,000500001017A400,000500001017A500,000500001017BA00,000500001017BB00,000500001017BC00,000500001017CE00,000500001017CF00,000500001017D000,000500001017D100,000500001017D200,000500001017D300,000500001017D500,000500001017D600,000500001017D700,000500001017FF00,0005000010180000,0005000010180100,0005000010180200,0005000010180300,0005000010180400,0005000010181000,0005000010181100,0005000010181200,0005000010182900,0005000010182A00,0005000010182B00,0005000010183500,0005000010183600,0005000010183700,0005000010183E00,0005000010183F00,0005000010184000,0005000010184200,0005000010184300,0005000010187F00,0005000010188000,0005000010188100,0005000010188200,0005000010188300,0005000010188400,0005000010188500,0005000010188600,0005000010188700,0005000010188800,0005000010188900,000500001018E300,000500001018E400,000500001018E500,000500001018E600,000500001018E700,000500001018E800,000500001018E900,000500001018EA00,000500001018EB00,000500001018FF00,0005000010190000,0005000010192700,0005000010192800,0005000010192900,0005000010192A00,0005000010192B00,0005000010192C00,0005000010192D00,0005000010192E00,0005000010192F00,0005000010193100,0005000010193200,0005000010194600,0005000010197000,0005000010197100,0005000010197E00,0005000010197F00,0005000010198000,0005000010198100,0005000010198200,0005000010198300,0005000010198400,0005000010198600,000500001019BC00,000500001019BD00,000500001019BE00,000500001019EF00,000500001019F000,000500001019F100,000500001019F200,000500001019F300,000500001019F500,000500001019F600,000500001019F700,000500001019F800,00050000101A3000,00050000101A3100,00050000101A3200,00050000101A3300,00050000101A3400,00050000101A4700,00050000101A9200,00050000101A9300,00050000101A9400,00050000101A9800,00050000101A9900,00050000101A9A00,00050000101ACD00,00050000101ACF00,00050000101AD000,00050000101AD100,00050000101AD200,00050000101AD300,00050000101AD400,00050000101AD500,00050000101AE400,00050000101AE500,00050000101AE600,00050000101AE700,00050000101AE800,00050000101AE900,00050000101AEA00,00050000101B9100,00050000101B9200,00050000101B9C00,00050000101B9D00,00050000101B9E00,00050000101BB900,00050000101BBA00,00050000101BBB00,00050000101C0100,00050000101C0200,00050000101C0300,00050000101C0400,00050000101C0500,00050000101C0600,00050000101C3A00,00050000101C3B00,00050000101C3D00,00050000101C3E00,00050000101C3F00,00050000101C4700,00050000101C4800,00050000101C9800,00050000101C9900,00050000101CAF00,00050000101CB000,00050000101CB100,00050000101CB200,00050000101CB300,00050000101CC100,00050000101D0A00,00050000101D0B00,00050000101D0C00,00050000101D0D00,00050000101D0E00,00050000101D2500,00050000101D2600,00050000101D2700,00050000101D5800,00050000101D5900,00050000101D5A00,00050000101D5B00,00050000101D5C00,00050000101D5D00,00050000101D5E00,00050000101D9900,00050000101E0600,00050000101E0700
name = Graphics Settings
path = "Virtual Console/GBA/Graphics"
description = Changes the resolution of the game.|Made by Zalnor.
#Credits: Zalnor
version = 6
[Default]
$width = 1920
$height = 1080
$gameWidth = 1920
$gameHeight = 1088
$GPgameWidth = 864
$GPgameHeight = 480
[Preset]
category = Resolution
name = 1920x1080 (Default)
default = 1
GBA Resolutions----------------------------
[Preset]
category = Resolution
name = ~~~Original GBA Resolutions~~~
$width = 284
$height = 160
[Preset]
category = Resolution
name = 240x160 (Original GBA)
$width = 284
$height = 160
[Preset]
category = Resolution
name = 480x320 2x
$width = 569
$height = 320
[Preset]
category = Resolution
name = 720x480 3x (480p)
$width = 853
$height = 480
[Preset]
category = Resolution
name = 960x640 4x
$width = 1138
$height = 640
[Preset]
category = Resolution
name = 1200x800 5x (720p)
$width = 1422
$height = 800
[Preset]
category = Resolution
name = 1440x960 6x
$width = 1707
$height = 960
[Preset]
category = Resolution
name = 1680x1120 7x (1080p)
$width = 1991
$height = 1120
[Preset]
category = Resolution
name = 1920x1280 8x
$width = 2276
$height = 1280
[Preset]
category = Resolution
name = 2160x1440 9x (1440p)
$width = 2560
$height = 1440
#TV Viewports-------------------------------------
[TextureRedefine]
width = 1920
height = 1080
formats = 0x01a
overwriteWidth = ($width/$gameWidth) * 1920
overwriteHeight = ($height/$gameHeight) * 1080
[TextureRedefine]
width = 1920
height = 1088
formats = 0x01a
overwriteWidth = ($width/$gameWidth) * 1920
overwriteHeight = ($height/$gameHeight) * 1088
#Gamepad Viewports---------------------------------
[TextureRedefine]
width = 864
height = 480
formats = 0x01a
overwriteWidth = ($width/$GPgameWidth) * 864
overwriteHeight = ($height/$GPgameHeight) * 480
[TextureRedefine]
width = 854
height = 480
formats = 0x01a
overwriteWidth = ($width/$GPgameWidth) * 854
overwriteHeight = ($height/$GPgameHeight) * 480
#VC Menu-------------------------------------------
#please add it here if you figure out how to scale the menu seperate, so it can look good at low res

View file

@ -0,0 +1,113 @@
[Definition]
titleIds = 0005000010168100,0005000010168200,0005000010168300,0005000010168400,0005000010168500,0005000010168600,0005000010168700,0005000010168800,0005000010168900,0005000010168A00,0005000010168B00,0005000010194800,0005000010194900,0005000010194A00,0005000010194B00,0005000010194C00,0005000010194E00,0005000010194F00,0005000010195000,0005000010195200,0005000010195300,0005000010195400,0005000010195500
name = Graphics Settings
path = "Virtual Console/MSX/Graphics"
description = Changes the resolution of the game.
#Credits: Intra
version = 6
[Default]
$width = 1280
$height = 720
$gameWidth = 1280
$gameHeight = 720
$GPgameWidth = 864
$GPgameHeight = 480
[Preset]
category = Resolution
name = 1280x720 (Default)
default = 1
MSX Resolutions-----------------------------
[Preset]
category = Resolution
name = ~~~Original MSX Resolutions~~~
$width = 341
$height = 192
[Preset]
category = Resolution
name = 256x192 (Original MSX)
$width = 341
$height = 192
[Preset]
category = Resolution
name = 512x384 2x
$width = 682
$height = 384
[Preset]
category = Resolution
name = 768x576 3x (480p)
$width = 1024
$height = 576
[Preset]
category = Resolution
name = 1024x768 4x (720p)
$width = 1365
$height = 768
[Preset]
category = Resolution
name = 1280x960 5x
$width = 1706
$height = 960
[Preset]
category = Resolution
name = 1536x1152 6x (1080p)
$width = 2048
$height = 1152
[Preset]
category = Resolution
name = 1792x1344 7x
$width = 2389
$height = 1344
[Preset]
category = Resolution
name = 2048x1536 8x (1440p)
$width = 2730
$height = 1536
[Preset]
category = Resolution
name = 2304x1728 9x
$width = 3072
$height = 1728
#TV Viewports-----------------------------------------
[TextureRedefine]
width = 1280
height = 720
overwriteWidth = ($width/$gameWidth) * 1280
overwriteHeight = ($height/$gameHeight) * 720
[TextureRedefine]
width = 1286
height = 732
overwriteWidth = ($width/$gameWidth) * 1286
overwriteHeight = ($height/$gameHeight) * 732
#Gamepad Viewports-------------------------------------
[TextureRedefine]
width = 864
height = 480
overwriteWidth = ($width/$GPgameWidth) * 864
overwriteHeight = ($height/$GPgameHeight) * 480
[TextureRedefine]
width = 854
height = 480
overwriteWidth = ($width/$GPgameWidth) * 854
overwriteHeight = ($height/$GPgameHeight) * 480
#VC Menu
#please add it here if you figure out how to scale the menu seperate, so it can look good at low res

View file

@ -0,0 +1,7 @@
[Definition]
titleIds = 0005000010199100,0005000010199200,0005000010199300,0005000010199400,0005000010199500,0005000010199600,0005000010199700,0005000010199800,0005000010199A00,0005000010199B00,0005000010199C00,00050000101A0D00,00050000101A0E00,00050000101A0F00,00050000101A1000,00050000101A5800,00050000101A5900,00050000101A5A00,00050000101A5B00,00050000101AC300,00050000101AC400,00050000101AC500,00050000101AC600,00050000101B4500,00050000101B4600,00050000101B4700,00050000101B4800,00050000101BAE00,00050000101BAF00,00050000101BB000,00050000101BB100,00050000101BB200,00050000101C5C00,00050000101C5D00,00050000101C5E00,00050000101DA700,00050000101DA800,00050000101DA900,00050000101E6400,00050000101E6500,00050000101E6600,00050000101E6700,00050000101EBB00,00050000101EBC00,00050000101FE700,00050000101FE800,00050000101FE900,00050000101FEA00
name = Undarken
path = "Virtual Console/N64/Enhancements/Undarken"
description = Undarkens the emulator output.|Made by Zalnor.
#Credits: Zalnor
version = 6

View file

@ -1,12 +1,12 @@
[Definition]
titleIds = 50000101FEA00,50000101FE900,5000010199200,5000010199100,5000010199300,5000010199500,5000010199400,5000010199700,5000010199600,5000010199800,5000010199B00,5000010199A00,5000010199C00,50000101A0E00,50000101A0D00,50000101A1000,50000101A5900,50000101A5800,50000101A5B00,50000101A5A00,50000101AC400,50000101AC600,50000101AC500,50000101B4600,50000101B4500,50000101B4800,50000101B4700,50000101BAF00,50000101BAE00,50000101BB000,50000101BB200,50000101BB100,50000101C5D00,50000101C5C00,50000101C5E00,50000101DA800,50000101DA700,50000101DA900,50000101E6500,50000101E6400,50000101E6700,50000101E6600,50000101EBB00,50000101FE800,50000101FE700
name = "Resolution"
path = Virtual Console/N64/Graphics/Resolution
description = Changes the resolution of the game. Made by Zalnor.
version = 4
titleIds = 0005000010199100,0005000010199200,0005000010199300,0005000010199400,0005000010199500,0005000010199600,0005000010199700,0005000010199800,0005000010199A00,0005000010199B00,0005000010199C00,00050000101A0D00,00050000101A0E00,00050000101A0F00,00050000101A1000,00050000101A5800,00050000101A5900,00050000101A5A00,00050000101A5B00,00050000101AC300,00050000101AC400,00050000101AC500,00050000101AC600,00050000101B4500,00050000101B4600,00050000101B4700,00050000101B4800,00050000101BAE00,00050000101BAF00,00050000101BB000,00050000101BB100,00050000101BB200,00050000101C5C00,00050000101C5D00,00050000101C5E00,00050000101DA700,00050000101DA800,00050000101DA900,00050000101E6400,00050000101E6500,00050000101E6600,00050000101E6700,00050000101EBB00,00050000101EBC00,00050000101FE700,00050000101FE800,00050000101FE900,00050000101FEA00
name = Graphics Settings
path = "Virtual Console/N64/Graphics"
description = Changes the resolution of the game.|Made by Zalnor.
#Credits: Zalnor
version = 6
[Preset]
name = 1920x1080 (Default)
[Default]
$width = 1920
$height = 1080
$gameWidth = 1920
@ -15,107 +15,78 @@ $GPgameWidth = 864
$GPgameHeight = 480
$VCPgameWidth = 640
[Preset]
category = Resolution
name = 1920x1080 (Default)
default = 1
N64 Resolutions----------------------------------
[Preset]
category = Resolution
name = ~~~Original N64 Resolutions~~~ (4:3)
$width = 853
$height = 480
$gameWidth = 1920
$gameHeight = 1088
$GPgameWidth = 864
$GPgameHeight = 480
$VCPgameWidth = 640
[Preset]
name = 640x480 (Original N64) (480i)
category = Resolution
name = 640x480 (Original N64) (480p)
$width = 853
$height = 480
$gameWidth = 1920
$gameHeight = 1088
$GPgameWidth = 864
$GPgameHeight = 480
$VCPgameWidth = 640
[Preset]
name = 960x720 (720i)
category = Resolution
name = 960x720 (720p)
$width = 1280
$height = 720
$gameWidth = 1920
$gameHeight = 1088
$GPgameWidth = 864
$GPgameHeight = 480
$VCPgameWidth = 640
[Preset]
category = Resolution
name = 1280x960 2x
$width = 1707
$height = 960
$gameWidth = 1920
$gameHeight = 1088
$GPgameWidth = 864
$GPgameHeight = 480
$VCPgameWidth = 640
[Preset]
name = 1536x1152 (1080i)
category = Resolution
name = 1536x1152 (1080p)
$width = 2048
$height = 1152
$gameWidth = 1920
$gameHeight = 1088
$GPgameWidth = 864
$GPgameHeight = 480
$VCPgameWidth = 640
[Preset]
name = 1920x1440 3x (1440i)
category = Resolution
name = 1920x1440 3x (1440p)
$width = 2560
$height = 1440
$gameWidth = 1920
$gameHeight = 1088
$GPgameWidth = 864
$GPgameHeight = 480
$VCPgameWidth = 640
[Preset]
category = Resolution
name = 2048x1536
$width = 2731
$height = 1536
$gameWidth = 1920
$gameHeight = 1088
$GPgameWidth = 864
$GPgameHeight = 480
$VCPgameWidth = 640
[Preset]
name = 2560x1920 (1800i)
category = Resolution
name = 2560x1920 (1800p)
$width = 3413
$height = 1920
$gameWidth = 1920
$gameHeight = 1088
$GPgameWidth = 864
$GPgameHeight = 480
$VCPgameWidth = 640
[Preset]
category = Resolution
name = 3200x2400 5x
$width = 4267
$height = 2400
$gameWidth = 1920
$gameHeight = 1088
$GPgameWidth = 864
$GPgameHeight = 480
$VCPgameWidth = 640
[Preset]
category = Resolution
name = 3840x2880 6x (4k)
$width = 5120
$height = 2880
$gameWidth = 1920
$gameHeight = 1088
$GPgameWidth = 864
$GPgameHeight = 480
$VCPgameWidth = 640
[Preset]
category = Resolution
name = 5760x4320 9x (8k)
$width = 7680
$height = 4320
#Game Viewports-------------------------------------------

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,117 @@
[Definition]
titleIds = 0005000010108E00,0005000010108F00,0005000010109000,0005000010109100,0005000010109200,0005000010109300,0005000010109400,0005000010109500,0005000010109600,0005000010109700,0005000010109800,0005000010109900,0005000010109A00,0005000010109B00,0005000010109C00,0005000010109D00,0005000010109E00,0005000010109F00,000500001010A000,000500001010A100,000500001010A200,000500001010A400,000500001010A500,000500001010A600,000500001010A700,000500001010A800,000500001010A900,000500001010AA00,0005000010114B00,0005000010114C00,0005000010114D00,0005000010114E00,0005000010114F00,0005000010115000,0005000010115100,0005000010115200,0005000010115300,0005000010115400,0005000010115A00,0005000010115B00,0005000010119900,0005000010119A00,0005000010119B00,0005000010119C00,0005000010119D00,0005000010119E00,0005000010119F00,000500001011A000,000500001011A100,000500001011A200,000500001011A300,000500001011A400,000500001011A500,000500001012A200,000500001012A300,000500001012A500,000500001012A600,000500001012A700,000500001012A800,000500001012AD00,000500001012E900,000500001012EC00,000500001012ED00,000500001012EE00,000500001012EF00,0005000010130200,0005000010130300,0005000010130400,0005000010130500,0005000010130600,0005000010130700,0005000010130800,0005000010130900,0005000010130A00,0005000010130B00,0005000010130C00,0005000010130D00,0005000010130E00,0005000010133300,0005000010133400,0005000010133500,0005000010134600,0005000010134700,0005000010134A00,0005000010134B00,0005000010134C00,0005000010134D00,0005000010135C00,0005000010136000,0005000010137300,0005000010137400,0005000010137500,0005000010137600,0005000010137700,0005000010137800,0005000010137A00,0005000010137B00,0005000010138000,0005000010140C00,0005000010140D00,0005000010140E00,0005000010140F00,0005000010141100,0005000010141200,0005000010141300,0005000010141400,0005000010141500,0005000010141600,0005000010141700,0005000010141800,0005000010141900,0005000010141A00,0005000010141B00,0005000010141C00,0005000010141D00,0005000010141E00,0005000010141F00,0005000010143700,0005000010143C00,000500001014B000,000500001014B300,000500001014B300,0005000010151600,0005000010153D00,0005000010153E00,0005000010153F00,0005000010154000,0005000010159000,0005000010159100,0005000010159200,0005000010159300,0005000010159400,0005000010159500,0005000010159600,000500001015FE00,000500001015FF00,0005000010160000,0005000010160100,0005000010160200,0005000010161400,0005000010161500,000500001016C400,000500001016C500,000500001016C600,0005000010171600,0005000010171700,0005000010171A00,0005000010171B00,0005000010171C00,0005000010171D00,0005000010174C00,0005000010174D00,0005000010174E00,0005000010174F00,0005000010175100,0005000010175200,0005000010175300,0005000010178000,0005000010178100,0005000010178200,0005000010178300,0005000010178400,0005000010178600,0005000010178700,0005000010178800,0005000010178900,0005000010178A00,0005000010178B00,0005000010178C00,0005000010178D00,000500001017FB00,000500001017FC00,000500001017FD00,000500001017FE00,0005000010186500,0005000010186600,0005000010186700,0005000010186800,0005000010186900,0005000010186A00,0005000010186B00,0005000010186C00,0005000010186D00,0005000010189D00,000500001018BF00,0005000010190C00,0005000010190E00,0005000010190F00,0005000010191000,0005000010191100,0005000010191200,0005000010191300,0005000010191400,0005000010196700,0005000010196800,0005000010196900,0005000010196A00,00050000101A0B00,00050000101A0C00,00050000101A7B00,00050000101A7C00,00050000101A7D00,00050000101B5900,00050000101C2A00,00050000101C2B00,00050000101C2E00
name = Graphics Settings
path = "Virtual Console/SNES/Graphics"
description = Changes the resolution of the game.|Made by Zalnor.
#Credits: Zalnor
version = 6
[Default]
$width = 1920
$height = 1080
$gameWidth = 1920
$gameHeight = 1088
$GPgameWidth = 864
$GPgameHeight = 480
[Preset]
category = Resolution
name = 1920x1080 (Default)
default = 1
SNES Resolutions-----------------------------
[Preset]
category = Resolution
name = ~~~Original SNES Resolutions~~~
$width = 796
$height = 448
[Preset]
category = Resolution
name = 512x448 (Original SNES) (480p)
$width = 796
$height = 448
[Preset]
category = Resolution
name = 1024x896 2x (720p)
$width = 1593
$height = 896
[Preset]
category = Resolution
name = 1536x1344 3x (1080p)
$width = 2389
$height = 1344
[Preset]
category = Resolution
name = 2048x1792 4x (1800p)
$width = 3186
$height = 1792
[Preset]
category = Resolution
name = 2560x2240 5x (4K)
$width = 3982
$height = 2240
[Preset]
category = Resolution
name = 3072x2688 6x
$width = 4779
$height = 2688
[Preset]
category = Resolution
name = 3584x3136 7x (5k)
$width = 5575
$height = 3136
[Preset]
category = Resolution
name = 4096x3584 8x (6k)
$width = 6371
$height = 3584
[Preset]
category = Resolution
name = 4608x4032 9x (7k)
$width = 7168
$height = 4032
#TV Viewports-----------------------------------------
[TextureRedefine]
width = 1920
height = 1080
formats = 0x01a
overwriteWidth = ($width/$gameWidth) * 1920
overwriteHeight = ($height/$gameHeight) * 1080
[TextureRedefine]
width = 1920
height = 1088
formats = 0x01a
overwriteWidth = ($width/$gameWidth) * 1920
overwriteHeight = ($height/$gameHeight) * 1088
#Gamepad Viewports-------------------------------------
[TextureRedefine]
width = 864
height = 480
formats = 0x01a
overwriteWidth = ($width/$GPgameWidth) * 864
overwriteHeight = ($height/$GPgameHeight) * 480
[TextureRedefine]
width = 854
height = 480
formats = 0x01a
overwriteWidth = ($width/$GPgameWidth) * 854
overwriteHeight = ($height/$GPgameHeight) * 480
#VC Menu
#please add it here if you figure out how to scale the menu seperate, so it can look good at low res

Some files were not shown because too many files have changed in this diff Show more