diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000..6462c2fc --- /dev/null +++ b/.travis.yml @@ -0,0 +1,62 @@ +# Aim to have fast builds +# TODO: Maybe don't build the files into seperate folders and copy them after that anyway. + +language: php + +php: + - 7.0 + +git: + depth: 1 + submodules: false + +if: branch IS master +if: tag IS blank + +branches: + only: + master + +# Simultaneous builds for common and uncommon resolutions +env: + matrix: + - buildType=Common + - buildType=Uncommon + global: + - secure: "GBdfAmN1q45grcomyEMeFWyj9sP3t147oO60O5M1jdnXk+1wKf8x7MMp6/RTzTUioKTRtXn6RoCSQOgqQtacSwVg1X97UCczr50i49SLZ3IEeP9g3gAvEfa9KZN3QZa6Sb79xTuOggLiF8POpC5ow8ZPnbaD1CQlLA/z+YaOYmMym69WLE5v5gJRuoXVQFHbbWKYkCCUP8wZ2Bp5bgxgeRuSNSUmWRJJdtzmuEYcPMHDuQ0LYSNr8XM7+1O/UOXeSHfIl5Y7RD8wogXbq7B2xF34TPLMBVPQVzuOyuD0Nrf9TCL6uiEmGr3B8tTGgVquP6YPfiLIlchb/o9rxB+LL/EURfVy73ZaaTiDaOQKxCXdds0+riA3NoJduAETbbH6yLupRul8WawsO6iKL0yKSwHesgBBtT61ZrQRXsUmGtIyrPLosfp/vzOQ6b5rjS7zkabl3W73K1J46IEiZu30S7pjC7jYR78h/Kxiypg1jk3awXXS67Yp3AGvkLIp2RNouX1ja3KI+UObM6dkexDD0xpKypvTHWsZ6XQdqYhJthSVGGDP3jDbTFS4drrpayNLNljIE3hX5PXae3m+swLr0F3bxD4w2Vvo7cFfJ76119amhGavQ1USNuDnMvrPxeL5gW3vkXBT5YoSXegdAbhXlZ7dgJmRoG4om8eL78QUFp8=" # GITHUB_TOKEN + +matrix: + fast_finish: true + +# === Build steps === + +# No dependencies +install: npm install -g github-release-cli + +# No need to debug the PHP code. Would slow down execution +before_script: + - phpenv config-rm xdebug.ini + +script: ./build.sh + +after_success: + # Create zip file + - mkdir build + - mv $TRAVIS_BUILD_DIR/Enhancement/* build + - mv $TRAVIS_BUILD_DIR/Enthusiast/* build + - mv $TRAVIS_BUILD_DIR/Modifications/* build + - mv $TRAVIS_BUILD_DIR/Performance/* build + - mv $TRAVIS_BUILD_DIR/Quality/* build + - mv $TRAVIS_BUILD_DIR/Workaround/* build + - cd build + - zip -o -9 -r -q "../graphicPacks$buildType""_$TRAVIS_BUILD_NUMBER"".zip" ./* + - cd .. + # Create github release + - | + github-release upload \ + --owner=Crementif \ + --repo=cemu_graphic_packs \ + --tag="Travis$TRAVIS_BUILD_NUMBER" \ + --name="Graphic Packs: version $TRAVIS_BUILD_NUMBER" \ + --body="$(git log -1 --format='Commited at %ci by **%cn** in commit %h%n### %s%n```%n%b%n```')" \ + "graphicPacks$buildType""_$TRAVIS_BUILD_NUMBER"".zip" \ No newline at end of file diff --git a/AppVeyor/readme.txt b/AppVeyor/readme.txt deleted file mode 100644 index 6b785b03..00000000 --- a/AppVeyor/readme.txt +++ /dev/null @@ -1,19 +0,0 @@ -Go to the GitHub Site for more information: https://slashiee.github.io/cemu_graphic_packs/ - -Please delete any current graphics packs that you are going to replace! This is necessary if, for example, any shader edits in an older installed version are deleted from a pack in a future downloaded version. - -Contributors: -slashiee - 417 commits: 117,762 line additions and 131,299 line deletions. -getdls - 31 commits: 30,136 line additions and 1,317 line deletions. -Darkemaste - 23 commits: 14,684 line additions and 747 line deletions. -JoelAlone - 17 commits: 22,529 line additions and 1,797 line deletions. -NAVras-Z - 16 commits: 32,854 line additions and 14,979 line deletions. -alexkiri - 13 commits: 18,432 line additions and 17,262 line deletions. -Crementif - 9 commits: 18,831 line additions and 14,792 line deletions. -Xalphenos - 6 commits: 312 line additions and 36 line deletions. -rajkosto - 6 commits: 503 line additions and 6 line deletions. -SwooshyCueb - 2 commits: 851 line additions and 990 line deletions. -runderscore - 1 commit: 21 line additions and 3 line deletions. -riperiperi - 1 commit: 103 line additions and 22 line deletions. -tails101 - 1 commit: 10 line additions and 0 line deletions. -Keelhauled - 1 commit: 99 line additions and 0 line deletions. \ No newline at end of file diff --git a/AppVeyor/BreathOfTheWild_!RegularShadows/rules.txt b/Enhancement/BreathOfTheWild_!RegularShadows/rules.txt similarity index 100% rename from AppVeyor/BreathOfTheWild_!RegularShadows/rules.txt rename to Enhancement/BreathOfTheWild_!RegularShadows/rules.txt diff --git a/Enhancement/BreathOfTheWild_LODBias/rules.txt b/Enhancement/BreathOfTheWild_LODBias/rules.txt new file mode 100644 index 00000000..1e45b3d0 --- /dev/null +++ b/Enhancement/BreathOfTheWild_LODBias/rules.txt @@ -0,0 +1,8 @@ +[Definition] +titleIds = 00050000101C9300,00050000101C9400,00050000101C9500 +name = "The Legend of Zelda: Breath of the Wild - LOD Bias" +version = 2 + +[TextureRedefine] +formats = 0x31,0x32,0x34,0x35,0x431,0x432,0x433,0x234,0x235 +overwriteRelativeLodBias = -3 diff --git a/Enhancement/Runner2_DisableBlur/4fe1bb2bc0611f15_0000000000000079_ps.txt b/Enhancement/Runner2_DisableBlur/4fe1bb2bc0611f15_0000000000000079_ps.txt new file mode 100644 index 00000000..6a0bae83 --- /dev/null +++ b/Enhancement/Runner2_DisableBlur/4fe1bb2bc0611f15_0000000000000079_ps.txt @@ -0,0 +1,315 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +// shader 4fe1bb2bc0611f15 +// Disable this fucking godforsaken piece of shit blur filter that makes the game look lower res than it actually is +uniform ivec4 uf_remappedPS[1]; +layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf4000800 res 1280x720x1 dim 1 tm: 4 format 041a 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) out vec4 passPixelColor0; +uniform vec2 uf_fragCoordScale; +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 R6f = vec4(0.0); +vec4 R7f = vec4(0.0); +vec4 R8f = vec4(0.0); +vec4 R9f = vec4(0.0); +vec4 R10f = vec4(0.0); +vec4 R11f = vec4(0.0); +vec4 R123f = vec4(0.0); +vec4 R124f = 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 = vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw); +// 0 +PV0f.z = R0f.x + 0.5; +PV0f.w = R0f.y + 0.5; +// 1 +R4f.x = mul_nonIEEE(PV0f.z, intBitsToFloat(uf_remappedPS[0].x)); +PV1f.x = R4f.x; +R4f.y = mul_nonIEEE(PV0f.w, intBitsToFloat(uf_remappedPS[0].y)); +PV1f.y = R4f.y; +// 2 +R0f.xyz = vec3(PV1f.x,PV1f.y,PV1f.x) + vec3(intBitsToFloat(0xba99999a),0.0,0.0); +R0f.w = PV1f.y + intBitsToFloat(0xbb088889); +R1f.x = PV1f.x + intBitsToFloat(0x3a99999a); +PS0f = R1f.x; +// 3 +R2f.x = R4f.x + 0.0; +R1f.y = R4f.y + 0.0; +R2f.zwy = vec3(R4f.y,R4f.x,R4f.y) + vec3(intBitsToFloat(0x3b088889),intBitsToFloat(0xba99999a),intBitsToFloat(0xbb088889)); +PS1f = R2f.y; +// 4 +R3f.x = R4f.x + intBitsToFloat(0xba99999a); +R3f.y = R4f.y + intBitsToFloat(0x3b088889); +R1f.z = R4f.x + intBitsToFloat(0x3a99999a); +R1f.w = R4f.y + intBitsToFloat(0xbb088889); +R6f.x = R4f.x + intBitsToFloat(0x3a99999a); +PS0f = R6f.x; +//R11f.xyzw = (texture(textureUnitPS0, R4f.xy).xyzw); +R11f.xyzw = (texture(textureUnitPS0, R3f.xy).xyzw); +R5f.xyzw = (texture(textureUnitPS0, R0f.xy).xyzw); +R0f.xyzw = (texture(textureUnitPS0, R0f.zw).xyzw); +R7f.xyzw = (texture(textureUnitPS0, R1f.xy).xyzw); +R8f.xyzw = (texture(textureUnitPS0, R2f.xz).xyzw); +R9f.xyzw = (texture(textureUnitPS0, R2f.wy).xyzw); +R3f.xyzw = (texture(textureUnitPS0, R3f.xy).xyzw); +R10f.xyzw = (texture(textureUnitPS0, R1f.zw).xyzw); +// 0 +R127f.x = -(R11f.x) + R5f.x; +R6f.y = R4f.y + intBitsToFloat(0x3b088889); +R123f.z = (R11f.w * 2.0 + -(1.0)); +PV0f.z = R123f.z; +PV0f.w = R5f.w + intBitsToFloat(0x3c23d70a); +R127f.w = -(R11f.y) + R5f.y; +PS0f = R127f.w; +// 1 +R126f.x = -(R11f.z) + R5f.z; +//PV1f.y = max(PV0f.z, -(PV0f.z)); +PV1f.y = max(PV1f.z, -(PV1f.z)); +PV1f.z = -(R11f.w) + PV0f.w; +R126f.w = -(R11f.w) + R5f.w; +PS1f = R0f.w + intBitsToFloat(0x3c23d70a); +// 2 +backupReg0f = R0f.x; +PV0f.x = -(PV1f.y) + 1.0; +R123f.y = intBitsToFloat(((PV1f.z >= 0.0)?(floatBitsToInt(1.0)):(0))); +PV0f.y = R123f.y; +R127f.z = -(R11f.w) + PS1f; +R5f.w = R7f.w + intBitsToFloat(0x3c23d70a); +R1f.w = -(R11f.x) + backupReg0f; +PS0f = R1f.w; +// 3 +R5f.x = (mul_nonIEEE(R127f.x,PV0f.y) + R11f.x); +R5f.y = (mul_nonIEEE(R127f.w,PV0f.y) + R11f.y); +R5f.z = (mul_nonIEEE(R126f.x,PV0f.y) + R11f.z); +R2f.w = max(PV0f.x, intBitsToFloat(0x3de38e39)); +PV1f.w = R2f.w; +R4f.y = (mul_nonIEEE(R126f.w,PV0f.y) + R11f.w); +PS1f = R4f.y; +// 4 +backupReg0f = R0f.y; +backupReg1f = R0f.z; +backupReg2f = R0f.w; +R4f.x = intBitsToFloat(((R127f.z >= 0.0)?(floatBitsToInt(1.0)):(0))); +R0f.yzw = vec3(-(R11f.y),-(PV1f.w),-(R11f.z)) + vec3(backupReg0f,1.0,backupReg1f); +R0f.x = -(R11f.w) + backupReg2f; +PS0f = R0f.x; +R6f.xyzw = (texture(textureUnitPS0, R6f.xy).xyzw); +// 0 +backupReg0f = R0f.y; +R127f.x = R8f.w + intBitsToFloat(0x3c23d70a); +R0f.y = R0f.z * intBitsToFloat(0x3e15f619); +PV0f.y = R0f.y; +R127f.z = -(R11f.w) + R5f.w; +R126f.w = (mul_nonIEEE(backupReg0f,R4f.x) + R11f.y); +R125f.x = (mul_nonIEEE(R0f.x,R4f.x) + R11f.w); +PS0f = R125f.x; +// 1 +PV1f.x = mul_nonIEEE(PV0f.y, R5f.x); +PV1f.y = mul_nonIEEE(PV0f.y, R4f.y); +PV1f.z = mul_nonIEEE(PV0f.y, R5f.z); +PV1f.w = mul_nonIEEE(PV0f.y, R5f.y); +R127f.w = (mul_nonIEEE(R1f.w,R4f.x) + R11f.x); +PS1f = R127f.w; +// 2 +R126f.x = (mul_nonIEEE(R11f.x,R2f.w) + PV1f.x); +R126f.y = (mul_nonIEEE(R11f.w,R2f.w) + PV1f.y); +R126f.z = (mul_nonIEEE(R11f.z,R2f.w) + PV1f.z); +R125f.w = (mul_nonIEEE(R11f.y,R2f.w) + PV1f.w); +R127f.y = (mul_nonIEEE(R0f.w,R4f.x) + R11f.z); +PS0f = R127f.y; +// 3 +R124f.x = -(R11f.x) + R7f.x; +R124f.y = intBitsToFloat(((R127f.z >= 0.0)?(floatBitsToInt(1.0)):(0))); +R127f.z = -(R11f.z) + R7f.z; +R124f.w = -(R11f.y) + R7f.y; +R125f.y = -(R11f.w) + R7f.w; +PS1f = R125f.y; +// 4 +backupReg0f = R127f.x; +backupReg1f = R0f.y; +backupReg2f = R126f.z; +backupReg1f = R0f.y; +R127f.x = (mul_nonIEEE(R0f.y,R127f.w) + R126f.x); +PV0f.y = -(R11f.w) + backupReg0f; +R126f.z = (mul_nonIEEE(backupReg1f,R127f.y) + backupReg2f); +R127f.w = R9f.w + intBitsToFloat(0x3c23d70a); +R126f.x = (mul_nonIEEE(backupReg1f,R125f.x) + R126f.y); +PS0f = R126f.x; +// 5 +backupReg0f = R124f.x; +R124f.x = (mul_nonIEEE(backupReg0f,R124f.y) + R11f.x); +R127f.y = (mul_nonIEEE(R127f.z,R124f.y) + R11f.z); +R127f.z = (mul_nonIEEE(R0f.y,R126f.w) + R125f.w); +R126f.w = (mul_nonIEEE(R124f.w,R124f.y) + R11f.y); +R7f.x = intBitsToFloat(((PV0f.y >= 0.0)?(floatBitsToInt(1.0)):(0))); +PS1f = R7f.x; +// 6 +backupReg0f = R127f.w; +R125f.x = -(R11f.z) + R8f.z; +R123f.y = (mul_nonIEEE(R125f.y,R124f.y) + R11f.w); +PV0f.y = R123f.y; +R125f.z = -(R11f.w) + R8f.w; +R127f.w = -(R11f.x) + R8f.x; +R124f.z = -(R11f.w) + backupReg0f; +PS0f = R124f.z; +// 7 +backupReg0f = R127f.x; +backupReg1f = R126f.w; +R127f.x = R3f.w + intBitsToFloat(0x3c23d70a); +R125f.y = (mul_nonIEEE(R0f.y,R124f.x) + backupReg0f); +PV1f.z = -(R11f.y) + R8f.y; +R126f.w = (mul_nonIEEE(R0f.y,backupReg1f) + R127f.z); +R125f.w = (mul_nonIEEE(R0f.y,PV0f.y) + R126f.x); +PS1f = R125f.w; +// 8 +backupReg0f = R125f.x; +backupReg1f = R127f.y; +backupReg2f = R126f.z; +backupReg3f = R127f.w; +R125f.x = (mul_nonIEEE(PV1f.z,R7f.x) + R11f.y); +R127f.y = (mul_nonIEEE(backupReg0f,R7f.x) + R11f.z); +R126f.z = (mul_nonIEEE(R0f.y,backupReg1f) + backupReg2f); +R127f.w = (mul_nonIEEE(backupReg3f,R7f.x) + R11f.x); +R126f.x = (mul_nonIEEE(R125f.z,R7f.x) + R11f.w); +PS0f = R126f.x; +// 9 +R124f.x = -(R11f.x) + R9f.x; +R126f.y = intBitsToFloat(((R124f.z >= 0.0)?(floatBitsToInt(1.0)):(0))); +R124f.zwy = vec3(-(R11f.z),-(R11f.y),-(R11f.w)) + vec3(R9f.z,R9f.y,R9f.w); +PS1f = R124f.y; +// 10 +backupReg0f = R127f.x; +backupReg1f = R0f.y; +backupReg2f = R126f.z; +backupReg1f = R0f.y; +R127f.x = (mul_nonIEEE(R0f.y,R127f.w) + R125f.y); +PV0f.y = -(R11f.w) + backupReg0f; +R126f.z = (mul_nonIEEE(backupReg1f,R127f.y) + backupReg2f); +R127f.w = R10f.w + intBitsToFloat(0x3c23d70a); +R9f.x = backupReg1f * intBitsToFloat(0x3f3504f3); +PS0f = R9f.x; +// 11 +backupReg0f = R126f.x; +R126f.x = (mul_nonIEEE(R0f.y,backupReg0f) + R125f.w); +R127f.y = (mul_nonIEEE(R124f.z,R126f.y) + R11f.z); +R124f.z = (mul_nonIEEE(R0f.y,R125f.x) + R126f.w); +R126f.w = (mul_nonIEEE(R124f.w,R126f.y) + R11f.y); +R125f.x = intBitsToFloat(((PV0f.y >= 0.0)?(floatBitsToInt(1.0)):(0))); +PS1f = R125f.x; +// 12 +backupReg0f = R126f.y; +R123f.x = (mul_nonIEEE(R124f.x,R126f.y) + R11f.x); +PV0f.x = R123f.x; +R126f.y = (mul_nonIEEE(R124f.y,backupReg0f) + R11f.w); +R125f.z = -(R11f.z) + R3f.z; +R125f.w = -(R11f.x) + R3f.x; +R124f.x = -(R11f.w) + R3f.w; +PS0f = R124f.x; +// 13 +backupReg0f = R127f.y; +backupReg1f = R126f.z; +PV1f.x = -(R11f.w) + R127f.w; +R127f.y = R6f.w + intBitsToFloat(0x3c23d70a); +PV1f.z = -(R11f.y) + R3f.y; +R127f.w = (mul_nonIEEE(R9f.x,PV0f.x) + R127f.x); +R126f.z = (mul_nonIEEE(R9f.x,backupReg0f) + backupReg1f); +PS1f = R126f.z; +// 14 +backupReg0f = R126f.x; +backupReg1f = R126f.w; +R126f.x = (mul_nonIEEE(R9f.x,R126f.y) + backupReg0f); +R126f.y = (mul_nonIEEE(R125f.z,R125f.x) + R11f.z); +R125f.z = (mul_nonIEEE(PV1f.z,R125f.x) + R11f.y); +R126f.w = (mul_nonIEEE(R9f.x,backupReg1f) + R124f.z); +R3f.y = intBitsToFloat(((PV1f.x >= 0.0)?(floatBitsToInt(1.0)):(0))); +PS0f = R3f.y; +// 15 +backupReg0f = R125f.x; +backupReg0f = R125f.x; +R125f.x = (mul_nonIEEE(R124f.x,backupReg0f) + R11f.w); +R124f.y = -(R11f.y) + R10f.y; +R124f.z = -(R11f.z) + R10f.z; +R123f.w = (mul_nonIEEE(R125f.w,backupReg0f) + R11f.x); +PV1f.w = R123f.w; +R125f.y = -(R11f.w) + R10f.w; +PS1f = R125f.y; +// 16 +backupReg0f = R127f.w; +backupReg1f = R126f.z; +R124f.x = -(R11f.x) + R10f.x; +PV0f.y = -(R11f.w) + R127f.y; +R126f.z = (mul_nonIEEE(R9f.x,R125f.z) + R126f.w); +R127f.w = (mul_nonIEEE(R9f.x,PV1f.w) + backupReg0f); +R127f.y = (mul_nonIEEE(R9f.x,R126f.y) + backupReg1f); +PS0f = R127f.y; +// 17 +backupReg0f = R126f.x; +backupReg1f = R124f.z; +backupReg2f = R124f.y; +R126f.x = (mul_nonIEEE(R9f.x,R125f.x) + backupReg0f); +R124f.y = intBitsToFloat(((PV0f.y >= 0.0)?(floatBitsToInt(1.0)):(0))); +PV1f.y = R124f.y; +R124f.z = (mul_nonIEEE(backupReg1f,R3f.y) + R11f.z); +R126f.w = (mul_nonIEEE(backupReg2f,R3f.y) + R11f.y); +PS1f = -(R11f.z) + R6f.z; +// 18 +R123f.x = (mul_nonIEEE(R124f.x,R3f.y) + R11f.x); +PV0f.x = R123f.x; +R123f.y = (mul_nonIEEE(R125f.y,R3f.y) + R11f.w); +PV0f.y = R123f.y; +R125f.z = -(R11f.w) + R6f.w; +R125f.w = -(R11f.x) + R6f.x; +R125f.y = (mul_nonIEEE(PS1f,PV1f.y) + R11f.z); +PS0f = R125f.y; +// 19 +backupReg0f = R126f.x; +R126f.x = (mul_nonIEEE(R9f.x,PV0f.x) + R127f.w); +R123f.y = (mul_nonIEEE(R9f.x,R124f.z) + R127f.y); +PV1f.y = R123f.y; +PV1f.z = -(R11f.y) + R6f.y; +R127f.w = (mul_nonIEEE(R9f.x,R126f.w) + R126f.z); +R126f.w = (mul_nonIEEE(R9f.x,PV0f.y) + backupReg0f); +PS1f = R126f.w; +// 20 +R123f.x = (mul_nonIEEE(R125f.z,R124f.y) + R11f.w); +PV0f.x = R123f.x; +R123f.z = (mul_nonIEEE(PV1f.z,R124f.y) + R11f.y); +PV0f.z = R123f.z; +R123f.w = (mul_nonIEEE(R125f.w,R124f.y) + R11f.x); +PV0f.w = R123f.w; +R11f.z = (mul_nonIEEE(R9f.x,R125f.y) + PV1f.y); +PS0f = R11f.z; +// 21 +R11f.x = (mul_nonIEEE(R9f.x,PV0f.w) + R126f.x); +R11f.y = (mul_nonIEEE(R9f.x,PV0f.z) + R127f.w); +R11f.w = (mul_nonIEEE(R9f.x,PV0f.x) + R126f.w); +// export +passPixelColor0 = vec4(R11f.x, R11f.y, R11f.z, R11f.w); +} diff --git a/Enhancement/Runner2_DisableBlur/rules.txt b/Enhancement/Runner2_DisableBlur/rules.txt new file mode 100644 index 00000000..54a8497f --- /dev/null +++ b/Enhancement/Runner2_DisableBlur/rules.txt @@ -0,0 +1,4 @@ +[Definition] +titleIds = 00050000101DD600,000500001011AF00,0005000010136300,000500021011AF01 +name = "Runner2 - Disable Blur (use w/o resolution packs)" +version = 2 diff --git a/Enhancement/Splatoon_LODBias/rules.txt b/Enhancement/Splatoon_LODBias/rules.txt new file mode 100644 index 00000000..9ada8cbf --- /dev/null +++ b/Enhancement/Splatoon_LODBias/rules.txt @@ -0,0 +1,30 @@ +[Definition] +titleIds = 0005000010176900,0005000010176A00,0005000010162B00 +name = "Splatoon - LOD Bias" +version = 2 + +#general + +[TextureRedefine] +formats = 0x31,0x32,0x34,0x35,0x431,0x432,0x433,0x234,0x235 +overwriteRelativeLodBias = -3 + +#ink splats - disabled by default, mainly for online sake + +#[TextureRedefine] +#width = 32 +#height = 32 +#formats = 0x33 +#overwriteLodBias = -16 + +#[TextureRedefine] +#width = 32 +#height = 64 +#formats = 0x33 +#overwriteLodBias = -16 + +#[TextureRedefine] +#width = 128 +#height = 128 +#formats = 0x33 +#overwriteLodBias = -16 \ No newline at end of file diff --git a/Modifications/SonicLostWorld_NoTimeLimit/patches.txt b/Modifications/SonicLostWorld_NoTimeLimit/patches.txt new file mode 100644 index 00000000..cac01e74 --- /dev/null +++ b/Modifications/SonicLostWorld_NoTimeLimit/patches.txt @@ -0,0 +1,3 @@ +[sonic2013] +moduleMatches = 0x7FE07429, 0xC5691A40 +0x022927E0 = nop diff --git a/Modifications/SonicLostWorld_NoTimeLimit/rules.txt b/Modifications/SonicLostWorld_NoTimeLimit/rules.txt new file mode 100644 index 00000000..23ca407f --- /dev/null +++ b/Modifications/SonicLostWorld_NoTimeLimit/rules.txt @@ -0,0 +1,4 @@ +[Definition] +titleIds = 0005000010135700,000500001012B100,0005000010128F00 +name = "Sonic Lost World - No Time Limit" +version = 2 diff --git a/AppVeyor/SuperSmashBros_NoBoxingRingScreen/rules.txt b/Modifications/SuperSmashBros_NoBoxingRingScreen/rules.txt similarity index 100% rename from AppVeyor/SuperSmashBros_NoBoxingRingScreen/rules.txt rename to Modifications/SuperSmashBros_NoBoxingRingScreen/rules.txt diff --git a/Source/HyruleWarriors/rules.txt b/Source/HyruleWarriors/rules.txt index 4743a137..5593542a 100644 --- a/Source/HyruleWarriors/rules.txt +++ b/Source/HyruleWarriors/rules.txt @@ -34,7 +34,7 @@ overwriteHeight = [TextureRedefine] #Gamepad (Co-Op) width = 648 -height = 368 +height = 360 overwriteWidth = overwriteHeight = diff --git a/Source/Minecraft/rules.txt b/Source/Minecraft/rules.txt new file mode 100644 index 00000000..497660ed --- /dev/null +++ b/Source/Minecraft/rules.txt @@ -0,0 +1,25 @@ + + +[Definition] +titleIds = 00050000101DBE00,00050000101D9D00,00050000101D7500 +name = "Minecraft: Wii U Edition - " +version = 2 + +[TextureRedefine] +width = 1280 +height = 720 +overwriteWidth = +overwriteHeight = + +[TextureRedefine] +width = 854 +height = 480 +#overwriteWidth = +#overwriteHeight = diff --git a/Source/Runner2/4fe1bb2bc0611f15_0000000000000079_ps.txt b/Source/Runner2/4fe1bb2bc0611f15_0000000000000079_ps.txt new file mode 100644 index 00000000..6a0bae83 --- /dev/null +++ b/Source/Runner2/4fe1bb2bc0611f15_0000000000000079_ps.txt @@ -0,0 +1,315 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +// shader 4fe1bb2bc0611f15 +// Disable this fucking godforsaken piece of shit blur filter that makes the game look lower res than it actually is +uniform ivec4 uf_remappedPS[1]; +layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf4000800 res 1280x720x1 dim 1 tm: 4 format 041a 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) out vec4 passPixelColor0; +uniform vec2 uf_fragCoordScale; +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 R6f = vec4(0.0); +vec4 R7f = vec4(0.0); +vec4 R8f = vec4(0.0); +vec4 R9f = vec4(0.0); +vec4 R10f = vec4(0.0); +vec4 R11f = vec4(0.0); +vec4 R123f = vec4(0.0); +vec4 R124f = 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 = vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw); +// 0 +PV0f.z = R0f.x + 0.5; +PV0f.w = R0f.y + 0.5; +// 1 +R4f.x = mul_nonIEEE(PV0f.z, intBitsToFloat(uf_remappedPS[0].x)); +PV1f.x = R4f.x; +R4f.y = mul_nonIEEE(PV0f.w, intBitsToFloat(uf_remappedPS[0].y)); +PV1f.y = R4f.y; +// 2 +R0f.xyz = vec3(PV1f.x,PV1f.y,PV1f.x) + vec3(intBitsToFloat(0xba99999a),0.0,0.0); +R0f.w = PV1f.y + intBitsToFloat(0xbb088889); +R1f.x = PV1f.x + intBitsToFloat(0x3a99999a); +PS0f = R1f.x; +// 3 +R2f.x = R4f.x + 0.0; +R1f.y = R4f.y + 0.0; +R2f.zwy = vec3(R4f.y,R4f.x,R4f.y) + vec3(intBitsToFloat(0x3b088889),intBitsToFloat(0xba99999a),intBitsToFloat(0xbb088889)); +PS1f = R2f.y; +// 4 +R3f.x = R4f.x + intBitsToFloat(0xba99999a); +R3f.y = R4f.y + intBitsToFloat(0x3b088889); +R1f.z = R4f.x + intBitsToFloat(0x3a99999a); +R1f.w = R4f.y + intBitsToFloat(0xbb088889); +R6f.x = R4f.x + intBitsToFloat(0x3a99999a); +PS0f = R6f.x; +//R11f.xyzw = (texture(textureUnitPS0, R4f.xy).xyzw); +R11f.xyzw = (texture(textureUnitPS0, R3f.xy).xyzw); +R5f.xyzw = (texture(textureUnitPS0, R0f.xy).xyzw); +R0f.xyzw = (texture(textureUnitPS0, R0f.zw).xyzw); +R7f.xyzw = (texture(textureUnitPS0, R1f.xy).xyzw); +R8f.xyzw = (texture(textureUnitPS0, R2f.xz).xyzw); +R9f.xyzw = (texture(textureUnitPS0, R2f.wy).xyzw); +R3f.xyzw = (texture(textureUnitPS0, R3f.xy).xyzw); +R10f.xyzw = (texture(textureUnitPS0, R1f.zw).xyzw); +// 0 +R127f.x = -(R11f.x) + R5f.x; +R6f.y = R4f.y + intBitsToFloat(0x3b088889); +R123f.z = (R11f.w * 2.0 + -(1.0)); +PV0f.z = R123f.z; +PV0f.w = R5f.w + intBitsToFloat(0x3c23d70a); +R127f.w = -(R11f.y) + R5f.y; +PS0f = R127f.w; +// 1 +R126f.x = -(R11f.z) + R5f.z; +//PV1f.y = max(PV0f.z, -(PV0f.z)); +PV1f.y = max(PV1f.z, -(PV1f.z)); +PV1f.z = -(R11f.w) + PV0f.w; +R126f.w = -(R11f.w) + R5f.w; +PS1f = R0f.w + intBitsToFloat(0x3c23d70a); +// 2 +backupReg0f = R0f.x; +PV0f.x = -(PV1f.y) + 1.0; +R123f.y = intBitsToFloat(((PV1f.z >= 0.0)?(floatBitsToInt(1.0)):(0))); +PV0f.y = R123f.y; +R127f.z = -(R11f.w) + PS1f; +R5f.w = R7f.w + intBitsToFloat(0x3c23d70a); +R1f.w = -(R11f.x) + backupReg0f; +PS0f = R1f.w; +// 3 +R5f.x = (mul_nonIEEE(R127f.x,PV0f.y) + R11f.x); +R5f.y = (mul_nonIEEE(R127f.w,PV0f.y) + R11f.y); +R5f.z = (mul_nonIEEE(R126f.x,PV0f.y) + R11f.z); +R2f.w = max(PV0f.x, intBitsToFloat(0x3de38e39)); +PV1f.w = R2f.w; +R4f.y = (mul_nonIEEE(R126f.w,PV0f.y) + R11f.w); +PS1f = R4f.y; +// 4 +backupReg0f = R0f.y; +backupReg1f = R0f.z; +backupReg2f = R0f.w; +R4f.x = intBitsToFloat(((R127f.z >= 0.0)?(floatBitsToInt(1.0)):(0))); +R0f.yzw = vec3(-(R11f.y),-(PV1f.w),-(R11f.z)) + vec3(backupReg0f,1.0,backupReg1f); +R0f.x = -(R11f.w) + backupReg2f; +PS0f = R0f.x; +R6f.xyzw = (texture(textureUnitPS0, R6f.xy).xyzw); +// 0 +backupReg0f = R0f.y; +R127f.x = R8f.w + intBitsToFloat(0x3c23d70a); +R0f.y = R0f.z * intBitsToFloat(0x3e15f619); +PV0f.y = R0f.y; +R127f.z = -(R11f.w) + R5f.w; +R126f.w = (mul_nonIEEE(backupReg0f,R4f.x) + R11f.y); +R125f.x = (mul_nonIEEE(R0f.x,R4f.x) + R11f.w); +PS0f = R125f.x; +// 1 +PV1f.x = mul_nonIEEE(PV0f.y, R5f.x); +PV1f.y = mul_nonIEEE(PV0f.y, R4f.y); +PV1f.z = mul_nonIEEE(PV0f.y, R5f.z); +PV1f.w = mul_nonIEEE(PV0f.y, R5f.y); +R127f.w = (mul_nonIEEE(R1f.w,R4f.x) + R11f.x); +PS1f = R127f.w; +// 2 +R126f.x = (mul_nonIEEE(R11f.x,R2f.w) + PV1f.x); +R126f.y = (mul_nonIEEE(R11f.w,R2f.w) + PV1f.y); +R126f.z = (mul_nonIEEE(R11f.z,R2f.w) + PV1f.z); +R125f.w = (mul_nonIEEE(R11f.y,R2f.w) + PV1f.w); +R127f.y = (mul_nonIEEE(R0f.w,R4f.x) + R11f.z); +PS0f = R127f.y; +// 3 +R124f.x = -(R11f.x) + R7f.x; +R124f.y = intBitsToFloat(((R127f.z >= 0.0)?(floatBitsToInt(1.0)):(0))); +R127f.z = -(R11f.z) + R7f.z; +R124f.w = -(R11f.y) + R7f.y; +R125f.y = -(R11f.w) + R7f.w; +PS1f = R125f.y; +// 4 +backupReg0f = R127f.x; +backupReg1f = R0f.y; +backupReg2f = R126f.z; +backupReg1f = R0f.y; +R127f.x = (mul_nonIEEE(R0f.y,R127f.w) + R126f.x); +PV0f.y = -(R11f.w) + backupReg0f; +R126f.z = (mul_nonIEEE(backupReg1f,R127f.y) + backupReg2f); +R127f.w = R9f.w + intBitsToFloat(0x3c23d70a); +R126f.x = (mul_nonIEEE(backupReg1f,R125f.x) + R126f.y); +PS0f = R126f.x; +// 5 +backupReg0f = R124f.x; +R124f.x = (mul_nonIEEE(backupReg0f,R124f.y) + R11f.x); +R127f.y = (mul_nonIEEE(R127f.z,R124f.y) + R11f.z); +R127f.z = (mul_nonIEEE(R0f.y,R126f.w) + R125f.w); +R126f.w = (mul_nonIEEE(R124f.w,R124f.y) + R11f.y); +R7f.x = intBitsToFloat(((PV0f.y >= 0.0)?(floatBitsToInt(1.0)):(0))); +PS1f = R7f.x; +// 6 +backupReg0f = R127f.w; +R125f.x = -(R11f.z) + R8f.z; +R123f.y = (mul_nonIEEE(R125f.y,R124f.y) + R11f.w); +PV0f.y = R123f.y; +R125f.z = -(R11f.w) + R8f.w; +R127f.w = -(R11f.x) + R8f.x; +R124f.z = -(R11f.w) + backupReg0f; +PS0f = R124f.z; +// 7 +backupReg0f = R127f.x; +backupReg1f = R126f.w; +R127f.x = R3f.w + intBitsToFloat(0x3c23d70a); +R125f.y = (mul_nonIEEE(R0f.y,R124f.x) + backupReg0f); +PV1f.z = -(R11f.y) + R8f.y; +R126f.w = (mul_nonIEEE(R0f.y,backupReg1f) + R127f.z); +R125f.w = (mul_nonIEEE(R0f.y,PV0f.y) + R126f.x); +PS1f = R125f.w; +// 8 +backupReg0f = R125f.x; +backupReg1f = R127f.y; +backupReg2f = R126f.z; +backupReg3f = R127f.w; +R125f.x = (mul_nonIEEE(PV1f.z,R7f.x) + R11f.y); +R127f.y = (mul_nonIEEE(backupReg0f,R7f.x) + R11f.z); +R126f.z = (mul_nonIEEE(R0f.y,backupReg1f) + backupReg2f); +R127f.w = (mul_nonIEEE(backupReg3f,R7f.x) + R11f.x); +R126f.x = (mul_nonIEEE(R125f.z,R7f.x) + R11f.w); +PS0f = R126f.x; +// 9 +R124f.x = -(R11f.x) + R9f.x; +R126f.y = intBitsToFloat(((R124f.z >= 0.0)?(floatBitsToInt(1.0)):(0))); +R124f.zwy = vec3(-(R11f.z),-(R11f.y),-(R11f.w)) + vec3(R9f.z,R9f.y,R9f.w); +PS1f = R124f.y; +// 10 +backupReg0f = R127f.x; +backupReg1f = R0f.y; +backupReg2f = R126f.z; +backupReg1f = R0f.y; +R127f.x = (mul_nonIEEE(R0f.y,R127f.w) + R125f.y); +PV0f.y = -(R11f.w) + backupReg0f; +R126f.z = (mul_nonIEEE(backupReg1f,R127f.y) + backupReg2f); +R127f.w = R10f.w + intBitsToFloat(0x3c23d70a); +R9f.x = backupReg1f * intBitsToFloat(0x3f3504f3); +PS0f = R9f.x; +// 11 +backupReg0f = R126f.x; +R126f.x = (mul_nonIEEE(R0f.y,backupReg0f) + R125f.w); +R127f.y = (mul_nonIEEE(R124f.z,R126f.y) + R11f.z); +R124f.z = (mul_nonIEEE(R0f.y,R125f.x) + R126f.w); +R126f.w = (mul_nonIEEE(R124f.w,R126f.y) + R11f.y); +R125f.x = intBitsToFloat(((PV0f.y >= 0.0)?(floatBitsToInt(1.0)):(0))); +PS1f = R125f.x; +// 12 +backupReg0f = R126f.y; +R123f.x = (mul_nonIEEE(R124f.x,R126f.y) + R11f.x); +PV0f.x = R123f.x; +R126f.y = (mul_nonIEEE(R124f.y,backupReg0f) + R11f.w); +R125f.z = -(R11f.z) + R3f.z; +R125f.w = -(R11f.x) + R3f.x; +R124f.x = -(R11f.w) + R3f.w; +PS0f = R124f.x; +// 13 +backupReg0f = R127f.y; +backupReg1f = R126f.z; +PV1f.x = -(R11f.w) + R127f.w; +R127f.y = R6f.w + intBitsToFloat(0x3c23d70a); +PV1f.z = -(R11f.y) + R3f.y; +R127f.w = (mul_nonIEEE(R9f.x,PV0f.x) + R127f.x); +R126f.z = (mul_nonIEEE(R9f.x,backupReg0f) + backupReg1f); +PS1f = R126f.z; +// 14 +backupReg0f = R126f.x; +backupReg1f = R126f.w; +R126f.x = (mul_nonIEEE(R9f.x,R126f.y) + backupReg0f); +R126f.y = (mul_nonIEEE(R125f.z,R125f.x) + R11f.z); +R125f.z = (mul_nonIEEE(PV1f.z,R125f.x) + R11f.y); +R126f.w = (mul_nonIEEE(R9f.x,backupReg1f) + R124f.z); +R3f.y = intBitsToFloat(((PV1f.x >= 0.0)?(floatBitsToInt(1.0)):(0))); +PS0f = R3f.y; +// 15 +backupReg0f = R125f.x; +backupReg0f = R125f.x; +R125f.x = (mul_nonIEEE(R124f.x,backupReg0f) + R11f.w); +R124f.y = -(R11f.y) + R10f.y; +R124f.z = -(R11f.z) + R10f.z; +R123f.w = (mul_nonIEEE(R125f.w,backupReg0f) + R11f.x); +PV1f.w = R123f.w; +R125f.y = -(R11f.w) + R10f.w; +PS1f = R125f.y; +// 16 +backupReg0f = R127f.w; +backupReg1f = R126f.z; +R124f.x = -(R11f.x) + R10f.x; +PV0f.y = -(R11f.w) + R127f.y; +R126f.z = (mul_nonIEEE(R9f.x,R125f.z) + R126f.w); +R127f.w = (mul_nonIEEE(R9f.x,PV1f.w) + backupReg0f); +R127f.y = (mul_nonIEEE(R9f.x,R126f.y) + backupReg1f); +PS0f = R127f.y; +// 17 +backupReg0f = R126f.x; +backupReg1f = R124f.z; +backupReg2f = R124f.y; +R126f.x = (mul_nonIEEE(R9f.x,R125f.x) + backupReg0f); +R124f.y = intBitsToFloat(((PV0f.y >= 0.0)?(floatBitsToInt(1.0)):(0))); +PV1f.y = R124f.y; +R124f.z = (mul_nonIEEE(backupReg1f,R3f.y) + R11f.z); +R126f.w = (mul_nonIEEE(backupReg2f,R3f.y) + R11f.y); +PS1f = -(R11f.z) + R6f.z; +// 18 +R123f.x = (mul_nonIEEE(R124f.x,R3f.y) + R11f.x); +PV0f.x = R123f.x; +R123f.y = (mul_nonIEEE(R125f.y,R3f.y) + R11f.w); +PV0f.y = R123f.y; +R125f.z = -(R11f.w) + R6f.w; +R125f.w = -(R11f.x) + R6f.x; +R125f.y = (mul_nonIEEE(PS1f,PV1f.y) + R11f.z); +PS0f = R125f.y; +// 19 +backupReg0f = R126f.x; +R126f.x = (mul_nonIEEE(R9f.x,PV0f.x) + R127f.w); +R123f.y = (mul_nonIEEE(R9f.x,R124f.z) + R127f.y); +PV1f.y = R123f.y; +PV1f.z = -(R11f.y) + R6f.y; +R127f.w = (mul_nonIEEE(R9f.x,R126f.w) + R126f.z); +R126f.w = (mul_nonIEEE(R9f.x,PV0f.y) + backupReg0f); +PS1f = R126f.w; +// 20 +R123f.x = (mul_nonIEEE(R125f.z,R124f.y) + R11f.w); +PV0f.x = R123f.x; +R123f.z = (mul_nonIEEE(PV1f.z,R124f.y) + R11f.y); +PV0f.z = R123f.z; +R123f.w = (mul_nonIEEE(R125f.w,R124f.y) + R11f.x); +PV0f.w = R123f.w; +R11f.z = (mul_nonIEEE(R9f.x,R125f.y) + PV1f.y); +PS0f = R11f.z; +// 21 +R11f.x = (mul_nonIEEE(R9f.x,PV0f.w) + R126f.x); +R11f.y = (mul_nonIEEE(R9f.x,PV0f.z) + R127f.w); +R11f.w = (mul_nonIEEE(R9f.x,PV0f.x) + R126f.w); +// export +passPixelColor0 = vec4(R11f.x, R11f.y, R11f.z, R11f.w); +} diff --git a/Source/Runner2/rules.txt b/Source/Runner2/rules.txt new file mode 100644 index 00000000..9e81a696 --- /dev/null +++ b/Source/Runner2/rules.txt @@ -0,0 +1,26 @@ + +[Definition] +titleIds = 00050000101DD600,000500001011AF00,0005000010136300,000500021011AF01 +name = "Runner2 - " +version = 2 + +[TextureRedefine] +width = 1280 +height = 720 +formatsExcluded = 0x431 +overwriteWidth = +overwriteHeight = + +#[TextureRedefine] +#width = 854 +#height = 480 +#overwriteWidth = +#overwriteHeight = diff --git a/Workaround/BreathOfTheWild_NVIDIAGlitchArtifacts/127a33e6425e2e83_0000000000000000_vs.txt b/Workaround/BreathOfTheWild_NVIDIAGlitchArtifacts/127a33e6425e2e83_0000000000000000_vs.txt new file mode 100644 index 00000000..2ffccbdb --- /dev/null +++ b/Workaround/BreathOfTheWild_NVIDIAGlitchArtifacts/127a33e6425e2e83_0000000000000000_vs.txt @@ -0,0 +1,449 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +#extension GL_ARB_shading_language_packing : enable +// shader 127a33e6425e2e83 +// Used for: Fixing Nvidia lava artifacts. +// Check rules.txt for documentation and when to enable. + + + + +uniform ivec4 uf_remappedVS[24]; +uniform vec2 uf_windowSpaceToClipSpaceTransform; +layout(location = 0) in uvec4 attrDataSem0; +layout(location = 1) in uvec4 attrDataSem1; +layout(location = 2) in uvec4 attrDataSem2; +layout(location = 3) in uvec4 attrDataSem8; +layout(location = 4) in uvec4 attrDataSem12; +out gl_PerVertex +{ + vec4 gl_Position; + float gl_PointSize; +}; +layout(location = 5) out vec4 passParameterSem5; +layout(location = 0) out vec4 passParameterSem0; +layout(location = 1) out vec4 passParameterSem1; +layout(location = 2) out vec4 passParameterSem2; +layout(location = 4) out vec4 passParameterSem4; +layout(location = 7) out vec4 passParameterSem7; +layout(location = 3) out vec4 passParameterSem3; +layout(location = 6) out vec4 passParameterSem6; +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){return mix(0.0, a*b, (a != 0.0) && (b != 0.0));} +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 R6f = vec4(0.0); +vec4 R7f = vec4(0.0); +vec4 R8f = vec4(0.0); +vec4 R9f = vec4(0.0); +vec4 R10f = vec4(0.0); +vec4 R11f = vec4(0.0); +vec4 R12f = vec4(0.0); +vec4 R13f = vec4(0.0); +vec4 R14f = vec4(0.0); +vec4 R15f = vec4(0.0); +vec4 R122f = vec4(0.0); +vec4 R123f = vec4(0.0); +vec4 R124f = vec4(0.0); +vec4 R125f = vec4(0.0); +vec4 R126f = vec4(0.0); +vec4 R127f = 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.xyzw = attrDataSem0.xyzw; +attrDecoder = ((attrDecoder>>8)&0xFF)|((attrDecoder<<8)&0xFF00); +attrDecoder.xyzw = floatBitsToInt(vec4(unpackHalf2x16(attrDecoder.x|(attrDecoder.y<<16)),unpackHalf2x16(attrDecoder.z|(attrDecoder.w<<16)))); +R3f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(int(attrDecoder.z)), intBitsToFloat(int(attrDecoder.w))); +attrDecoder.x = attrDataSem1.x; +attrDecoder.x = (attrDecoder.x>>24)|((attrDecoder.x>>8)&0xFF00)|((attrDecoder.x<<8)&0xFF0000)|((attrDecoder.x<<24)); +attrDecoder.y = 0; +attrDecoder.z = 0; +attrDecoder.w = 0; +attrDecoder.xyzw = uvec4((attrDecoder.x>>0)&0x3FF,(attrDecoder.x>>10)&0x3FF,(attrDecoder.x>>20)&0x3FF,(attrDecoder.x>>30)&0x3); +if( (attrDecoder.x&0x200) != 0 ) attrDecoder.x |= 0xFFFFFC00; +if( (attrDecoder.y&0x200) != 0 ) attrDecoder.y |= 0xFFFFFC00; +if( (attrDecoder.z&0x200) != 0 ) attrDecoder.z |= 0xFFFFFC00; +attrDecoder.x = floatBitsToUint(max(float(int(attrDecoder.x))/511.0,-1.0)); +attrDecoder.y = floatBitsToUint(max(float(int(attrDecoder.y))/511.0,-1.0)); +attrDecoder.z = floatBitsToUint(max(float(int(attrDecoder.z))/511.0,-1.0)); +attrDecoder.w = floatBitsToUint(float(attrDecoder.w)); +R2f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(int(attrDecoder.z)), intBitsToFloat(int(attrDecoder.w))); +attrDecoder.xyzw = attrDataSem2.xyzw; +if( (attrDecoder.x&0x80) != 0 ) attrDecoder.x |= 0xFFFFFF00; +if( (attrDecoder.y&0x80) != 0 ) attrDecoder.y |= 0xFFFFFF00; +if( (attrDecoder.z&0x80) != 0 ) attrDecoder.z |= 0xFFFFFF00; +if( (attrDecoder.w&0x80) != 0 ) attrDecoder.w |= 0xFFFFFF00; +attrDecoder.x = floatBitsToUint(max(float(int(attrDecoder.x))/127.0,-1.0)); +attrDecoder.y = floatBitsToUint(max(float(int(attrDecoder.y))/127.0,-1.0)); +attrDecoder.z = floatBitsToUint(max(float(int(attrDecoder.z))/127.0,-1.0)); +attrDecoder.w = floatBitsToUint(max(float(int(attrDecoder.w))/127.0,-1.0)); +R4f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(int(attrDecoder.z)), intBitsToFloat(int(attrDecoder.w))); +attrDecoder.xy = attrDataSem8.xy; +attrDecoder.xy = ((attrDecoder.xy>>8)&0xFF)|((attrDecoder.xy<<8)&0xFF00); +attrDecoder.z = 0; +attrDecoder.w = 0; +attrDecoder.xy = floatBitsToUint(vec2(float(attrDecoder.x), float(attrDecoder.y))/65535.0); +attrDecoder.zw = uvec2(0); +R5f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(floatBitsToInt(0.0)), intBitsToFloat(floatBitsToInt(1.0))); +attrDecoder.xyzw = floatBitsToUint(vec4(attrDataSem12.xyzw)/255.0); +R1f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(int(attrDecoder.z)), intBitsToFloat(int(attrDecoder.w))); +// 0 +R7f.x = 1.0; +R6f.y = 1.0; +R0f.z = intBitsToFloat(uf_remappedVS[0].y); +R127f.w = 1.0; +PV0f.w = R127f.w; +R124f.x = intBitsToFloat(uf_remappedVS[1].x); +PS0f = R124f.x; +// 1 +R6f.x = dot(vec4(R3f.x,R3f.y,R3f.z,PV0f.w),vec4(intBitsToFloat(uf_remappedVS[2].x),intBitsToFloat(uf_remappedVS[2].y),intBitsToFloat(uf_remappedVS[2].z),intBitsToFloat(uf_remappedVS[2].w))); +PV1f.x = R6f.x; +PV1f.y = R6f.x; +PV1f.z = R6f.x; +PV1f.w = R6f.x; +R13f.w = R4f.w; +PS1f = R13f.w; +// 2 +tempf.x = dot(vec4(R3f.x,R3f.y,R3f.z,R127f.w),vec4(intBitsToFloat(uf_remappedVS[3].x),intBitsToFloat(uf_remappedVS[3].y),intBitsToFloat(uf_remappedVS[3].z),intBitsToFloat(uf_remappedVS[3].w))); +PV0f.x = tempf.x; +PV0f.y = tempf.x; +PV0f.z = tempf.x; +PV0f.w = tempf.x; +R0f.y = tempf.x; +R12f.z = R5f.x; +PS0f = R12f.z; +// 3 +backupReg0f = R3f.z; +tempf.x = dot(vec4(R3f.x,R3f.y,backupReg0f,R127f.w),vec4(intBitsToFloat(uf_remappedVS[4].x),intBitsToFloat(uf_remappedVS[4].y),intBitsToFloat(uf_remappedVS[4].z),intBitsToFloat(uf_remappedVS[4].w))); +PV1f.x = tempf.x; +PV1f.y = tempf.x; +PV1f.z = tempf.x; +PV1f.w = tempf.x; +R3f.z = tempf.x; +R12f.w = R5f.y; +PS1f = R12f.w; +// 4 +R3f.x = dot(vec4(R2f.x,R2f.y,R2f.z,-0.0),vec4(intBitsToFloat(uf_remappedVS[2].x),intBitsToFloat(uf_remappedVS[2].y),intBitsToFloat(uf_remappedVS[2].z),0.0)); +PV0f.x = R3f.x; +PV0f.y = R3f.x; +PV0f.z = R3f.x; +PV0f.w = R3f.x; +R127f.x = mul_nonIEEE(R4f.z, intBitsToFloat(uf_remappedVS[2].z)); +PS0f = R127f.x; +// 5 +tempf.x = dot(vec4(R2f.x,R2f.y,R2f.z,-0.0),vec4(intBitsToFloat(uf_remappedVS[3].x),intBitsToFloat(uf_remappedVS[3].y),intBitsToFloat(uf_remappedVS[3].z),0.0)); +PV1f.x = tempf.x; +PV1f.y = tempf.x; +PV1f.z = tempf.x; +PV1f.w = tempf.x; +R124f.y = tempf.x; +R126f.x = mul_nonIEEE(R4f.z, intBitsToFloat(uf_remappedVS[3].z)); +PS1f = R126f.x; +// 6 +tempf.x = dot(vec4(R2f.x,R2f.y,R2f.z,-0.0),vec4(intBitsToFloat(uf_remappedVS[4].x),intBitsToFloat(uf_remappedVS[4].y),intBitsToFloat(uf_remappedVS[4].z),0.0)); +PV0f.x = tempf.x; +PV0f.y = tempf.x; +PV0f.z = tempf.x; +PV0f.w = tempf.x; +R125f.z = tempf.x; +R125f.x = mul_nonIEEE(R4f.z, intBitsToFloat(uf_remappedVS[4].z)); +PS0f = R125f.x; +// 7 +backupReg0f = R126f.x; +R126f.x = dot(vec4(R4f.x,R4f.y,R127f.x,-0.0),vec4(intBitsToFloat(uf_remappedVS[2].x),intBitsToFloat(uf_remappedVS[2].y),1.0,0.0)); +PV1f.x = R126f.x; +PV1f.y = R126f.x; +PV1f.z = R126f.x; +PV1f.w = R126f.x; +R122f.x = (mul_nonIEEE(R4f.y,intBitsToFloat(uf_remappedVS[3].y)) + backupReg0f); +PS1f = R122f.x; +// 8 +R123f.x = (mul_nonIEEE(R4f.y,intBitsToFloat(uf_remappedVS[4].y)) + R125f.x); +PV0f.x = R123f.x; +R2f.y = (mul_nonIEEE(R4f.x,intBitsToFloat(uf_remappedVS[3].x)) + PS1f); +PS0f = mul_nonIEEE(R125f.z, R125f.z); +// 9 +R123f.x = (mul_nonIEEE(R124f.y,R124f.y) + PS0f); +PV1f.x = R123f.x; +R4f.z = (mul_nonIEEE(R4f.x,intBitsToFloat(uf_remappedVS[4].x)) + PV0f.x); +R127f.w = intBitsToFloat(uf_remappedVS[1].y); +// 10 +R125f.x = intBitsToFloat(uf_remappedVS[5].x); +R127f.y = intBitsToFloat(uf_remappedVS[5].y); +R126f.z = intBitsToFloat(uf_remappedVS[6].x); +R123f.w = (mul_nonIEEE(R3f.x,R3f.x) + PV1f.x); +PV0f.w = R123f.w; +R125f.y = intBitsToFloat(uf_remappedVS[6].y); +PS0f = R125f.y; +// 11 +backupReg0f = R124f.x; +R124f.x = (mul_nonIEEE(intBitsToFloat(uf_remappedVS[7].y),R0f.z) + R127f.w); +R126f.y = intBitsToFloat(uf_remappedVS[8].y); +R127f.z = (mul_nonIEEE(intBitsToFloat(uf_remappedVS[7].x),R0f.z) + backupReg0f); +R127f.w = intBitsToFloat(uf_remappedVS[8].x); +tempResultf = 1.0 / sqrt(PV0f.w); +R124f.z = tempResultf; +PS1f = R124f.z; +// 12 +tempf.x = dot(vec4(R126f.x,R2f.y,R4f.z,-0.0),vec4(R126f.x,R2f.y,R4f.z,0.0)); +PV0f.x = tempf.x; +PV0f.y = tempf.x; +PV0f.z = tempf.x; +PV0f.w = tempf.x; +R4f.y = tempf.x; +R4f.x = intBitsToFloat(uf_remappedVS[1].z); +PS0f = R4f.x; +// 13 +backupReg0f = R127f.y; +backupReg1f = R125f.x; +R125f.x = (mul_nonIEEE(intBitsToFloat(uf_remappedVS[9].x),R0f.z) + R127f.w); +R127f.y = (mul_nonIEEE(intBitsToFloat(uf_remappedVS[9].y),R0f.z) + backupReg0f); +R123f.z = (mul_nonIEEE(intBitsToFloat(uf_remappedVS[9].x),R0f.z) + backupReg1f); +PV1f.z = R123f.z; +R127f.w = intBitsToFloat(uf_remappedVS[1].w); +R127f.x = (mul_nonIEEE(intBitsToFloat(uf_remappedVS[9].y),R0f.z) + R126f.y); +PS1f = R127f.x; +// 14 +backupReg0f = R127f.z; +R2f.x = intBitsToFloat(uf_remappedVS[10].x); +R126f.y = intBitsToFloat(uf_remappedVS[11].x); +R127f.z = intBitsToFloat(uf_remappedVS[11].y); +R126f.w = intBitsToFloat(uf_remappedVS[10].y); +R0f.x = (mul_nonIEEE(R5f.x,backupReg0f) + PV1f.z); +PS0f = R0f.x; +// 15 +backupReg0f = R127f.y; +R123f.x = (mul_nonIEEE(intBitsToFloat(uf_remappedVS[7].y),R0f.z) + R125f.y); +PV1f.x = R123f.x; +R127f.y = intBitsToFloat(uf_remappedVS[6].w); +R123f.z = (mul_nonIEEE(intBitsToFloat(uf_remappedVS[7].x),R0f.z) + R126f.z); +PV1f.z = R123f.z; +R125f.w = intBitsToFloat(uf_remappedVS[6].z); +R126f.z = (mul_nonIEEE(R5f.x,R124f.x) + backupReg0f); +PS1f = R126f.z; +// 16 +backupReg0f = R4f.y; +R8f.x = mul_nonIEEE(R125f.z, R124f.z); +R4f.y = mul_nonIEEE(R124f.y, R124f.z); +R125f.z = (mul_nonIEEE(R5f.x,PV1f.x) + R127f.x); +R124f.w = (mul_nonIEEE(R5f.x,PV1f.z) + R125f.x); +tempResultf = 1.0 / sqrt(backupReg0f); +R4f.w = tempResultf; +PS0f = R4f.w; +// 17 +backupReg0f = R3f.x; +R3f.x = mul_nonIEEE(backupReg0f, R124f.z); +R125f.y = intBitsToFloat(uf_remappedVS[12].x); +R2f.z = intBitsToFloat(uf_remappedVS[13].x); +R0f.w = intBitsToFloat(uf_remappedVS[13].y); +R9f.x = mul_nonIEEE(R126f.x, PS0f); +PS1f = R9f.x; +// 18 +R126f.x = (mul_nonIEEE(intBitsToFloat(uf_remappedVS[7].x),R0f.z) + R2f.x); +R124f.y = (mul_nonIEEE(intBitsToFloat(uf_remappedVS[7].w),R0f.z) + R127f.w); +R123f.z = (mul_nonIEEE(intBitsToFloat(uf_remappedVS[7].z),R0f.z) + R4f.x); +PV0f.z = R123f.z; +R127f.w = (mul_nonIEEE(intBitsToFloat(uf_remappedVS[7].y),R0f.z) + R126f.w); +R124f.z = (mul_nonIEEE(intBitsToFloat(uf_remappedVS[7].z),R0f.z) + R125f.w); +PS0f = R124f.z; +// 19 +R127f.x = intBitsToFloat(uf_remappedVS[10].z); +R123f.y = (mul_nonIEEE(intBitsToFloat(uf_remappedVS[9].y),R0f.z) + R127f.z); +PV1f.y = R123f.y; +R123f.z = (mul_nonIEEE(intBitsToFloat(uf_remappedVS[9].x),R0f.z) + R126f.y); +PV1f.z = R123f.z; +R126f.w = intBitsToFloat(uf_remappedVS[10].w); +R125f.w = (mul_nonIEEE(R5f.y,PV0f.z) + R0f.x); +PS1f = R125f.w; +// 20 +R123f.x = (mul_nonIEEE(intBitsToFloat(uf_remappedVS[7].w),R0f.z) + R127f.y); +PV0f.x = R123f.x; +R127f.y = (mul_nonIEEE(R5f.y,R124f.y) + R126f.z); +R126f.z = (mul_nonIEEE(R5f.x,R126f.x) + PV1f.z); +R2f.w = (mul_nonIEEE(R5f.x,R127f.w) + PV1f.y); +R124f.y = (mul_nonIEEE(R5f.y,R124f.z) + R124f.w); +PS0f = R124f.y; +// 21 +backupReg0f = R2f.z; +backupReg1f = R0f.w; +R126f.x = (mul_nonIEEE(R5f.y,PV0f.x) + R125f.z); +R3f.y = mul_nonIEEE(R2f.y, R4f.w); +R2f.z = mul_nonIEEE(R4f.z, R4f.w); +R0f.w = (mul_nonIEEE(intBitsToFloat(uf_remappedVS[14].x),R125f.y) + backupReg0f); +R4f.w = (mul_nonIEEE(intBitsToFloat(uf_remappedVS[14].y),R125f.y) + backupReg1f); +PS1f = R4f.w; +// 22 +R2f.y = (mul_nonIEEE(intBitsToFloat(uf_remappedVS[7].w),R0f.z) + R126f.w); +R123f.z = (mul_nonIEEE(intBitsToFloat(uf_remappedVS[7].z),R0f.z) + R127f.x); +PV0f.z = R123f.z; +R10f.w = R127f.y; +R10f.z = R125f.w; +PS0f = R10f.z; +// 23 +R0f.x = (mul_nonIEEE(R5f.x,intBitsToFloat(uf_remappedVS[15].y)) + intBitsToFloat(uf_remappedVS[16].y)); +R7f.y = (mul_nonIEEE(R5f.x,intBitsToFloat(uf_remappedVS[15].x)) + intBitsToFloat(uf_remappedVS[16].x)); +R11f.z = R124f.y; +R11f.w = R126f.x; +R11f.x = (mul_nonIEEE(R5f.y,PV0f.z) + R126f.z); +PS1f = R11f.x; +// export +passParameterSem5 = vec4(R1f.x, R1f.y, R1f.z, 1.0); // = "workaround" +// 0 +backupReg0f = R0f.y; +tempf.x = dot(vec4(R6f.x,backupReg0f,R3f.z,R7f.x),vec4(intBitsToFloat(uf_remappedVS[17].x),intBitsToFloat(uf_remappedVS[17].y),intBitsToFloat(uf_remappedVS[17].z),intBitsToFloat(uf_remappedVS[17].w))); +PV0f.x = tempf.x; +PV0f.y = tempf.x; +PV0f.z = tempf.x; +PV0f.w = tempf.x; +R11f.y = (mul_nonIEEE(R5f.y,R2f.y) + R2f.w); +PS0f = R11f.y; +// 1 +backupReg0f = R0f.y; +tempf.x = dot(vec4(R6f.x,backupReg0f,R3f.z,R7f.x),vec4(intBitsToFloat(uf_remappedVS[18].x),intBitsToFloat(uf_remappedVS[18].y),intBitsToFloat(uf_remappedVS[18].z),intBitsToFloat(uf_remappedVS[18].w))); +PV1f.x = tempf.x; +PV1f.y = tempf.x; +PV1f.z = tempf.x; +PV1f.w = tempf.x; +R15f.x = PV0f.x; +PS1f = R15f.x; +// 2 +backupReg0f = R0f.y; +tempf.x = dot(vec4(R6f.x,backupReg0f,R3f.z,R7f.x),vec4(intBitsToFloat(uf_remappedVS[19].x),intBitsToFloat(uf_remappedVS[19].y),intBitsToFloat(uf_remappedVS[19].z),intBitsToFloat(uf_remappedVS[19].w))); +PV0f.x = tempf.x; +PV0f.y = tempf.x; +PV0f.z = tempf.x; +PV0f.w = tempf.x; +R15f.y = PV1f.x; +PS0f = R15f.y; +// 3 +R10f.x = (mul_nonIEEE(intBitsToFloat(uf_remappedVS[14].z),intBitsToFloat(uf_remappedVS[12].x)) + R0f.w); +R10f.y = (mul_nonIEEE(intBitsToFloat(uf_remappedVS[14].w),intBitsToFloat(uf_remappedVS[12].x)) + R4f.w); +R15f.z = PV0f.x; +PV1f.z = R15f.z; +// 4 +tempf.x = dot(vec4(R15f.x,R15f.y,PV1f.z,R6f.y),vec4(intBitsToFloat(uf_remappedVS[20].x),intBitsToFloat(uf_remappedVS[20].y),intBitsToFloat(uf_remappedVS[20].z),intBitsToFloat(uf_remappedVS[20].w))); +PV0f.x = tempf.x; +PV0f.y = tempf.x; +PV0f.z = tempf.x; +PV0f.w = tempf.x; +R1f.y = tempf.x; +// 5 +R1f.x = dot(vec4(R15f.x,R15f.y,R15f.z,R6f.y),vec4(intBitsToFloat(uf_remappedVS[21].x),intBitsToFloat(uf_remappedVS[21].y),intBitsToFloat(uf_remappedVS[21].z),intBitsToFloat(uf_remappedVS[21].w))); +PV1f.x = R1f.x; +PV1f.y = R1f.x; +PV1f.z = R1f.x; +PV1f.w = R1f.x; +R126f.z = -(PV0f.x); +PS1f = R126f.z; +// 6 +tempf.x = dot(vec4(R15f.x,R15f.y,R15f.z,R6f.y),vec4(intBitsToFloat(uf_remappedVS[22].x),intBitsToFloat(uf_remappedVS[22].y),intBitsToFloat(uf_remappedVS[22].z),intBitsToFloat(uf_remappedVS[22].w))); +PV0f.x = tempf.x; +PV0f.y = tempf.x; +PV0f.z = tempf.x; +PV0f.w = tempf.x; +R1f.z = tempf.x; +// 7 +tempf.x = dot(vec4(R15f.x,R15f.y,R15f.z,R6f.y),vec4(intBitsToFloat(uf_remappedVS[23].x),intBitsToFloat(uf_remappedVS[23].y),intBitsToFloat(uf_remappedVS[23].z),intBitsToFloat(uf_remappedVS[23].w))); +PV1f.x = tempf.x; +PV1f.y = tempf.x; +PV1f.z = tempf.x; +PV1f.w = tempf.x; +R1f.w = tempf.x; +R6f.z = PV0f.x; +PS1f = R6f.z; +// 8 +tempf.x = dot(vec4(R3f.x,R4f.y,R8f.x,-0.0),vec4(intBitsToFloat(uf_remappedVS[17].x),intBitsToFloat(uf_remappedVS[17].y),intBitsToFloat(uf_remappedVS[17].z),0.0)); +PV0f.x = tempf.x; +PV0f.y = tempf.x; +PV0f.z = tempf.x; +PV0f.w = tempf.x; +R6f.x = R1f.x + PV1f.x; +R6f.x /= 2.0; +PS0f = R6f.x; +// 9 +tempf.x = dot(vec4(R3f.x,R4f.y,R8f.x,-0.0),vec4(intBitsToFloat(uf_remappedVS[18].x),intBitsToFloat(uf_remappedVS[18].y),intBitsToFloat(uf_remappedVS[18].z),0.0)); +PV1f.x = tempf.x; +PV1f.y = tempf.x; +PV1f.z = tempf.x; +PV1f.w = tempf.x; +R14f.x = PV0f.x; +PS1f = R14f.x; +// 10 +tempf.x = dot(vec4(R3f.x,R4f.y,R8f.x,-0.0),vec4(intBitsToFloat(uf_remappedVS[19].x),intBitsToFloat(uf_remappedVS[19].y),intBitsToFloat(uf_remappedVS[19].z),0.0)); +PV0f.x = tempf.x; +PV0f.y = tempf.x; +PV0f.z = tempf.x; +PV0f.w = tempf.x; +R14f.y = PV1f.x; +PS0f = R14f.y; +// 11 +R13f.x = dot(vec4(R9f.x,R3f.y,R2f.z,-0.0),vec4(intBitsToFloat(uf_remappedVS[17].x),intBitsToFloat(uf_remappedVS[17].y),intBitsToFloat(uf_remappedVS[17].z),0.0)); +PV1f.x = R13f.x; +PV1f.y = R13f.x; +PV1f.z = R13f.x; +PV1f.w = R13f.x; +R14f.z = PV0f.x; +PS1f = R14f.z; +// 12 +tempf.x = dot(vec4(R9f.x,R3f.y,R2f.z,-0.0),vec4(intBitsToFloat(uf_remappedVS[18].x),intBitsToFloat(uf_remappedVS[18].y),intBitsToFloat(uf_remappedVS[18].z),0.0)); +PV0f.x = tempf.x; +PV0f.y = tempf.x; +PV0f.z = tempf.x; +PV0f.w = tempf.x; +R13f.y = tempf.x; +R6f.y = R126f.z + R1f.w; +R6f.y /= 2.0; +PS0f = R6f.y; +// 13 +tempf.x = dot(vec4(R9f.x,R3f.y,R2f.z,-0.0),vec4(intBitsToFloat(uf_remappedVS[19].x),intBitsToFloat(uf_remappedVS[19].y),intBitsToFloat(uf_remappedVS[19].z),0.0)); +PV1f.x = tempf.x; +PV1f.y = tempf.x; +PV1f.z = tempf.x; +PV1f.w = tempf.x; +R13f.z = tempf.x; +R6f.w = R1f.w; +PS1f = R6f.w; +// 14 +R12f.x = (mul_nonIEEE(R5f.y,intBitsToFloat(uf_remappedVS[15].z)) + R7f.y); +R12f.y = (mul_nonIEEE(R5f.y,intBitsToFloat(uf_remappedVS[15].w)) + R0f.x); +// export +gl_Position = vec4(R1f.x, R1f.y, R1f.z, R1f.w); +// export +passParameterSem0 = vec4(R10f.x, R10f.y, R10f.z, R10f.w); +// export +passParameterSem1 = vec4(R11f.x, R11f.y, R11f.z, R11f.w); +// export +passParameterSem2 = vec4(R12f.x, R12f.y, R12f.z, R12f.w); +// export +passParameterSem4 = vec4(R13f.x, R13f.y, R13f.z, R13f.w); +// export +passParameterSem7 = vec4(R6f.x, R6f.y, R6f.z, R6f.w); +// export +passParameterSem3 = vec4(R14f.x, R14f.y, R14f.z, R14f.w); +// export +passParameterSem6 = vec4(R15f.x, R15f.y, R15f.z, R15f.w); +} diff --git a/Workaround/BreathOfTheWild_NVIDIAGlitchArtifacts/127a33e6825e2e83_0000000000000000_vs.txt b/Workaround/BreathOfTheWild_NVIDIAGlitchArtifacts/127a33e6825e2e83_0000000000000000_vs.txt new file mode 100644 index 00000000..069eb228 --- /dev/null +++ b/Workaround/BreathOfTheWild_NVIDIAGlitchArtifacts/127a33e6825e2e83_0000000000000000_vs.txt @@ -0,0 +1,451 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +#extension GL_ARB_shading_language_packing : enable +// shader 127a33e6825e2e83 +// Used for: Fixing Nvidia lava waterfall artifacts. +// Check rules.txt for documentation and when to enable. + + + +uniform ivec4 uf_remappedVS[24]; +uniform vec2 uf_windowSpaceToClipSpaceTransform; +layout(location = 0) in uvec4 attrDataSem0; +layout(location = 1) in uvec4 attrDataSem1; +layout(location = 2) in uvec4 attrDataSem2; +layout(location = 3) in uvec4 attrDataSem8; +layout(location = 4) in uvec4 attrDataSem12; +out gl_PerVertex +{ + vec4 gl_Position; + float gl_PointSize; +}; +layout(location = 5) out vec4 passParameterSem5; +layout(location = 0) out vec4 passParameterSem0; +layout(location = 1) out vec4 passParameterSem1; +layout(location = 2) out vec4 passParameterSem2; +layout(location = 4) out vec4 passParameterSem4; +layout(location = 7) out vec4 passParameterSem7; +layout(location = 3) out vec4 passParameterSem3; +layout(location = 6) out vec4 passParameterSem6; +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){return mix(0.0, a*b, (a != 0.0) && (b != 0.0));} +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 R6f = vec4(0.0); +vec4 R7f = vec4(0.0); +vec4 R8f = vec4(0.0); +vec4 R9f = vec4(0.0); +vec4 R10f = vec4(0.0); +vec4 R11f = vec4(0.0); +vec4 R12f = vec4(0.0); +vec4 R13f = vec4(0.0); +vec4 R14f = vec4(0.0); +vec4 R15f = vec4(0.0); +vec4 R122f = vec4(0.0); +vec4 R123f = vec4(0.0); +vec4 R124f = vec4(0.0); +vec4 R125f = vec4(0.0); +vec4 R126f = vec4(0.0); +vec4 R127f = 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.xyzw = attrDataSem0.xyzw; +attrDecoder = ((attrDecoder>>8)&0xFF)|((attrDecoder<<8)&0xFF00); +attrDecoder.xyzw = floatBitsToInt(vec4(unpackHalf2x16(attrDecoder.x|(attrDecoder.y<<16)),unpackHalf2x16(attrDecoder.z|(attrDecoder.w<<16)))); +R3f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(int(attrDecoder.z)), intBitsToFloat(int(attrDecoder.w))); +attrDecoder.x = attrDataSem1.x; +attrDecoder.x = (attrDecoder.x>>24)|((attrDecoder.x>>8)&0xFF00)|((attrDecoder.x<<8)&0xFF0000)|((attrDecoder.x<<24)); +attrDecoder.y = 0; +attrDecoder.z = 0; +attrDecoder.w = 0; +attrDecoder.xyzw = uvec4((attrDecoder.x>>0)&0x3FF,(attrDecoder.x>>10)&0x3FF,(attrDecoder.x>>20)&0x3FF,(attrDecoder.x>>30)&0x3); +if( (attrDecoder.x&0x200) != 0 ) attrDecoder.x |= 0xFFFFFC00; +if( (attrDecoder.y&0x200) != 0 ) attrDecoder.y |= 0xFFFFFC00; +if( (attrDecoder.z&0x200) != 0 ) attrDecoder.z |= 0xFFFFFC00; +attrDecoder.x = floatBitsToUint(max(float(int(attrDecoder.x))/511.0,-1.0)); +attrDecoder.y = floatBitsToUint(max(float(int(attrDecoder.y))/511.0,-1.0)); +attrDecoder.z = floatBitsToUint(max(float(int(attrDecoder.z))/511.0,-1.0)); +attrDecoder.w = floatBitsToUint(float(attrDecoder.w)); +R2f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(int(attrDecoder.z)), intBitsToFloat(int(attrDecoder.w))); +attrDecoder.xyzw = attrDataSem2.xyzw; +if( (attrDecoder.x&0x80) != 0 ) attrDecoder.x |= 0xFFFFFF00; +if( (attrDecoder.y&0x80) != 0 ) attrDecoder.y |= 0xFFFFFF00; +if( (attrDecoder.z&0x80) != 0 ) attrDecoder.z |= 0xFFFFFF00; +if( (attrDecoder.w&0x80) != 0 ) attrDecoder.w |= 0xFFFFFF00; +attrDecoder.x = floatBitsToUint(max(float(int(attrDecoder.x))/127.0,-1.0)); +attrDecoder.y = floatBitsToUint(max(float(int(attrDecoder.y))/127.0,-1.0)); +attrDecoder.z = floatBitsToUint(max(float(int(attrDecoder.z))/127.0,-1.0)); +attrDecoder.w = floatBitsToUint(max(float(int(attrDecoder.w))/127.0,-1.0)); +R4f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(int(attrDecoder.z)), intBitsToFloat(int(attrDecoder.w))); +attrDecoder.xy = attrDataSem8.xy; +attrDecoder.xy = ((attrDecoder.xy>>8)&0xFF)|((attrDecoder.xy<<8)&0xFF00); +attrDecoder.z = 0; +attrDecoder.w = 0; +if( (attrDecoder.x&0x8000) != 0 ) attrDecoder.x |= 0xFFFF0000; +if( (attrDecoder.y&0x8000) != 0 ) attrDecoder.y |= 0xFFFF0000; +attrDecoder.x = floatBitsToUint(max(float(int(attrDecoder.x))/32767.0,-1.0)); +attrDecoder.y = floatBitsToUint(max(float(int(attrDecoder.y))/32767.0,-1.0)); +attrDecoder.zw = uvec2(0); +R5f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(floatBitsToInt(0.0)), intBitsToFloat(floatBitsToInt(1.0))); +attrDecoder.xyzw = floatBitsToUint(vec4(attrDataSem12.xyzw)/255.0); +R1f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(int(attrDecoder.z)), intBitsToFloat(int(attrDecoder.w))); +// 0 +R7f.x = 1.0; +R6f.y = 1.0; +R0f.z = intBitsToFloat(uf_remappedVS[0].y); +R127f.w = 1.0; +PV0f.w = R127f.w; +R124f.x = intBitsToFloat(uf_remappedVS[1].x); +PS0f = R124f.x; +// 1 +R6f.x = dot(vec4(R3f.x,R3f.y,R3f.z,PV0f.w),vec4(intBitsToFloat(uf_remappedVS[2].x),intBitsToFloat(uf_remappedVS[2].y),intBitsToFloat(uf_remappedVS[2].z),intBitsToFloat(uf_remappedVS[2].w))); +PV1f.x = R6f.x; +PV1f.y = R6f.x; +PV1f.z = R6f.x; +PV1f.w = R6f.x; +R13f.w = R4f.w; +PS1f = R13f.w; +// 2 +tempf.x = dot(vec4(R3f.x,R3f.y,R3f.z,R127f.w),vec4(intBitsToFloat(uf_remappedVS[3].x),intBitsToFloat(uf_remappedVS[3].y),intBitsToFloat(uf_remappedVS[3].z),intBitsToFloat(uf_remappedVS[3].w))); +PV0f.x = tempf.x; +PV0f.y = tempf.x; +PV0f.z = tempf.x; +PV0f.w = tempf.x; +R0f.y = tempf.x; +R12f.z = R5f.x; +PS0f = R12f.z; +// 3 +backupReg0f = R3f.z; +tempf.x = dot(vec4(R3f.x,R3f.y,backupReg0f,R127f.w),vec4(intBitsToFloat(uf_remappedVS[4].x),intBitsToFloat(uf_remappedVS[4].y),intBitsToFloat(uf_remappedVS[4].z),intBitsToFloat(uf_remappedVS[4].w))); +PV1f.x = tempf.x; +PV1f.y = tempf.x; +PV1f.z = tempf.x; +PV1f.w = tempf.x; +R3f.z = tempf.x; +R12f.w = R5f.y; +PS1f = R12f.w; +// 4 +R3f.x = dot(vec4(R2f.x,R2f.y,R2f.z,-0.0),vec4(intBitsToFloat(uf_remappedVS[2].x),intBitsToFloat(uf_remappedVS[2].y),intBitsToFloat(uf_remappedVS[2].z),0.0)); +PV0f.x = R3f.x; +PV0f.y = R3f.x; +PV0f.z = R3f.x; +PV0f.w = R3f.x; +R127f.x = mul_nonIEEE(R4f.z, intBitsToFloat(uf_remappedVS[2].z)); +PS0f = R127f.x; +// 5 +tempf.x = dot(vec4(R2f.x,R2f.y,R2f.z,-0.0),vec4(intBitsToFloat(uf_remappedVS[3].x),intBitsToFloat(uf_remappedVS[3].y),intBitsToFloat(uf_remappedVS[3].z),0.0)); +PV1f.x = tempf.x; +PV1f.y = tempf.x; +PV1f.z = tempf.x; +PV1f.w = tempf.x; +R124f.y = tempf.x; +R126f.x = mul_nonIEEE(R4f.z, intBitsToFloat(uf_remappedVS[3].z)); +PS1f = R126f.x; +// 6 +tempf.x = dot(vec4(R2f.x,R2f.y,R2f.z,-0.0),vec4(intBitsToFloat(uf_remappedVS[4].x),intBitsToFloat(uf_remappedVS[4].y),intBitsToFloat(uf_remappedVS[4].z),0.0)); +PV0f.x = tempf.x; +PV0f.y = tempf.x; +PV0f.z = tempf.x; +PV0f.w = tempf.x; +R125f.z = tempf.x; +R125f.x = mul_nonIEEE(R4f.z, intBitsToFloat(uf_remappedVS[4].z)); +PS0f = R125f.x; +// 7 +backupReg0f = R126f.x; +R126f.x = dot(vec4(R4f.x,R4f.y,R127f.x,-0.0),vec4(intBitsToFloat(uf_remappedVS[2].x),intBitsToFloat(uf_remappedVS[2].y),1.0,0.0)); +PV1f.x = R126f.x; +PV1f.y = R126f.x; +PV1f.z = R126f.x; +PV1f.w = R126f.x; +R122f.x = (mul_nonIEEE(R4f.y,intBitsToFloat(uf_remappedVS[3].y)) + backupReg0f); +PS1f = R122f.x; +// 8 +R123f.x = (mul_nonIEEE(R4f.y,intBitsToFloat(uf_remappedVS[4].y)) + R125f.x); +PV0f.x = R123f.x; +R2f.y = (mul_nonIEEE(R4f.x,intBitsToFloat(uf_remappedVS[3].x)) + PS1f); +PS0f = mul_nonIEEE(R125f.z, R125f.z); +// 9 +R123f.x = (mul_nonIEEE(R124f.y,R124f.y) + PS0f); +PV1f.x = R123f.x; +R4f.z = (mul_nonIEEE(R4f.x,intBitsToFloat(uf_remappedVS[4].x)) + PV0f.x); +R127f.w = intBitsToFloat(uf_remappedVS[1].y); +// 10 +R125f.x = intBitsToFloat(uf_remappedVS[5].x); +R127f.y = intBitsToFloat(uf_remappedVS[5].y); +R126f.z = intBitsToFloat(uf_remappedVS[6].x); +R123f.w = (mul_nonIEEE(R3f.x,R3f.x) + PV1f.x); +PV0f.w = R123f.w; +R125f.y = intBitsToFloat(uf_remappedVS[6].y); +PS0f = R125f.y; +// 11 +backupReg0f = R124f.x; +R124f.x = (mul_nonIEEE(intBitsToFloat(uf_remappedVS[7].y),R0f.z) + R127f.w); +R126f.y = intBitsToFloat(uf_remappedVS[8].y); +R127f.z = (mul_nonIEEE(intBitsToFloat(uf_remappedVS[7].x),R0f.z) + backupReg0f); +R127f.w = intBitsToFloat(uf_remappedVS[8].x); +tempResultf = 1.0 / sqrt(PV0f.w); +R124f.z = tempResultf; +PS1f = R124f.z; +// 12 +tempf.x = dot(vec4(R126f.x,R2f.y,R4f.z,-0.0),vec4(R126f.x,R2f.y,R4f.z,0.0)); +PV0f.x = tempf.x; +PV0f.y = tempf.x; +PV0f.z = tempf.x; +PV0f.w = tempf.x; +R4f.y = tempf.x; +R4f.x = intBitsToFloat(uf_remappedVS[1].z); +PS0f = R4f.x; +// 13 +backupReg0f = R127f.y; +backupReg1f = R125f.x; +R125f.x = (mul_nonIEEE(intBitsToFloat(uf_remappedVS[9].x),R0f.z) + R127f.w); +R127f.y = (mul_nonIEEE(intBitsToFloat(uf_remappedVS[9].y),R0f.z) + backupReg0f); +R123f.z = (mul_nonIEEE(intBitsToFloat(uf_remappedVS[9].x),R0f.z) + backupReg1f); +PV1f.z = R123f.z; +R127f.w = intBitsToFloat(uf_remappedVS[1].w); +R127f.x = (mul_nonIEEE(intBitsToFloat(uf_remappedVS[9].y),R0f.z) + R126f.y); +PS1f = R127f.x; +// 14 +backupReg0f = R127f.z; +R2f.x = intBitsToFloat(uf_remappedVS[10].x); +R126f.y = intBitsToFloat(uf_remappedVS[11].x); +R127f.z = intBitsToFloat(uf_remappedVS[11].y); +R126f.w = intBitsToFloat(uf_remappedVS[10].y); +R0f.x = (mul_nonIEEE(R5f.x,backupReg0f) + PV1f.z); +PS0f = R0f.x; +// 15 +backupReg0f = R127f.y; +R123f.x = (mul_nonIEEE(intBitsToFloat(uf_remappedVS[7].y),R0f.z) + R125f.y); +PV1f.x = R123f.x; +R127f.y = intBitsToFloat(uf_remappedVS[6].w); +R123f.z = (mul_nonIEEE(intBitsToFloat(uf_remappedVS[7].x),R0f.z) + R126f.z); +PV1f.z = R123f.z; +R125f.w = intBitsToFloat(uf_remappedVS[6].z); +R126f.z = (mul_nonIEEE(R5f.x,R124f.x) + backupReg0f); +PS1f = R126f.z; +// 16 +backupReg0f = R4f.y; +R8f.x = mul_nonIEEE(R125f.z, R124f.z); +R4f.y = mul_nonIEEE(R124f.y, R124f.z); +R125f.z = (mul_nonIEEE(R5f.x,PV1f.x) + R127f.x); +R124f.w = (mul_nonIEEE(R5f.x,PV1f.z) + R125f.x); +tempResultf = 1.0 / sqrt(backupReg0f); +R4f.w = tempResultf; +PS0f = R4f.w; +// 17 +backupReg0f = R3f.x; +R3f.x = mul_nonIEEE(backupReg0f, R124f.z); +R125f.y = intBitsToFloat(uf_remappedVS[12].x); +R2f.z = intBitsToFloat(uf_remappedVS[13].x); +R0f.w = intBitsToFloat(uf_remappedVS[13].y); +R9f.x = mul_nonIEEE(R126f.x, PS0f); +PS1f = R9f.x; +// 18 +R126f.x = (mul_nonIEEE(intBitsToFloat(uf_remappedVS[7].x),R0f.z) + R2f.x); +R124f.y = (mul_nonIEEE(intBitsToFloat(uf_remappedVS[7].w),R0f.z) + R127f.w); +R123f.z = (mul_nonIEEE(intBitsToFloat(uf_remappedVS[7].z),R0f.z) + R4f.x); +PV0f.z = R123f.z; +R127f.w = (mul_nonIEEE(intBitsToFloat(uf_remappedVS[7].y),R0f.z) + R126f.w); +R124f.z = (mul_nonIEEE(intBitsToFloat(uf_remappedVS[7].z),R0f.z) + R125f.w); +PS0f = R124f.z; +// 19 +R127f.x = intBitsToFloat(uf_remappedVS[10].z); +R123f.y = (mul_nonIEEE(intBitsToFloat(uf_remappedVS[9].y),R0f.z) + R127f.z); +PV1f.y = R123f.y; +R123f.z = (mul_nonIEEE(intBitsToFloat(uf_remappedVS[9].x),R0f.z) + R126f.y); +PV1f.z = R123f.z; +R126f.w = intBitsToFloat(uf_remappedVS[10].w); +R125f.w = (mul_nonIEEE(R5f.y,PV0f.z) + R0f.x); +PS1f = R125f.w; +// 20 +R123f.x = (mul_nonIEEE(intBitsToFloat(uf_remappedVS[7].w),R0f.z) + R127f.y); +PV0f.x = R123f.x; +R127f.y = (mul_nonIEEE(R5f.y,R124f.y) + R126f.z); +R126f.z = (mul_nonIEEE(R5f.x,R126f.x) + PV1f.z); +R2f.w = (mul_nonIEEE(R5f.x,R127f.w) + PV1f.y); +R124f.y = (mul_nonIEEE(R5f.y,R124f.z) + R124f.w); +PS0f = R124f.y; +// 21 +backupReg0f = R2f.z; +backupReg1f = R0f.w; +R126f.x = (mul_nonIEEE(R5f.y,PV0f.x) + R125f.z); +R3f.y = mul_nonIEEE(R2f.y, R4f.w); +R2f.z = mul_nonIEEE(R4f.z, R4f.w); +R0f.w = (mul_nonIEEE(intBitsToFloat(uf_remappedVS[14].x),R125f.y) + backupReg0f); +R4f.w = (mul_nonIEEE(intBitsToFloat(uf_remappedVS[14].y),R125f.y) + backupReg1f); +PS1f = R4f.w; +// 22 +R2f.y = (mul_nonIEEE(intBitsToFloat(uf_remappedVS[7].w),R0f.z) + R126f.w); +R123f.z = (mul_nonIEEE(intBitsToFloat(uf_remappedVS[7].z),R0f.z) + R127f.x); +PV0f.z = R123f.z; +R10f.w = R127f.y; +R10f.z = R125f.w; +PS0f = R10f.z; +// 23 +R0f.x = (mul_nonIEEE(R5f.x,intBitsToFloat(uf_remappedVS[15].y)) + intBitsToFloat(uf_remappedVS[16].y)); +R7f.y = (mul_nonIEEE(R5f.x,intBitsToFloat(uf_remappedVS[15].x)) + intBitsToFloat(uf_remappedVS[16].x)); +R11f.z = R124f.y; +R11f.w = R126f.x; +R11f.x = (mul_nonIEEE(R5f.y,PV0f.z) + R126f.z); +PS1f = R11f.x; +// export +passParameterSem5 = vec4(R1f.x, R1f.y, R1f.z, 1.0); // = "workaround" +// 0 +backupReg0f = R0f.y; +tempf.x = dot(vec4(R6f.x,backupReg0f,R3f.z,R7f.x),vec4(intBitsToFloat(uf_remappedVS[17].x),intBitsToFloat(uf_remappedVS[17].y),intBitsToFloat(uf_remappedVS[17].z),intBitsToFloat(uf_remappedVS[17].w))); +PV0f.x = tempf.x; +PV0f.y = tempf.x; +PV0f.z = tempf.x; +PV0f.w = tempf.x; +R11f.y = (mul_nonIEEE(R5f.y,R2f.y) + R2f.w); +PS0f = R11f.y; +// 1 +backupReg0f = R0f.y; +tempf.x = dot(vec4(R6f.x,backupReg0f,R3f.z,R7f.x),vec4(intBitsToFloat(uf_remappedVS[18].x),intBitsToFloat(uf_remappedVS[18].y),intBitsToFloat(uf_remappedVS[18].z),intBitsToFloat(uf_remappedVS[18].w))); +PV1f.x = tempf.x; +PV1f.y = tempf.x; +PV1f.z = tempf.x; +PV1f.w = tempf.x; +R15f.x = PV0f.x; +PS1f = R15f.x; +// 2 +backupReg0f = R0f.y; +tempf.x = dot(vec4(R6f.x,backupReg0f,R3f.z,R7f.x),vec4(intBitsToFloat(uf_remappedVS[19].x),intBitsToFloat(uf_remappedVS[19].y),intBitsToFloat(uf_remappedVS[19].z),intBitsToFloat(uf_remappedVS[19].w))); +PV0f.x = tempf.x; +PV0f.y = tempf.x; +PV0f.z = tempf.x; +PV0f.w = tempf.x; +R15f.y = PV1f.x; +PS0f = R15f.y; +// 3 +R10f.x = (mul_nonIEEE(intBitsToFloat(uf_remappedVS[14].z),intBitsToFloat(uf_remappedVS[12].x)) + R0f.w); +R10f.y = (mul_nonIEEE(intBitsToFloat(uf_remappedVS[14].w),intBitsToFloat(uf_remappedVS[12].x)) + R4f.w); +R15f.z = PV0f.x; +PV1f.z = R15f.z; +// 4 +tempf.x = dot(vec4(R15f.x,R15f.y,PV1f.z,R6f.y),vec4(intBitsToFloat(uf_remappedVS[20].x),intBitsToFloat(uf_remappedVS[20].y),intBitsToFloat(uf_remappedVS[20].z),intBitsToFloat(uf_remappedVS[20].w))); +PV0f.x = tempf.x; +PV0f.y = tempf.x; +PV0f.z = tempf.x; +PV0f.w = tempf.x; +R1f.y = tempf.x; +// 5 +R1f.x = dot(vec4(R15f.x,R15f.y,R15f.z,R6f.y),vec4(intBitsToFloat(uf_remappedVS[21].x),intBitsToFloat(uf_remappedVS[21].y),intBitsToFloat(uf_remappedVS[21].z),intBitsToFloat(uf_remappedVS[21].w))); +PV1f.x = R1f.x; +PV1f.y = R1f.x; +PV1f.z = R1f.x; +PV1f.w = R1f.x; +R126f.z = -(PV0f.x); +PS1f = R126f.z; +// 6 +tempf.x = dot(vec4(R15f.x,R15f.y,R15f.z,R6f.y),vec4(intBitsToFloat(uf_remappedVS[22].x),intBitsToFloat(uf_remappedVS[22].y),intBitsToFloat(uf_remappedVS[22].z),intBitsToFloat(uf_remappedVS[22].w))); +PV0f.x = tempf.x; +PV0f.y = tempf.x; +PV0f.z = tempf.x; +PV0f.w = tempf.x; +R1f.z = tempf.x; +// 7 +tempf.x = dot(vec4(R15f.x,R15f.y,R15f.z,R6f.y),vec4(intBitsToFloat(uf_remappedVS[23].x),intBitsToFloat(uf_remappedVS[23].y),intBitsToFloat(uf_remappedVS[23].z),intBitsToFloat(uf_remappedVS[23].w))); +PV1f.x = tempf.x; +PV1f.y = tempf.x; +PV1f.z = tempf.x; +PV1f.w = tempf.x; +R1f.w = tempf.x; +R6f.z = PV0f.x; +PS1f = R6f.z; +// 8 +tempf.x = dot(vec4(R3f.x,R4f.y,R8f.x,-0.0),vec4(intBitsToFloat(uf_remappedVS[17].x),intBitsToFloat(uf_remappedVS[17].y),intBitsToFloat(uf_remappedVS[17].z),0.0)); +PV0f.x = tempf.x; +PV0f.y = tempf.x; +PV0f.z = tempf.x; +PV0f.w = tempf.x; +R6f.x = R1f.x + PV1f.x; +R6f.x /= 2.0; +PS0f = R6f.x; +// 9 +tempf.x = dot(vec4(R3f.x,R4f.y,R8f.x,-0.0),vec4(intBitsToFloat(uf_remappedVS[18].x),intBitsToFloat(uf_remappedVS[18].y),intBitsToFloat(uf_remappedVS[18].z),0.0)); +PV1f.x = tempf.x; +PV1f.y = tempf.x; +PV1f.z = tempf.x; +PV1f.w = tempf.x; +R14f.x = PV0f.x; +PS1f = R14f.x; +// 10 +tempf.x = dot(vec4(R3f.x,R4f.y,R8f.x,-0.0),vec4(intBitsToFloat(uf_remappedVS[19].x),intBitsToFloat(uf_remappedVS[19].y),intBitsToFloat(uf_remappedVS[19].z),0.0)); +PV0f.x = tempf.x; +PV0f.y = tempf.x; +PV0f.z = tempf.x; +PV0f.w = tempf.x; +R14f.y = PV1f.x; +PS0f = R14f.y; +// 11 +R13f.x = dot(vec4(R9f.x,R3f.y,R2f.z,-0.0),vec4(intBitsToFloat(uf_remappedVS[17].x),intBitsToFloat(uf_remappedVS[17].y),intBitsToFloat(uf_remappedVS[17].z),0.0)); +PV1f.x = R13f.x; +PV1f.y = R13f.x; +PV1f.z = R13f.x; +PV1f.w = R13f.x; +R14f.z = PV0f.x; +PS1f = R14f.z; +// 12 +tempf.x = dot(vec4(R9f.x,R3f.y,R2f.z,-0.0),vec4(intBitsToFloat(uf_remappedVS[18].x),intBitsToFloat(uf_remappedVS[18].y),intBitsToFloat(uf_remappedVS[18].z),0.0)); +PV0f.x = tempf.x; +PV0f.y = tempf.x; +PV0f.z = tempf.x; +PV0f.w = tempf.x; +R13f.y = tempf.x; +R6f.y = R126f.z + R1f.w; +R6f.y /= 2.0; +PS0f = R6f.y; +// 13 +tempf.x = dot(vec4(R9f.x,R3f.y,R2f.z,-0.0),vec4(intBitsToFloat(uf_remappedVS[19].x),intBitsToFloat(uf_remappedVS[19].y),intBitsToFloat(uf_remappedVS[19].z),0.0)); +PV1f.x = tempf.x; +PV1f.y = tempf.x; +PV1f.z = tempf.x; +PV1f.w = tempf.x; +R13f.z = tempf.x; +R6f.w = R1f.w; +PS1f = R6f.w; +// 14 +R12f.x = (mul_nonIEEE(R5f.y,intBitsToFloat(uf_remappedVS[15].z)) + R7f.y); +R12f.y = (mul_nonIEEE(R5f.y,intBitsToFloat(uf_remappedVS[15].w)) + R0f.x); +// export +gl_Position = vec4(R1f.x, R1f.y, R1f.z, R1f.w); +// export +passParameterSem0 = vec4(R10f.x, R10f.y, R10f.z, R10f.w); +// export +passParameterSem1 = vec4(R11f.x, R11f.y, R11f.z, R11f.w); +// export +passParameterSem2 = vec4(R12f.x, R12f.y, R12f.z, R12f.w); +// export +passParameterSem4 = vec4(R13f.x, R13f.y, R13f.z, R13f.w); +// export +passParameterSem7 = vec4(R6f.x, R6f.y, R6f.z, R6f.w); +// export +passParameterSem3 = vec4(R14f.x, R14f.y, R14f.z, R14f.w); +// export +passParameterSem6 = vec4(R15f.x, R15f.y, R15f.z, R15f.w); +} diff --git a/Workaround/SuperSmashBros_PixelMess/rules.txt b/Workaround/SuperSmashBros_PixelMess/rules.txt index b1dd7003..d11807d6 100644 --- a/Workaround/SuperSmashBros_PixelMess/rules.txt +++ b/Workaround/SuperSmashBros_PixelMess/rules.txt @@ -8,4 +8,6 @@ version = 2 width = 640 height = 360 formats = 0x00a -overwriteFormat = 0x81c # Might cause an error, but seems to work. Might not work on AMD. \ No newline at end of file +#overwriteFormat = 0x81c # Might cause an error, but seems to work. Might not work on AMD. +overwriteWidth = 0 +overwriteHeight = 0 diff --git a/appveyor.yml b/appveyor.yml deleted file mode 100644 index c745d56c..00000000 --- a/appveyor.yml +++ /dev/null @@ -1,73 +0,0 @@ -# Appveyor configuration file for bash build of packs -version: '{build}' -skip_tags: true -environment: - # It's prefered to have the GithubAuthToken (encrypted) set in the UI. Follow this guide for the instructions https://www.appveyor.com/docs/deployment/github/#provider-settings. - CommitTimestamp: 0 - CYG_MIRROR: http://cygwin.mirror.constant.com - CYG_PACKAGES: bash,php,dos2unix - matrix: - - BUILD_TYPE: 64bit - CYG_ROOT: C:\mycygwin64 - CYG_CACHE: C:\mycygwin64\var\cache\setup - CYG_SETUP: setup-x86_64.exe - BASH: C:\mycygwin64\bin\bash -# - BUILD_TYPE: 32bit -# CYG_ROOT: C:\mycygwin -# CYG_CACHE: C:\mycygwin\var\cache\setup -# CYG_SETUP: setup-x86.exe -# BASH: C:\mycygwin\bin\bash - -# Cache Cygwin files to speed up build -cache: - - '%CYG_SETUP%' - - '%CYG_CACHE%' -clone_depth: 1 - -# We want to convert line endings to CRLF because thats what the txt files in the zip should end up as -init: - - git config --global core.autocrlf true -# Use appveyor http proxy - - ps: iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-http-proxy.ps1')) -# Allows RDP -# - ps: iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1')) - -# Install needed build dependencies -install: - - if defined appveyor_repo_commit_message_extended (echo "Found commit description!") else (set appveyor_repo_commit_message_extended='No description was added to this commit.') # If there's is a description set it to that, otherwise leave it. - - ps: $env:CommitTimestamp=[System.DateTime]::UtcNow # Readable timestamp - - ps: if (Test-Path Env:\CYG_ROOT) { Start-FileDownload "http://cygwin.com/$env:CYG_SETUP" -FileName "cygsetup.exe" -Timeout 30000 } - - ps: if ((Get-Content "cygsetup.exe") -eq $Null) { Copy-Item "$env:CYG_SETUP" -Destination "cygsetup.exe" -Force } else { Copy-Item "cygsetup.exe" -Destination "$env:CYG_SETUP" -Force } - # Quiet-mode isn't really working but this does work. - - if defined CYG_ROOT ((%CYG_SETUP% --quiet-mode --no-shortcuts --only-site --root "%CYG_ROOT%" --site "%CYG_MIRROR%" --local-package-dir "%CYG_CACHE%" --packages "%CYG_PACKAGES%" --upgrade-also) > $null) -build_script: - - if defined BASH (%BASH% -lc "cd $(cygpath ${APPVEYOR_BUILD_FOLDER}) && dos2unix build.sh && sh build.sh") - - xcopy %APPVEYOR_BUILD_FOLDER%\Enhancement %APPVEYOR_BUILD_FOLDER%\AppVeyor /E /I /Q - - xcopy %APPVEYOR_BUILD_FOLDER%\Enthusiast %APPVEYOR_BUILD_FOLDER%\AppVeyor /E /I /Q - - xcopy %APPVEYOR_BUILD_FOLDER%\Modifications %APPVEYOR_BUILD_FOLDER%\AppVeyor /E /I /Q - - xcopy %APPVEYOR_BUILD_FOLDER%\Performance %APPVEYOR_BUILD_FOLDER%\AppVeyor /E /I /Q - - xcopy %APPVEYOR_BUILD_FOLDER%\Quality %APPVEYOR_BUILD_FOLDER%\AppVeyor /E /I /Q - - xcopy %APPVEYOR_BUILD_FOLDER%\Workaround %APPVEYOR_BUILD_FOLDER%\AppVeyor /E /I /Q -# waits for RDP confirmation before finishing -#on_finish: -# - ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1')) - -artifacts: - - path: AppVeyor - name: 'graphicPacks_2-$(appveyor_build_version)' - type: zip - -deploy: - tag: "appveyor$(appveyor_build_version)" - # Tag needs to be the same otherwise it won't overwrite. - release: "Graphic Packs: version 2-$(appveyor_build_version)" - description: "Updated to **v2-$(appveyor_build_version)** at $(CommitTimestamp) (UTC)\n\n### Changelog:\n**$(appveyor_repo_commit_message)** - Commit $(appveyor_repo_commit) by $(appveyor_repo_commit_author):\n```\n$(appveyor_repo_commit_message_extended)\n```\n#### [Installation instructions](https://$(appveyor_account_name).github.io/$(appveyor_project_name)/) - [Previous versions](https://ci.appveyor.com/project/$(appveyor_account_name)/cemu-graphic-packs/history)" - provider: GitHub - # Auth token is generated by using https://www.appveyor.com/docs/deployment/github/#provider-settings - auth_token: $(GithubAuthToken) - prerelease: false - # Makes it so that it overwrites the previous files. - force_update: true - artifact: /.*\.zip/ - on: - branch: master diff --git a/build.sh b/build.sh old mode 100644 new mode 100755 index 716b2dfb..1adc63bd --- a/build.sh +++ b/build.sh @@ -6,6 +6,8 @@ RED='\033[0;31m' NC='\033[0m' # Removes Color +echo -e "${RED}Building $buildType resolutions of the graphic packs.\n" + baseOutDir=$1 if [ -n "$baseOutDir" ]; then if [ ! -d "$baseOutDir" ]; then @@ -42,8 +44,10 @@ build_dir () { done } +res_240p=( "Performance" 426 240 ) res_360p489=( "Performance" 1920 360 ) res_360p=( "Performance" 640 360 ) +res_420p=( "Performance" 854 480 ) res_480p489=( "Performance" 2562 480 ) res_480p=( "Performance" 854 480 ) res_540p219=( "Performance" 1280 540 ) @@ -81,7 +85,7 @@ std_respack () { gameName=$1 params=( "$@" ) rest=( "${params[@]:1}" ) - + echo -e "travis_fold:start:$gameName" echo -e "${GREEN}[Building] ${BCYAN}$gameName ${NC}for ${rest[@]}" for arrg in "${rest[@]}" do @@ -106,13 +110,14 @@ std_respack () { exit 1 fi done + echo -e "travis_fold:end:$gameName" } mod_onearg () { params=( "$@" ) subparams=( "${params[@]:1}" ) mod_folder="${params[0]}" - + echo -e "travis_fold:start:$mod_folder" echo -e "${GREEN}[Building] ${BCYAN}$mod_folder ${NC}with arguments: ${subparams[@]}" for arrg in "${subparams[@]}" do @@ -123,13 +128,21 @@ mod_onearg () { #echo "${arrg} inFolder: $inFolder outFolder: $outFolder" build_dir "$inFolder" "$outFolder" "$arrg" done + echo -e "travis_fold:end:$mod_folder" } -res16by9=( "360p" "480p" "540p" "720p" "900p" "1080p" "1440p" "1800p" "2160p" "2880p" "4320p" "5760p" ) -res21by9=( "540p219" "720p219" "900p219" "1080p219" "1440p219" "1800p219" "2160p219" "2880p219" "4320p219" "5760p219" ) -res48by9=( "360p489" "480p489" "540p489" "720p489" "900p489" "1080p489" "1440p489" "1800p489" "2160p489" "2880p489" "4320p489" "5760p489" ) -just720p=( "720p" ) -just1080p=( "1080p" ) +if [ "$buildType" = "Common" ]; then + res16by9=( "480p" "720p" "900p" "1080p" "1440p" "2160p" "2880p" ) + res21by9=( "720p219" "1080p219" "1440p219" "2160p219" "2880p219" ) + just720p=( "720p" ) + just1080p=( "1080p" ) + else + res16by9=( "240p" "360p" "420p" "480p" "540p" "720p" "900p" "1080p" "1440p" "1800p" "2160p" "2880p" "4320p" "5760p" ) + res21by9=( "540p219" "720p219" "900p219" "1080p219" "1440p219" "1800p219" "2160p219" "2880p219" "4320p219" "5760p219" ) + res48by9=( "360p489" "480p489" "540p489" "720p489" "900p489" "1080p489" "1440p489" "1800p489" "2160p489" "2880p489" "4320p489" "5760p489" ) + just720p=( "720p" ) + just1080p=( "1080p" ) +fi std_respack "AdventureTimeEtDBIDK" "${res16by9[@]/$just1080p}" std_respack "AdventureTimeFJI" "${res16by9[@]/$just720p}" @@ -171,6 +184,7 @@ std_respack "MarioSonicRio" "${res16by9[@]/$just720p}" std_respack "MarioSonicSochi" "${res16by9[@]/$just720p}" std_respack "MarioTennis" "${res16by9[@]/$just720p}" std_respack "MarioParty10" "${res16by9[@]/$just720p}" +std_respack "Minecraft" "${res16by9[@]/$just720p}" std_respack "MinecraftStory" "${res16by9[@]/$just720p}" std_respack "MonsterHunter3Ultimate" "${res16by9[@]/$just1080p}" std_respack "NBA2K13" "${res16by9[@]/$just720p}" @@ -185,6 +199,7 @@ std_respack "PokkenTournament" "${res16by9[@]/$just720p}" std_respack "ProjectZero" "${res16by9[@]/$just720p}" std_respack "PuyoPuyoTetris" "${res16by9[@]/$just1080p}" std_respack "RiseOfLyric" "${res16by9[@]/$just720p}" +std_respack "Runner2" "${res16by9[@]/$just720p}" std_respack "SanatoryHallways" "${res16by9[@]/$just720p}" std_respack "ScribblenautsUnlimited" "${res16by9[@]/$just720p}" std_respack "ScribblenautsUnmasked" "${res16by9[@]/$just720p}"