diff --git a/Source/YoshisWoollyWorld/b5082db8c1a44514_0000000000000079_ps.txt b/Source/YoshisWoollyWorld/b5082db8c1a44514_0000000000000079_ps.txt index 0eb4ca29..b9bdfb75 100644 --- a/Source/YoshisWoollyWorld/b5082db8c1a44514_0000000000000079_ps.txt +++ b/Source/YoshisWoollyWorld/b5082db8c1a44514_0000000000000079_ps.txt @@ -2,116 +2,127 @@ #extension GL_ARB_texture_gather : enable #extension GL_ARB_separate_shader_objects : enable // shader b5082db8c1a44514 -// Used for vertical blur DoF -const float resXScale = ($width/$gameWidth); -const float resYScale = ($height/$gameHeight); - +//BGblur vert +const float dither = $dither ; uniform ivec4 uf_uniformRegisterPS[256]; layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf4e14800 res 640x360x1 dim 1 tm: 4 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 0 layout(location = 0) in vec4 passParameterSem0; layout(location = 0) out vec4 passPixelColor0; uniform vec2 uf_fragCoordScale; + +highp float lineRand(vec2 co) +{ + highp float a = 12.9898; + highp float b = 78.233; + highp float c = 43758.5453; + highp float dt = dot(co.xy, vec2(a, b)); + highp float sn = mod(dt, 3.14); + return fract(sin(sn) * c); +} + + int clampFI32(int v) { -if( v == 0x7FFFFFFF ) + if( v == 0x7FFFFFFF ) return floatBitsToInt(1.0); -else if( v == 0xFFFFFFFF ) + else if( v == 0xFFFFFFFF ) return floatBitsToInt(0.0); -return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.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; } +float mul_nonIEEE(float a, float b){return mix(0.0, a*b, (a != 0.0) && (b != 0.0));} void main() { -ivec4 R0i = ivec4(0); -ivec4 R1i = ivec4(0); -ivec4 R2i = ivec4(0); -ivec4 R3i = ivec4(0); -ivec4 R4i = ivec4(0); -ivec4 R123i = ivec4(0); -int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; -ivec4 PV0i = ivec4(0), PV1i = ivec4(0); -int PS0i = 0, PS1i = 0; -ivec4 tempi = ivec4(0); -float tempResultf; -int tempResulti; -ivec4 ARi = ivec4(0); -bool predResult = true; -bool activeMaskStack[1]; -bool activeMaskStackC[2]; -activeMaskStackC[0] = false; -activeMaskStack[0] = true; -activeMaskStackC[0] = true; -activeMaskStackC[1] = true; -vec3 cubeMapSTM; -int cubeMapFaceId; -R0i = floatBitsToInt(passParameterSem0); -if( activeMaskStackC[1] == true ) { -R1i.xyzw = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R0i.xy)).xyzw); -} -if( activeMaskStackC[1] == true ) { -// 0 -R4i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(uf_uniformRegisterPS[11].x))); -R4i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(uf_uniformRegisterPS[11].x))); -R4i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(uf_uniformRegisterPS[11].x))); -R4i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), intBitsToFloat(uf_uniformRegisterPS[11].x))); -R0i.w = 0x00000001; -PS0i = R0i.w; -// 1 -R0i.z = uf_uniformRegisterPS[22].x + int(1); -} -while( activeMaskStackC[1] == true ) -{ -if( activeMaskStackC[1] == true ) { -// 0 -R1i.x = (R0i.z > R0i.w)?int(0xFFFFFFFF):int(0x0); -// 1 -predResult = (R1i.x != 0); -if( predResult == false ) break; -} -if( activeMaskStackC[1] == true ) { -// 0 -backupReg0i = R0i.w; -backupReg0i = R0i.w; -R0i.w = backupReg0i + int(1); -R3i.z = floatBitsToInt(float(backupReg0i)); -PS0i = R3i.z; -// 1 -tempResultf = intBitsToFloat(PS0i); -tempResultf = floor(tempResultf); -tempResultf = clamp(tempResultf, -256.0, 255.0); -ARi.x = int(tempResultf); -PV1i.x = floatBitsToInt(tempResultf); -// 2 -R1i.xyz = floatBitsToInt(vec3(intBitsToFloat(R0i.x),intBitsToFloat(R0i.y),intBitsToFloat(R0i.x)) + vec3(intBitsToFloat(uf_uniformRegisterPS[ARi.x+0].x),intBitsToFloat(uf_uniformRegisterPS[ARi.x+0].y)/resYScale,-(intBitsToFloat(uf_uniformRegisterPS[ARi.x+0].x)))); -R1i.w = floatBitsToInt(intBitsToFloat(R0i.y) + -(intBitsToFloat(uf_uniformRegisterPS[ARi.x+0].y)/resYScale)); -} -if( activeMaskStackC[1] == true ) { -R2i.xyzw = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R1i.xy)).xyzw); -R1i.xyzw = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R1i.zw)).xyzw); -} -if( activeMaskStackC[1] == true ) { -// 0 -tempResultf = intBitsToFloat(R3i.z); -tempResultf = floor(tempResultf); -tempResultf = clamp(tempResultf, -256.0, 255.0); -ARi.x = int(tempResultf); -PV0i.x = floatBitsToInt(tempResultf); -// 1 -R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.z),intBitsToFloat(uf_uniformRegisterPS[ARi.x+11].x)) + intBitsToFloat(R4i.z))); -PV1i.x = R123i.x; -R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y),intBitsToFloat(uf_uniformRegisterPS[ARi.x+11].x)) + intBitsToFloat(R4i.y))); -PV1i.y = R123i.y; -R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.w),intBitsToFloat(uf_uniformRegisterPS[ARi.x+11].x)) + intBitsToFloat(R4i.w))); -PV1i.z = R123i.z; -R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.x),intBitsToFloat(uf_uniformRegisterPS[ARi.x+11].x)) + intBitsToFloat(R4i.x))); -PV1i.w = R123i.w; -// 2 -R4i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x),intBitsToFloat(uf_uniformRegisterPS[ARi.x+11].x)) + intBitsToFloat(PV1i.w))); -R4i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(uf_uniformRegisterPS[ARi.x+11].x)) + intBitsToFloat(PV1i.y))); -R4i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.z),intBitsToFloat(uf_uniformRegisterPS[ARi.x+11].x)) + intBitsToFloat(PV1i.x))); -R4i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.w),intBitsToFloat(uf_uniformRegisterPS[ARi.x+11].x)) + intBitsToFloat(PV1i.z))); -} -} -// export -passPixelColor0 = vec4(intBitsToFloat(R4i.x), intBitsToFloat(R4i.y), intBitsToFloat(R4i.z), intBitsToFloat(R4i.w)); + ivec4 R0i = ivec4(0); + ivec4 R1i = ivec4(0); + ivec4 R2i = ivec4(0); + ivec4 R3i = ivec4(0); + ivec4 R4i = ivec4(0); + ivec4 R123i = ivec4(0); + int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; + ivec4 PV0i = ivec4(0), PV1i = ivec4(0); + int PS0i = 0, PS1i = 0; + ivec4 tempi = ivec4(0); + float tempResultf; + int tempResulti; + ivec4 ARi = ivec4(0); + bool predResult = true; + bool activeMaskStack[1]; + bool activeMaskStackC[2]; + activeMaskStackC[0] = false; + activeMaskStack[0] = true; + activeMaskStackC[0] = true; + activeMaskStackC[1] = true; + vec3 cubeMapSTM; + int cubeMapFaceId; + R0i = floatBitsToInt(passParameterSem0); + R0i.xy = floatBitsToInt(passParameterSem0.xy- (lineRand(gl_FragCoord.xy)*0.001*dither)).xy; + if( activeMaskStackC[1] == true ) { + R1i.xyzw = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R0i.xy)).xyzw); + } + if( activeMaskStackC[1] == true ) { + // 0 + R4i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(uf_uniformRegisterPS[11].x))); + R4i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(uf_uniformRegisterPS[11].x))); + R4i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(uf_uniformRegisterPS[11].x))); + R4i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), intBitsToFloat(uf_uniformRegisterPS[11].x))); + R0i.w = 0x00000001; + PS0i = R0i.w; + // 1 + R0i.z = uf_uniformRegisterPS[22].x + int(1); + } + while( activeMaskStackC[1] == true ) + { + if( activeMaskStackC[1] == true ) { + // 0 + R1i.x = (R0i.z > R0i.w)?int(0xFFFFFFFF):int(0x0); + // 1 + predResult = (R1i.x != 0); + if( predResult == false ) break; + } + if( activeMaskStackC[1] == true ) { + // 0 + backupReg0i = R0i.w; + backupReg0i = R0i.w; + R0i.w = backupReg0i + int(1); + R3i.z = floatBitsToInt(float(backupReg0i)); + PS0i = R3i.z; + // 1 + tempResultf = intBitsToFloat(PS0i); + tempResultf = floor(tempResultf); + tempResultf = clamp(tempResultf, -256.0, 255.0); + ARi.x = int(tempResultf); + PV1i.x = floatBitsToInt(tempResultf); + // 2 + R1i.xyz = floatBitsToInt(vec3(intBitsToFloat(R0i.x),intBitsToFloat(R0i.y),intBitsToFloat(R0i.x)) + vec3(intBitsToFloat(uf_uniformRegisterPS[ARi.x+0].x),intBitsToFloat(uf_uniformRegisterPS[ARi.x+0].y),-(intBitsToFloat(uf_uniformRegisterPS[ARi.x+0].x)))); + R1i.w = floatBitsToInt(intBitsToFloat(R0i.y) + -(intBitsToFloat(uf_uniformRegisterPS[ARi.x+0].y))); + } + if( activeMaskStackC[1] == true ) { + R2i.xyzw = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R1i.xy)).xyzw); + R1i.xyzw = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R1i.zw)).xyzw); + } + if( activeMaskStackC[1] == true ) { + // 0 + tempResultf = intBitsToFloat(R3i.z); + tempResultf = floor(tempResultf); + tempResultf = clamp(tempResultf, -256.0, 255.0); + ARi.x = int(tempResultf); + PV0i.x = floatBitsToInt(tempResultf); + // 1 + R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.z),intBitsToFloat(uf_uniformRegisterPS[ARi.x+11].x)) + intBitsToFloat(R4i.z))); + PV1i.x = R123i.x; + R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y),intBitsToFloat(uf_uniformRegisterPS[ARi.x+11].x)) + intBitsToFloat(R4i.y))); + PV1i.y = R123i.y; + R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.w),intBitsToFloat(uf_uniformRegisterPS[ARi.x+11].x)) + intBitsToFloat(R4i.w))); + PV1i.z = R123i.z; + R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.x),intBitsToFloat(uf_uniformRegisterPS[ARi.x+11].x)) + intBitsToFloat(R4i.x))); + PV1i.w = R123i.w; + // 2 + R4i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x),intBitsToFloat(uf_uniformRegisterPS[ARi.x+11].x)) + intBitsToFloat(PV1i.w))); + R4i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(uf_uniformRegisterPS[ARi.x+11].x)) + intBitsToFloat(PV1i.y))); + R4i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.z),intBitsToFloat(uf_uniformRegisterPS[ARi.x+11].x)) + intBitsToFloat(PV1i.x))); + R4i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.w),intBitsToFloat(uf_uniformRegisterPS[ARi.x+11].x)) + intBitsToFloat(PV1i.z))); + } + } + // export + passPixelColor0 = vec4(intBitsToFloat(R4i.x), intBitsToFloat(R4i.y), intBitsToFloat(R4i.z), intBitsToFloat(R4i.w)); } diff --git a/Source/YoshisWoollyWorld/f1f99f18ae69719b_0000000000000079_ps.txt b/Source/YoshisWoollyWorld/f1f99f18ae69719b_0000000000000079_ps.txt index f32be300..70c6504f 100644 --- a/Source/YoshisWoollyWorld/f1f99f18ae69719b_0000000000000079_ps.txt +++ b/Source/YoshisWoollyWorld/f1f99f18ae69719b_0000000000000079_ps.txt @@ -2,116 +2,132 @@ #extension GL_ARB_texture_gather : enable #extension GL_ARB_separate_shader_objects : enable // shader f1f99f18ae69719b -// Used for horizontal blur DoF -const float resXScale = ($width/$gameWidth); -const float resYScale = ($height/$gameHeight); - +//Bg horizontal +const float dither = $dither ; uniform ivec4 uf_uniformRegisterPS[256]; layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf59d2000 res 640x360x1 dim 1 tm: 4 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 0 layout(location = 0) in vec4 passParameterSem0; layout(location = 0) out vec4 passPixelColor0; uniform vec2 uf_fragCoordScale; + + +highp float lineRand(vec2 co) +{ + highp float a = 12.9898; + highp float b = 78.233; + highp float c = 43758.5453; + highp float dt = dot(co.xy, vec2(a, b)); + highp float sn = mod(dt, 3.14); + return fract(sin(sn) * c); +} + + +//- (lineRand(R0i.xy )*0.415) + int clampFI32(int v) { -if( v == 0x7FFFFFFF ) + if( v == 0x7FFFFFFF ) return floatBitsToInt(1.0); -else if( v == 0xFFFFFFFF ) + else if( v == 0xFFFFFFFF ) return floatBitsToInt(0.0); -return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.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; } +float mul_nonIEEE(float a, float b){return mix(0.0, a*b, (a != 0.0) && (b != 0.0));} void main() { -ivec4 R0i = ivec4(0); -ivec4 R1i = ivec4(0); -ivec4 R2i = ivec4(0); -ivec4 R3i = ivec4(0); -ivec4 R4i = ivec4(0); -ivec4 R123i = ivec4(0); -int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; -ivec4 PV0i = ivec4(0), PV1i = ivec4(0); -int PS0i = 0, PS1i = 0; -ivec4 tempi = ivec4(0); -float tempResultf; -int tempResulti; -ivec4 ARi = ivec4(0); -bool predResult = true; -bool activeMaskStack[1]; -bool activeMaskStackC[2]; -activeMaskStackC[0] = false; -activeMaskStack[0] = true; -activeMaskStackC[0] = true; -activeMaskStackC[1] = true; -vec3 cubeMapSTM; -int cubeMapFaceId; -R0i = floatBitsToInt(passParameterSem0); -if( activeMaskStackC[1] == true ) { -R1i.xyzw = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R0i.xy)).xyzw); -} -if( activeMaskStackC[1] == true ) { -// 0 -R4i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(uf_uniformRegisterPS[11].x))); -R4i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(uf_uniformRegisterPS[11].x))); -R4i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(uf_uniformRegisterPS[11].x))); -R4i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), intBitsToFloat(uf_uniformRegisterPS[11].x))); -R0i.w = 0x00000001; -PS0i = R0i.w; -// 1 -R0i.z = uf_uniformRegisterPS[22].x + int(1); -} -while( activeMaskStackC[1] == true ) -{ -if( activeMaskStackC[1] == true ) { -// 0 -R1i.x = (R0i.z > R0i.w)?int(0xFFFFFFFF):int(0x0); -// 1 -predResult = (R1i.x != 0); -if( predResult == false ) break; -} -if( activeMaskStackC[1] == true ) { -// 0 -backupReg0i = R0i.w; -backupReg0i = R0i.w; -R0i.w = backupReg0i + int(1); -R3i.z = floatBitsToInt(float(backupReg0i)); -PS0i = R3i.z; -// 1 -tempResultf = intBitsToFloat(PS0i); -tempResultf = floor(tempResultf); -tempResultf = clamp(tempResultf, -256.0, 255.0); -ARi.x = int(tempResultf); -PV1i.x = floatBitsToInt(tempResultf); -// 2 -R1i.xyz = floatBitsToInt(vec3(intBitsToFloat(R0i.x),intBitsToFloat(R0i.y),intBitsToFloat(R0i.x)) + vec3(intBitsToFloat(uf_uniformRegisterPS[ARi.x+0].x)/resXScale,intBitsToFloat(uf_uniformRegisterPS[ARi.x+0].y),-(intBitsToFloat(uf_uniformRegisterPS[ARi.x+0].x)/resXScale))); -R1i.w = floatBitsToInt(intBitsToFloat(R0i.y) + -(intBitsToFloat(uf_uniformRegisterPS[ARi.x+0].y))); -} -if( activeMaskStackC[1] == true ) { -R2i.xyzw = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R1i.xy)).xyzw); -R1i.xyzw = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R1i.zw)).xyzw); -} -if( activeMaskStackC[1] == true ) { -// 0 -tempResultf = intBitsToFloat(R3i.z); -tempResultf = floor(tempResultf); -tempResultf = clamp(tempResultf, -256.0, 255.0); -ARi.x = int(tempResultf); -PV0i.x = floatBitsToInt(tempResultf); -// 1 -R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.z),intBitsToFloat(uf_uniformRegisterPS[ARi.x+11].x)) + intBitsToFloat(R4i.z))); -PV1i.x = R123i.x; -R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y),intBitsToFloat(uf_uniformRegisterPS[ARi.x+11].x)) + intBitsToFloat(R4i.y))); -PV1i.y = R123i.y; -R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.w),intBitsToFloat(uf_uniformRegisterPS[ARi.x+11].x)) + intBitsToFloat(R4i.w))); -PV1i.z = R123i.z; -R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.x),intBitsToFloat(uf_uniformRegisterPS[ARi.x+11].x)) + intBitsToFloat(R4i.x))); -PV1i.w = R123i.w; -// 2 -R4i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x),intBitsToFloat(uf_uniformRegisterPS[ARi.x+11].x)) + intBitsToFloat(PV1i.w))); -R4i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(uf_uniformRegisterPS[ARi.x+11].x)) + intBitsToFloat(PV1i.y))); -R4i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.z),intBitsToFloat(uf_uniformRegisterPS[ARi.x+11].x)) + intBitsToFloat(PV1i.x))); -R4i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.w),intBitsToFloat(uf_uniformRegisterPS[ARi.x+11].x)) + intBitsToFloat(PV1i.z))); -} -} -// export -passPixelColor0 = vec4(intBitsToFloat(R4i.x), intBitsToFloat(R4i.y), intBitsToFloat(R4i.z), intBitsToFloat(R4i.w)); + ivec4 R0i = ivec4(0); + ivec4 R1i = ivec4(0); + ivec4 R2i = ivec4(0); + ivec4 R3i = ivec4(0); + ivec4 R4i = ivec4(0); + ivec4 R123i = ivec4(0); + int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; + ivec4 PV0i = ivec4(0), PV1i = ivec4(0); + int PS0i = 0, PS1i = 0; + ivec4 tempi = ivec4(0); + float tempResultf; + int tempResulti; + ivec4 ARi = ivec4(0); + bool predResult = true; + bool activeMaskStack[1]; + bool activeMaskStackC[2]; + activeMaskStackC[0] = false; + activeMaskStack[0] = true; + activeMaskStackC[0] = true; + activeMaskStackC[1] = true; + vec3 cubeMapSTM; + int cubeMapFaceId; + R0i = floatBitsToInt(passParameterSem0); +R0i.xy = floatBitsToInt(passParameterSem0.xy- (lineRand(gl_FragCoord.xy)*0.001*dither)).xy; + //R0f.xy = R0f.xy - (lineRand(gl_FragCoord.xy)*0.015); + + if( activeMaskStackC[1] == true ) { + R1i.xyzw = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R0i.xy)).xyzw); + } + if( activeMaskStackC[1] == true ) { + // 0 + R4i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(uf_uniformRegisterPS[11].x))); + R4i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(uf_uniformRegisterPS[11].x))); + R4i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(uf_uniformRegisterPS[11].x))); + R4i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), intBitsToFloat(uf_uniformRegisterPS[11].x))); + R0i.w = 0x00000001; + PS0i = R0i.w; + // 1 + R0i.z = uf_uniformRegisterPS[22].x + int(1); + } + while( activeMaskStackC[1] == true ) + { + if( activeMaskStackC[1] == true ) { + // 0 + R1i.x = (R0i.z > R0i.w)?int(0xFFFFFFFF):int(0x0); + // 1 + predResult = (R1i.x != 0); + if( predResult == false ) break; + } + if( activeMaskStackC[1] == true ) { + // 0 + backupReg0i = R0i.w; + backupReg0i = R0i.w; + R0i.w = backupReg0i + int(1); + R3i.z = floatBitsToInt(float(backupReg0i)); + PS0i = R3i.z; + // 1 + tempResultf = intBitsToFloat(PS0i); + tempResultf = floor(tempResultf); + tempResultf = clamp(tempResultf, -256.0, 255.0); + ARi.x = int(tempResultf); + PV1i.x = floatBitsToInt(tempResultf); + // 2 + R1i.xyz = floatBitsToInt(vec3(intBitsToFloat(R0i.x),intBitsToFloat(R0i.y),intBitsToFloat(R0i.x)) + vec3(intBitsToFloat(uf_uniformRegisterPS[ARi.x+0].x),intBitsToFloat(uf_uniformRegisterPS[ARi.x+0].y),-(intBitsToFloat(uf_uniformRegisterPS[ARi.x+0].x)))); + R1i.w = floatBitsToInt(intBitsToFloat(R0i.y) + -(intBitsToFloat(uf_uniformRegisterPS[ARi.x+0].y))); + } + if( activeMaskStackC[1] == true ) { + R2i.xyzw = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R1i.xy)).xyzw); + R1i.xyzw = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R1i.zw)).xyzw); + } + if( activeMaskStackC[1] == true ) { + // 0 + tempResultf = intBitsToFloat(R3i.z); + tempResultf = floor(tempResultf); + tempResultf = clamp(tempResultf, -256.0, 255.0); + ARi.x = int(tempResultf); + PV0i.x = floatBitsToInt(tempResultf); + // 1 + R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.z),intBitsToFloat(uf_uniformRegisterPS[ARi.x+11].x)) + intBitsToFloat(R4i.z))); + PV1i.x = R123i.x; + R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y),intBitsToFloat(uf_uniformRegisterPS[ARi.x+11].x)) + intBitsToFloat(R4i.y))); + PV1i.y = R123i.y; + R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.w),intBitsToFloat(uf_uniformRegisterPS[ARi.x+11].x)) + intBitsToFloat(R4i.w))); + PV1i.z = R123i.z; + R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.x),intBitsToFloat(uf_uniformRegisterPS[ARi.x+11].x)) + intBitsToFloat(R4i.x))); + PV1i.w = R123i.w; + // 2 + R4i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x),intBitsToFloat(uf_uniformRegisterPS[ARi.x+11].x)) + intBitsToFloat(PV1i.w))); + R4i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(uf_uniformRegisterPS[ARi.x+11].x)) + intBitsToFloat(PV1i.y))); + R4i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.z),intBitsToFloat(uf_uniformRegisterPS[ARi.x+11].x)) + intBitsToFloat(PV1i.x))); + R4i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.w),intBitsToFloat(uf_uniformRegisterPS[ARi.x+11].x)) + intBitsToFloat(PV1i.z))); + } + } + // export + passPixelColor0 = vec4(intBitsToFloat(R4i.x), intBitsToFloat(R4i.y), intBitsToFloat(R4i.z), intBitsToFloat(R4i.w)); } diff --git a/Source/YoshisWoollyWorld/rules.txt b/Source/YoshisWoollyWorld/rules.txt index 57576096..6c2fbed2 100644 --- a/Source/YoshisWoollyWorld/rules.txt +++ b/Source/YoshisWoollyWorld/rules.txt @@ -1,32 +1,17 @@ [Definition] titleIds = 0005000010131F00,0005000010184E00,0005000010184D00 name = Resolution -path = "Yoshi's Woolly World/Graphics/Resolution" +path = "Yoshis Woolly World/Graphics/Resolution" description = Changes the resolution of the game. version = 3 [Preset] -name = 1280x720 (Default) +name = 1280x720 Default $width = 1280 $height = 720 $gameWidth = 1280 $gameHeight = 720 - -// Performance - -[Preset] -name = 256x144 -$width = 256 -$height = 144 -$gameWidth = 1280 -$gameHeight = 720 - -[Preset] -name = 427x240 -$width = 427 -$height = 240 -$gameWidth = 1280 -$gameHeight = 720 +$dither = 0.1 [Preset] name = 640x360 @@ -34,6 +19,7 @@ $width = 640 $height = 360 $gameWidth = 1280 $gameHeight = 720 +$dither = 0.1 [Preset] name = 854x480 @@ -41,6 +27,7 @@ $width = 854 $height = 480 $gameWidth = 1280 $gameHeight = 720 +$dither = 0.1 [Preset] name = 960x540 @@ -48,8 +35,7 @@ $width = 960 $height = 540 $gameWidth = 1280 $gameHeight = 720 - -// Quality +$dither = 0.1 [Preset] name = 1600x900 @@ -57,6 +43,7 @@ $width = 1600 $height = 900 $gameWidth = 1280 $gameHeight = 720 +$dither = 0.1 [Preset] name = 1920x1080 @@ -64,6 +51,7 @@ $width = 1920 $height = 1080 $gameWidth = 1280 $gameHeight = 720 +$dither = 0.1 [Preset] name = 2560x1440 @@ -71,6 +59,7 @@ $width = 2560 $height = 1440 $gameWidth = 1280 $gameHeight = 720 +$dither = 0.5 [Preset] name = 2732x1536 @@ -78,6 +67,7 @@ $width = 2732 $height = 1536 $gameWidth = 1280 $gameHeight = 720 +$dither = 0.5 [Preset] name = 3200x1800 @@ -85,6 +75,7 @@ $width = 3200 $height = 1800 $gameWidth = 1280 $gameHeight = 720 +$dither = 0.75 [Preset] name = 3840x2160 @@ -92,6 +83,7 @@ $width = 3840 $height = 2160 $gameWidth = 1280 $gameHeight = 720 +$dither = 0.85 [Preset] name = 5120x2880 @@ -99,8 +91,7 @@ $width = 5120 $height = 2880 $gameWidth = 1280 $gameHeight = 720 - -// Enthusiast +$dither = 1.0 [Preset] name = 7680x4320 @@ -108,6 +99,7 @@ $width = 7680 $height = 4320 $gameWidth = 1280 $gameHeight = 720 +$dither = 1.25 [Preset] name = 10240x5760 @@ -115,22 +107,72 @@ $width = 10240 $height = 5760 $gameWidth = 1280 $gameHeight = 720 +$dither = 1.25 -[TextureRedefine] # Game Resolution +[TextureRedefine] width = 1280 height = 720 +#formats = 0x033,0x007,0x01a formatsExcluded = 0x033 -overwriteWidth = ($width / $gameWidth) * 1280 -overwriteHeight = ($height / $gameHeight) * 720 +tileModesExcluded = 0x001 +overwriteWidth = ($width/$gameWidth) * 1280 +overwriteHeight = ($height/$gameHeight) * 720 -[TextureRedefine] # Depth of Field Pass +[TextureRedefine] # +width = 1024 +height = 1024 +#formatsExcluded = 0x431,0x005,0x433,0x431,0x235,0x035,0x034,0x033,0x031,0x005,0x01a +formats = 0x005 +overwriteWidth = ($width/$gameWidth) * 1024 +overwriteHeight = ($height/$gameHeight) * 1024 + +[TextureRedefine] +width = 854 +height = 480 +#formats = 0x034 +overwriteWidth = ($width/$gameWidth) * 854 +overwriteHeight = ($height/$gameHeight) * 480 + +[TextureRedefine] width = 640 height = 368 -overwriteWidth = ($width / $gameWidth) * 640 -overwriteHeight = ($height / $gameHeight) * 368 +#formats = 0x816,0x820,0x816,0x80e,0x019,0x001,0x01a +tileModesExcluded = 0x001 +overwriteWidth = ($width/$gameWidth) * 640 +overwriteHeight = ($height/$gameHeight) * 368 -[TextureRedefine] # Depth of Field Pass +[TextureRedefine] width = 640 height = 360 -overwriteWidth = ($width / $gameWidth) * 640 -overwriteHeight = ($height / $gameHeight) * 360 +#formats = 0x816,0x820,0x816,0x80e,0x019,0x001,0x01a +tileModesExcluded = 0x001 +overwriteWidth = ($width/$gameWidth) * 640 +overwriteHeight = ($height/$gameHeight) * 360 + +[TextureRedefine] +width = 320 +height = 180 +#formats = 0x816,0x019,0x01a,0x001 +overwriteWidth = ($width/$gameWidth) * 320 +overwriteHeight = ($height/$gameHeight) * 180 + +[TextureRedefine] +width = 160 +height = 90 +#formats = 0x806,0x007,0x01a +overwriteWidth = ($width/$gameWidth) * 160 +overwriteHeight = ($height/$gameHeight) * 90 + +[TextureRedefine] +width = 80 +height = 45 +#formats = 0x806,0x01a +overwriteWidth = ($width/$gameWidth) * 80 +overwriteHeight = ($height/$gameHeight) * 45 + +[TextureRedefine] +width = 40 +height = 22 +#formats = 0x01a +overwriteWidth = ($width/$gameWidth) * 40 +overwriteHeight = ($height/$gameHeight) * 22