From ae72ac19f032ec516f297ac04a62028349c5c4f0 Mon Sep 17 00:00:00 2001 From: Michael <15317421+ActualMandM@users.noreply.github.com> Date: Mon, 15 Aug 2022 14:01:21 -0700 Subject: [PATCH] [Kirby Rainbow Curse] Remove Flashing Squares workaround Fixes #467 --- .../4667735a97db3c53_00000000000000e1_ps.txt | 112 ------------------ .../KirbyRainbow_FlashingSquares/rules.txt | 6 - 2 files changed, 118 deletions(-) delete mode 100644 Workarounds/KirbyRainbow_FlashingSquares/4667735a97db3c53_00000000000000e1_ps.txt delete mode 100644 Workarounds/KirbyRainbow_FlashingSquares/rules.txt diff --git a/Workarounds/KirbyRainbow_FlashingSquares/4667735a97db3c53_00000000000000e1_ps.txt b/Workarounds/KirbyRainbow_FlashingSquares/4667735a97db3c53_00000000000000e1_ps.txt deleted file mode 100644 index 6860d2c7..00000000 --- a/Workarounds/KirbyRainbow_FlashingSquares/4667735a97db3c53_00000000000000e1_ps.txt +++ /dev/null @@ -1,112 +0,0 @@ -#version 430 -#extension GL_ARB_texture_gather : enable -#extension GL_ARB_separate_shader_objects : enable -// shader 4667735a97db3c53 -// start of shader inputs/outputs, predetermined by Cemu. Do not touch -//workaround flashing squares / broken alpha -#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[1]; -uniform float uf_alphaTestRef; -uniform vec4 uf_fragCoordScale; -}; -#else -uniform ivec4 uf_remappedPS[1]; -uniform float uf_alphaTestRef; -uniform vec2 uf_fragCoordScale; -#endif -TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; -TEXTURE_LAYOUT(3, 1, 1) uniform sampler2D textureUnitPS3; -layout(location = 0) in vec4 passParameterSem0; -layout(location = 1) in vec4 passParameterSem3; -layout(location = 2) in vec4 passParameterSem4; -layout(location = 3) in vec4 passParameterSem9; -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 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 = passParameterSem0; -R1f = passParameterSem3; -R2f = passParameterSem4; -R3f = passParameterSem9; -R3f.xw = (texture(textureUnitPS0, R3f.xy).xw); -// 0 -backupReg0f = R0f.w; -R123f.x = (R3f.w * 2.0 + -(1.0)); -PV0f.x = R123f.x; -R123f.y = (R3f.x * 2.0 + -(1.0)); -PV0f.y = R123f.y; -R127f.z = mul_nonIEEE(R1f.w, R3f.w); -PV0f.w = 0.0; -R1f.w = backupReg0f * 1.0; -R1f.w = clamp(R1f.w, 0.0, 1.0); -PS0f = R1f.w; -// 1 -PV1f.x = R2f.w + PV0f.w; -PV1f.z = PV0f.y * intBitsToFloat(0x41c80000); -PV1f.w = PV0f.x * intBitsToFloat(0x41c80000); -// 2 -PV0f.x = mul_nonIEEE(PV1f.w, intBitsToFloat(uf_remappedPS[0].y)); -PV0f.y = mul_nonIEEE(PV1f.z, intBitsToFloat(uf_remappedPS[0].x)); -R127f.w = 1.0 / PV1f.x; -PS0f = R127f.w; -// 3 -PV1f.y = mul_nonIEEE(PV0f.x, R127f.z); -PV1f.w = mul_nonIEEE(PV0f.y, R127f.z); -// 4 -backupReg0f = R0f.w; -PV0f.z = mul_nonIEEE(R0f.w, PV1f.w); -PV0f.w = mul_nonIEEE(backupReg0f, PV1f.y); -// 5 -PV1f.x = R2f.y + PV0f.w; -PV1f.y = R2f.x + PV0f.z; -// 6 -R2f.x = mul_nonIEEE(PV1f.y, R127f.w); -R2f.y = mul_nonIEEE(PV1f.x, R127f.w); -R2f.xyz = (texture(textureUnitPS3, R2f.xy).xyz); -// 0 -R1f.x = mul_nonIEEE(R0f.x, R2f.x); -R1f.y = mul_nonIEEE(R0f.y, R2f.y); -R1f.z = mul_nonIEEE(R0f.z, R2f.z); -// export -if( ((vec4(R1f.x, R1f.y, R1f.z, R1f.w)).a > uf_alphaTestRef) == false) discard; -passPixelColor0 = vec4(R1f.x, R1f.y, R1f.z, 0.0); -//passPixelColor0 = vec4(R1f.x, R1f.y, R1f.z, R1f.w); -} diff --git a/Workarounds/KirbyRainbow_FlashingSquares/rules.txt b/Workarounds/KirbyRainbow_FlashingSquares/rules.txt deleted file mode 100644 index 5110d0f4..00000000 --- a/Workarounds/KirbyRainbow_FlashingSquares/rules.txt +++ /dev/null @@ -1,6 +0,0 @@ -[Definition] -titleIds = 00050000101ABC00,00050000101B5100 -name = Flashing Squares Workaround -path = "Kirby and the Rainbow Curse & Paintbrush/Workaround/Flashing Squares" -description = Removes the flashing squares when Kirby bumps into objects. -version = 4