mirror of
https://github.com/cemu-project/cemu_graphic_packs.git
synced 2025-04-29 06:49:28 -04:00
Merge branch 'master' into intra0-xcxlibini
This commit is contained in:
commit
9476c77bfc
203 changed files with 10415 additions and 1027 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
6
Mods/TwilightPrincessHD_DisableMirror/patches.txt
Normal file
6
Mods/TwilightPrincessHD_DisableMirror/patches.txt
Normal 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)
|
6
Mods/TwilightPrincessHD_DisableMirror/rules.txt
Normal file
6
Mods/TwilightPrincessHD_DisableMirror/rules.txt
Normal 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
|
|
@ -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]
|
||||
|
|
|
@ -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));
|
||||
}
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
@ -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;
|
||||
}
|
|
@ -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
|
|
@ -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
|
||||
|
|
|
@ -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;
|
|
@ -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
|
197
src/LEGOCityUndercover/rules.txt
Normal file
197
src/LEGOCityUndercover/rules.txt
Normal 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
|
|
@ -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]
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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]
|
||||
|
|
|
@ -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]
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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]
|
||||
|
|
267
src/ShantaeHGH/Graphics/023831cdf6638473_00000000000003c9_ps.txt
Normal file
267
src/ShantaeHGH/Graphics/023831cdf6638473_00000000000003c9_ps.txt
Normal 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));
|
||||
}
|
101
src/ShantaeHGH/Graphics/24d99fe8b4e5f576_0000000000000000_vs.txt
Normal file
101
src/ShantaeHGH/Graphics/24d99fe8b4e5f576_0000000000000000_vs.txt
Normal 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);
|
||||
}
|
141
src/ShantaeHGH/Graphics/294904d1771460cf_0000000000000079_ps.txt
Normal file
141
src/ShantaeHGH/Graphics/294904d1771460cf_0000000000000079_ps.txt
Normal 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);
|
||||
}
|
141
src/ShantaeHGH/Graphics/8fdd009324e987ee_0000000000000079_ps.txt
Normal file
141
src/ShantaeHGH/Graphics/8fdd009324e987ee_0000000000000079_ps.txt
Normal 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);
|
||||
}
|
213
src/ShantaeHGH/Graphics/rules.txt
Normal file
213
src/ShantaeHGH/Graphics/rules.txt
Normal 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
|
|
@ -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);
|
||||
}
|
6
src/SkylandersGiants/Enhancements/BloomRemoval/rules.txt
Normal file
6
src/SkylandersGiants/Enhancements/BloomRemoval/rules.txt
Normal 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
|
|
@ -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);
|
||||
}
|
6
src/SkylandersGiants/Enhancements/BlurRemoval/rules.txt
Normal file
6
src/SkylandersGiants/Enhancements/BlurRemoval/rules.txt
Normal 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
|
|
@ -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);
|
||||
}
|
6
src/SkylandersGiants/Enhancements/DOF/rules.txt
Normal file
6
src/SkylandersGiants/Enhancements/DOF/rules.txt
Normal 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
|
|
@ -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);
|
||||
}
|
6
src/SkylandersGiants/Enhancements/HUD/rules.txt
Normal file
6
src/SkylandersGiants/Enhancements/HUD/rules.txt
Normal 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
|
13
src/SkylandersGiants/Graphics/patches.txt
Normal file
13
src/SkylandersGiants/Graphics/patches.txt
Normal 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
|
|
@ -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
|
||||
|
|
4
src/SkylandersGiants/Mods/FPS/patch_dt.asm
Normal file
4
src/SkylandersGiants/Mods/FPS/patch_dt.asm
Normal file
|
@ -0,0 +1,4 @@
|
|||
[SG_dt]
|
||||
moduleMatches = 0x62CC63A5
|
||||
|
||||
0x02110EF4 = nop
|
|
@ -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]
|
||||
|
|
21
src/SkylandersImaginators/Mods/FPS/patch_FixFallRespawn.asm
Normal file
21
src/SkylandersImaginators/Mods/FPS/patch_FixFallRespawn.asm
Normal 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
|
|
@ -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]
|
||||
|
|
|
@ -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);
|
||||
}
|
|
@ -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
|
|
@ -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);
|
||||
}
|
|
@ -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
|
|
@ -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);
|
||||
}
|
6
src/SkylandersSpyrosAdventure/Enhancements/DOF/rules.txt
Normal file
6
src/SkylandersSpyrosAdventure/Enhancements/DOF/rules.txt
Normal 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
|
|
@ -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);
|
||||
}
|
6
src/SkylandersSpyrosAdventure/Enhancements/HUD/rules.txt
Normal file
6
src/SkylandersSpyrosAdventure/Enhancements/HUD/rules.txt
Normal 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
|
6
src/SkylandersSpyrosAdventure/Graphics/patches.txt
Normal file
6
src/SkylandersSpyrosAdventure/Graphics/patches.txt
Normal 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
|
|
@ -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
|
||||
|
|
4
src/SkylandersSpyrosAdventure/Mods/FPS/patch_dt.asm
Normal file
4
src/SkylandersSpyrosAdventure/Mods/FPS/patch_dt.asm
Normal file
|
@ -0,0 +1,4 @@
|
|||
[SSA_dt]
|
||||
moduleMatches = 0xC22A1809
|
||||
|
||||
0x021129A4 = nop
|
|
@ -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]
|
||||
|
|
|
@ -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);
|
||||
}
|
|
@ -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);
|
||||
}
|
6
src/SkylandersSwapForce/Enhancements/DOF/rules.txt
Normal file
6
src/SkylandersSwapForce/Enhancements/DOF/rules.txt
Normal 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
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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));
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
6
src/SkylandersSwapForce/Enhancements/HUD/rules.txt
Normal file
6
src/SkylandersSwapForce/Enhancements/HUD/rules.txt
Normal 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
|
|
@ -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);
|
||||
}
|
|
@ -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
|
|
@ -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
|
||||
|
|
|
@ -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]
|
||||
|
|
|
@ -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);
|
||||
}
|
|
@ -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);
|
||||
}
|
6
src/SkylandersTrapTeam/Enhancements/DOF/rules.txt
Normal file
6
src/SkylandersTrapTeam/Enhancements/DOF/rules.txt
Normal 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
|
|
@ -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));
|
||||
}
|
|
@ -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));
|
||||
}
|
||||
|
6
src/SkylandersTrapTeam/Enhancements/HUD/rules.txt
Normal file
6
src/SkylandersTrapTeam/Enhancements/HUD/rules.txt
Normal 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
|
|
@ -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));
|
||||
}
|
||||
|
6
src/SkylandersTrapTeam/Enhancements/MotionBlur/rules.txt
Normal file
6
src/SkylandersTrapTeam/Enhancements/MotionBlur/rules.txt
Normal 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
|
|
@ -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));
|
||||
}
|
|
@ -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);
|
||||
}
|
|
@ -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
|
14
src/SkylandersTrapTeam/Graphics/patches.txt
Normal file
14
src/SkylandersTrapTeam/Graphics/patches.txt
Normal 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
|
||||
|
|
@ -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
|
||||
|
|
9
src/SkylandersTrapTeam/Mods/FPS/patch_dt.asm
Normal file
9
src/SkylandersTrapTeam/Mods/FPS/patch_dt.asm
Normal file
|
@ -0,0 +1,9 @@
|
|||
[STT_dt_V16]
|
||||
moduleMatches = 0x2A14BB42
|
||||
|
||||
0x0210116C = b .+0xC
|
||||
|
||||
[STT_dt_V1]
|
||||
moduleMatches = 0x321D97F0
|
||||
|
||||
0x021016D8 = b .+0xC
|
|
@ -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]
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[SkylandersTrapTeam_PortalCheckRemoved_v0_v16]
|
||||
moduleMatches = 0x321d97f0,0x2a14bb42
|
||||
|
||||
0x2042fd0 = li r3, 0x21B
|
|
@ -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
|
151
src/Splatoon/Mods/DPADJump/patch_dpadjump.asm
Normal file
151
src/Splatoon/Mods/DPADJump/patch_dpadjump.asm
Normal 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
|
||||
|
6
src/Splatoon/Mods/DPADJump/rules.txt
Normal file
6
src/Splatoon/Mods/DPADJump/rules.txt
Normal 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
|
148
src/TransformersPrime/Graphics/rules.txt
Normal file
148
src/TransformersPrime/Graphics/rules.txt
Normal 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
|
7
src/VirtualConsole/VCGBA/Enhancements/Undarken/rules.txt
Normal file
7
src/VirtualConsole/VCGBA/Enhancements/Undarken/rules.txt
Normal 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
|
117
src/VirtualConsole/VCGBA/Graphics/rules.txt
Normal file
117
src/VirtualConsole/VCGBA/Graphics/rules.txt
Normal 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
|
113
src/VirtualConsole/VCMSX/Graphics/rules.txt
Normal file
113
src/VirtualConsole/VCMSX/Graphics/rules.txt
Normal 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
|
7
src/VirtualConsole/VCN64/Enhancements/Undarken/rules.txt
Normal file
7
src/VirtualConsole/VCN64/Enhancements/Undarken/rules.txt
Normal 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
|
|
@ -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-------------------------------------------
|
||||
|
7
src/VirtualConsole/VCNES/Enhancements/Undarken/rules.txt
Normal file
7
src/VirtualConsole/VCNES/Enhancements/Undarken/rules.txt
Normal file
File diff suppressed because one or more lines are too long
117
src/VirtualConsole/VCNES/Graphics/rules.txt
Normal file
117
src/VirtualConsole/VCNES/Graphics/rules.txt
Normal file
File diff suppressed because one or more lines are too long
117
src/VirtualConsole/VCSNES/Graphics/rules.txt
Normal file
117
src/VirtualConsole/VCSNES/Graphics/rules.txt
Normal 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
Loading…
Add table
Reference in a new issue