From 50a397c02fcba7535e2f2ac8ce7b67761996de8f Mon Sep 17 00:00:00 2001 From: Crementif <26669564+Crementif@users.noreply.github.com> Date: Thu, 13 Jun 2019 17:58:41 +0200 Subject: [PATCH] [BotW] Group GPU workarounds to tidy stuff up (Partially) solves https://github.com/slashiee/cemu_graphic_packs/issues/375 (tidying them makes a lot of sense). We can't change the order of the graphic packs (without a lot of work on our end), if you want to see this happen you should file a feature request on Cemu's bug tracker: http://bugs.cemu.info --- .../1494f789ce9ac901_000000000000000f_ps.txt | 86 +++++++++---------- Enhancements/VCN64_Undarken/rules.txt | 12 +-- .../d2a97b2fb99411a5_0000000000000079_ps.txt | 70 +++++++-------- Enhancements/VCNES_Undarken/rules.txt | 12 +-- .../BreathOfTheWild_!ShadowFix/rules.txt | 4 +- .../rules.txt | 4 +- .../rules.txt | 4 +- .../BreathOfTheWild_NVIDIASmoke/rules.txt | 2 +- 8 files changed, 97 insertions(+), 97 deletions(-) diff --git a/Enhancements/VCN64_Undarken/1494f789ce9ac901_000000000000000f_ps.txt b/Enhancements/VCN64_Undarken/1494f789ce9ac901_000000000000000f_ps.txt index 2e80bee2..3f0c2588 100644 --- a/Enhancements/VCN64_Undarken/1494f789ce9ac901_000000000000000f_ps.txt +++ b/Enhancements/VCN64_Undarken/1494f789ce9ac901_000000000000000f_ps.txt @@ -1,43 +1,43 @@ -#version 420 -#extension GL_ARB_texture_gather : enable -#extension GL_ARB_separate_shader_objects : enable -// shader 1494f789ce9ac901 -uniform ivec4 uf_remappedPS[1]; -uniform vec2 uf_fragCoordScale; -layout(location = 0) in vec4 passParameterSem0; -layout(location = 0) out vec4 passPixelColor0; -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); -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; -// 0 -backupReg0f = R0f.x; -backupReg1f = R0f.y; -backupReg2f = R0f.z; -backupReg3f = R0f.w; -R0f.x = mul_nonIEEE(backupReg0f, intBitsToFloat(uf_remappedPS[0].x)); -R0f.y = mul_nonIEEE(backupReg1f, intBitsToFloat(uf_remappedPS[0].y)); -R0f.z = mul_nonIEEE(backupReg2f, intBitsToFloat(uf_remappedPS[0].z)); -R0f.w = mul_nonIEEE(backupReg3f, intBitsToFloat(uf_remappedPS[0].w)); -// export -passPixelColor0 = vec4(R0f.x, R0f.y, R0f.z, R0f.w)*float(0); -} +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +// shader 1494f789ce9ac901 +uniform ivec4 uf_remappedPS[1]; +uniform vec2 uf_fragCoordScale; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 0) out vec4 passPixelColor0; +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); +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; +// 0 +backupReg0f = R0f.x; +backupReg1f = R0f.y; +backupReg2f = R0f.z; +backupReg3f = R0f.w; +R0f.x = mul_nonIEEE(backupReg0f, intBitsToFloat(uf_remappedPS[0].x)); +R0f.y = mul_nonIEEE(backupReg1f, intBitsToFloat(uf_remappedPS[0].y)); +R0f.z = mul_nonIEEE(backupReg2f, intBitsToFloat(uf_remappedPS[0].z)); +R0f.w = mul_nonIEEE(backupReg3f, intBitsToFloat(uf_remappedPS[0].w)); +// export +passPixelColor0 = vec4(R0f.x, R0f.y, R0f.z, R0f.w)*float(0); +} diff --git a/Enhancements/VCN64_Undarken/rules.txt b/Enhancements/VCN64_Undarken/rules.txt index 558f57c4..b0dabb14 100644 --- a/Enhancements/VCN64_Undarken/rules.txt +++ b/Enhancements/VCN64_Undarken/rules.txt @@ -1,6 +1,6 @@ -[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. -version = 3 +[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. +version = 3 diff --git a/Enhancements/VCNES_Undarken/d2a97b2fb99411a5_0000000000000079_ps.txt b/Enhancements/VCNES_Undarken/d2a97b2fb99411a5_0000000000000079_ps.txt index ec1b5965..6cf63375 100644 --- a/Enhancements/VCNES_Undarken/d2a97b2fb99411a5_0000000000000079_ps.txt +++ b/Enhancements/VCNES_Undarken/d2a97b2fb99411a5_0000000000000079_ps.txt @@ -1,35 +1,35 @@ -#version 420 -#extension GL_ARB_texture_gather : enable -#extension GL_ARB_separate_shader_objects : enable -// shader d2a97b2fb99411a5 -uniform vec2 uf_fragCoordScale; -layout(binding = 0) uniform sampler2D textureUnitPS0; -layout(location = 0) in vec4 passParameterSem0; -layout(location = 0) out vec4 passPixelColor0; -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); -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; -R0f.xyzw = (texture(textureUnitPS0, R0f.xy).xyzw); -// export -passPixelColor0 = vec4(R0f.x, R0f.y, R0f.z, R0f.w)*float(1.420118343195266); -} +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +// shader d2a97b2fb99411a5 +uniform vec2 uf_fragCoordScale; +layout(binding = 0) uniform sampler2D textureUnitPS0; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 0) out vec4 passPixelColor0; +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); +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; +R0f.xyzw = (texture(textureUnitPS0, R0f.xy).xyzw); +// export +passPixelColor0 = vec4(R0f.x, R0f.y, R0f.z, R0f.w)*float(1.420118343195266); +} diff --git a/Enhancements/VCNES_Undarken/rules.txt b/Enhancements/VCNES_Undarken/rules.txt index eb441009..a72959ba 100644 --- a/Enhancements/VCNES_Undarken/rules.txt +++ b/Enhancements/VCNES_Undarken/rules.txt @@ -1,6 +1,6 @@ -[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. -version = 3 +[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. +version = 3 diff --git a/Workarounds/BreathOfTheWild_!ShadowFix/rules.txt b/Workarounds/BreathOfTheWild_!ShadowFix/rules.txt index e549d7e5..f3a8b7c6 100644 --- a/Workarounds/BreathOfTheWild_!ShadowFix/rules.txt +++ b/Workarounds/BreathOfTheWild_!ShadowFix/rules.txt @@ -1,7 +1,7 @@ [Definition] titleIds = 00050000101C9300,00050000101C9400,00050000101C9500 -name = "AMD & Intel Shadows Workaround" -path = "The Legend of Zelda: Breath of the Wild/Workarounds/AMD & Intel Shadows" +name = "AMD and Intel Shadows Workaround" +path = "The Legend of Zelda: Breath of the Wild/Workarounds/GPU specific workarounds/AMD and Intel: Shadows" description = Fixes shadows when using an AMD or Intel graphics card. version = 3 diff --git a/Workarounds/BreathOfTheWild_Intel_FlippedLights/rules.txt b/Workarounds/BreathOfTheWild_Intel_FlippedLights/rules.txt index 68cbde4f..9a9e4edc 100644 --- a/Workarounds/BreathOfTheWild_Intel_FlippedLights/rules.txt +++ b/Workarounds/BreathOfTheWild_Intel_FlippedLights/rules.txt @@ -1,7 +1,7 @@ [Definition] titleIds = 00050000101C9300,00050000101C9400,00050000101C9500 -name = "Fix Flipped Lighting On Older Intel iGPU Drivers" -path = "The Legend of Zelda: Breath of the Wild/Workarounds/Intel Integrated GPU (Only for Intel GPUs)/Fix Flipped Intel Lights v1.5" +name = "Workaround for flipped lights on Intel GPU's with certain drivers" +path = "The Legend of Zelda: Breath of the Wild/Workarounds/GPU specific workarounds/Intel: Flipped Lights" description = This workaround targets users of Intel iGPU drivers 23.xx and older experiencing flipped lighting issues. These drivers may offer better performance but have graphical glitches. This pack aims to fix the graphical issues so the older drivers create visuals similar to the new drivers. These older drivers may be found on Intel's site https://downloadcenter.intel.com/download/27484/Graphics-Intel-Graphics-Driver-for-Windows-15-65-. version = 3 diff --git a/Workarounds/BreathOfTheWild_Intel_RemoveBloom/rules.txt b/Workarounds/BreathOfTheWild_Intel_RemoveBloom/rules.txt index 9a714dc3..7550c653 100644 --- a/Workarounds/BreathOfTheWild_Intel_RemoveBloom/rules.txt +++ b/Workarounds/BreathOfTheWild_Intel_RemoveBloom/rules.txt @@ -1,7 +1,7 @@ [Definition] titleIds = 00050000101C9300,00050000101C9400,00050000101C9500 -name = "Remove Intel Excess Bloom" -path = "The Legend of Zelda: Breath of the Wild/Workarounds/Intel Integrated GPU (Only for Intel GPUs)/Remove Excess Intel Bloom" +name = "Remove excess bloom on Intel GPU's with certain drivers" +path = "The Legend of Zelda: Breath of the Wild/Workarounds/GPU specific workarounds/Intel: Remove Excess Bloom" description = This workaround targets users of Intel iGPU drivers 23.xx and older experiencing bloom issue. These drivers may offer better performance but have graphical glitches. This pack aims to fix the graphical issues so the older drivers create visuals similar to the new drivers. These older drivers may be found on Intel's site https://downloadcenter.intel.com/download/27484/Graphics-Intel-Graphics-Driver-for-Windows-15-65-. version = 3 diff --git a/Workarounds/BreathOfTheWild_NVIDIASmoke/rules.txt b/Workarounds/BreathOfTheWild_NVIDIASmoke/rules.txt index 26a44e94..01dac7c0 100644 --- a/Workarounds/BreathOfTheWild_NVIDIASmoke/rules.txt +++ b/Workarounds/BreathOfTheWild_NVIDIASmoke/rules.txt @@ -1,7 +1,7 @@ [Definition] titleIds = 00050000101C9300,00050000101C9400,00050000101C9500 name = "NVIDIA Explosion Smoke Workaround" -path = "The Legend of Zelda: Breath of the Wild/Workarounds/NVIDIA Explosion Smoke" +path = "The Legend of Zelda: Breath of the Wild/Workarounds/GPU specific workarounds/Nvidia: Explosion Smoke" description = Partially fixes thin paper look explosion smoke on NVIDIA when using accurateShaderMul = true. version = 3