diff --git a/Source/XenobladeX/034f3827969964b2_0000000000000000_vs.txt b/Source/XenobladeX/034f3827969964b2_0000000000000000_vs.txt deleted file mode 100644 index c7ba002e..00000000 --- a/Source/XenobladeX/034f3827969964b2_0000000000000000_vs.txt +++ /dev/null @@ -1,128 +0,0 @@ -#version 420 -#extension GL_ARB_texture_gather : enable -#extension GL_ARB_shading_language_packing : enable -// shader 034f3827969964b2 -//shadow acne fix time-of-day station -// to-do Magic value, review other solution. -layout(binding = 1, std140) uniform uniformBlockVS1 -{ -vec4 uf_blockVS1[1024]; -}; - -layout(binding = 2, std140) uniform uniformBlockVS2 -{ -vec4 uf_blockVS2[1024]; -}; - -uniform vec2 uf_windowSpaceToClipSpaceTransform; -layout(location = 0) in uvec4 attrDataSem0; -layout(location = 1) in uvec4 attrDataSem1; -out gl_PerVertex -{ - vec4 gl_Position; - float gl_PointSize; -}; -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 min(a*b,min(abs(a)*3.40282347E+38F,abs(b)*3.40282347E+38F)); } -void main() -{ -ivec4 R0i = ivec4(0); -ivec4 R1i = ivec4(0); -ivec4 R2i = ivec4(0); -ivec4 R3i = ivec4(0); -ivec4 R4i = ivec4(0); -ivec4 R127i = ivec4(0); -uvec4 attrDecoder; -int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; -ivec4 PV0i = ivec4(0), PV1i = ivec4(0); -int PS0i = 0, PS1i = 0; -ivec4 tempi = ivec4(0); -float tempResultf; -int tempResulti; -ivec4 ARi = ivec4(0); -bool predResult = true; -vec3 cubeMapSTM; -int cubeMapFaceId; -R0i = ivec4(gl_VertexID, 0, 0, gl_InstanceID); -attrDecoder.xyz = attrDataSem0.xyz; -attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24)); -attrDecoder.w = 0; -R2i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), floatBitsToInt(1.0)); -attrDecoder.xy = attrDataSem1.xy; -attrDecoder.xy = ((attrDecoder.xy>>8)&0xFF)|((attrDecoder.xy<<8)&0xFF00); -attrDecoder.z = 0; -attrDecoder.w = 0; -R1i = ivec4(int(attrDecoder.x), int(attrDecoder.y), 0, 1); -// 0 -R4i.w = 0x3f800000; -R0i.z = R1i.x * 0x00000003; -PS0i = R0i.z; -// 1 -R1i.x = PS0i + 0x00000002; -R0i.y = PS0i + int(1); -R3i.xyzw = floatBitsToInt(uf_blockVS1[R0i.z].xyzw); -R0i.xyzw = floatBitsToInt(uf_blockVS1[R0i.y].xyzw); -R1i.xyzw = floatBitsToInt(uf_blockVS1[R1i.x].xyzw); -// 0 -R127i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R2i.z),intBitsToFloat(R2i.w)),vec4(intBitsToFloat(R3i.x),intBitsToFloat(R3i.y),intBitsToFloat(R3i.z),intBitsToFloat(R3i.w)))); -PV0i.x = R127i.x; -PV0i.y = R127i.x; -PV0i.z = R127i.x; -PV0i.w = R127i.x; -// 1 -backupReg0i = R0i.x; -backupReg1i = R0i.z; -backupReg2i = R0i.w; -tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R2i.z),intBitsToFloat(R2i.w)),vec4(intBitsToFloat(backupReg0i),intBitsToFloat(R0i.y),intBitsToFloat(backupReg1i),intBitsToFloat(backupReg2i)))); -PV1i.x = tempi.x; -PV1i.y = tempi.x; -PV1i.z = tempi.x; -PV1i.w = tempi.x; -R127i.y = tempi.x; -// 2 -tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R2i.z),intBitsToFloat(R2i.w)),vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z),intBitsToFloat(R1i.w)))); -PV0i.x = tempi.x; -PV0i.y = tempi.x; -PV0i.z = tempi.x; -PV0i.w = tempi.x; -R127i.z = tempi.x; -// 3 -R1i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.y),intBitsToFloat(PV0i.x),intBitsToFloat(R4i.w)),vec4(uf_blockVS2[0].x,uf_blockVS2[0].y,uf_blockVS2[0].z,uf_blockVS2[0].w))); -PV1i.x = R1i.x; -PV1i.y = R1i.x; -PV1i.z = R1i.x; -PV1i.w = R1i.x; -// 4 -tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.y),intBitsToFloat(R127i.z),intBitsToFloat(R4i.w)),vec4(uf_blockVS2[1].x,uf_blockVS2[1].y,uf_blockVS2[1].z,uf_blockVS2[1].w))); -PV0i.x = tempi.x; -PV0i.y = tempi.x; -PV0i.z = tempi.x; -PV0i.w = tempi.x; -R1i.y = tempi.x; -// 5 -tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.y),intBitsToFloat(R127i.z),intBitsToFloat(R4i.w)),vec4(uf_blockVS2[2].x,uf_blockVS2[2].y,uf_blockVS2[2].z,uf_blockVS2[2].w))); -PV1i.x = tempi.x; -PV1i.y = tempi.x; -PV1i.z = tempi.x; -PV1i.w = tempi.x; -R1i.z = tempi.x; -// 6 -tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.y),intBitsToFloat(R127i.z),intBitsToFloat(R4i.w)),vec4(uf_blockVS2[3].x,uf_blockVS2[3].y,uf_blockVS2[3].z,uf_blockVS2[3].w))); -PV0i.x = tempi.x; -PV0i.y = tempi.x; -PV0i.z = tempi.x; -PV0i.w = tempi.x; -R1i.w = tempi.x; -// export -gl_Position = vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z)+0.0002, intBitsToFloat(R1i.w)); //shadow bias -// export -// skipped export to semanticId 255 -// 0 -} diff --git a/Source/XenobladeX/3cc7e98f78c258b4_00000000000003ca_ps.txt b/Source/XenobladeX/3cc7e98f78c258b4_00000000000003ca_ps.txt index d24f3265..5be3f01a 100644 --- a/Source/XenobladeX/3cc7e98f78c258b4_00000000000003ca_ps.txt +++ b/Source/XenobladeX/3cc7e98f78c258b4_00000000000003ca_ps.txt @@ -4,8 +4,8 @@ // To-do, .5 is daylight and 1.0 night is wiiu "correct" for nvidia // changes here in turn "breaks" bloom as they over or under expose depending on day/night -const float preExposure = 0.55; // old brigntess tweak. Truncates at around .45+ -const float gammaPostExposure = 1.1; // compensate pre exposure, but loss of contrast when positive. +const float preExposure = 0.85; // old brigntess tweak. Truncates at around .45+ +const float gammaPostExposure = 0.9; // compensate pre exposure, but loss of contrast when positive. uniform ivec4 uf_remappedPS[1]; layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf470a000 res 1280x720x1 dim 1 tm: 4 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 0 layout(binding = 1) uniform sampler3D textureUnitPS1;// Tex1 addr 0x2603b000 res 16x16x16 dim 2 tm: 7 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x10) Sampler1 ClampX/Y/Z: 2 2 2 border: 0 diff --git a/Source/XenobladeX/af7acf7fb6dca1be_0000000000079249_ps.txt b/Source/XenobladeX/af7acf7fb6dca1be_0000000000079249_ps.txt index 2914aedd..2f525fb4 100644 --- a/Source/XenobladeX/af7acf7fb6dca1be_0000000000079249_ps.txt +++ b/Source/XenobladeX/af7acf7fb6dca1be_0000000000079249_ps.txt @@ -13,6 +13,7 @@ $scaleFactorY = always_decimal_format($fullHeight / 720.0); //to do - extra edge smooth pass, //const float resScale = 2.0;// 2.0 looks good const float resScale = ; +const float shadowExposure = 0.75; //By truncating shadow, we decrease overall exposure during day only. uniform ivec4 uf_remappedPS[31]; layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf4386000 res 1280x720x1 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(binding = 1) uniform sampler2D textureUnitPS1;// Tex1 addr 0xf599a000 res 1024x1024x1 dim 1 tm: 4 format 0005 compSel: 0 4 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler1 ClampX/Y/Z: 6 6 6 border: 2 @@ -581,5 +582,5 @@ R0i.y = floatBitsToInt((intBitsToFloat(PV0i.y) * intBitsToFloat(uf_remappedPS[30 R0i.z = floatBitsToInt((intBitsToFloat(PV0i.x) * intBitsToFloat(uf_remappedPS[30].x) + intBitsToFloat(uf_remappedPS[30].y))); } // export -passPixelColor0 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), intBitsToFloat(R0i.w)); +passPixelColor0 = vec4(intBitsToFloat(R0i.x)*shadowExposure, intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), intBitsToFloat(R0i.w)); } diff --git a/Source/XenobladeX/d936195db0dd8e7d_0000000000001e52_ps.txt b/Source/XenobladeX/d936195db0dd8e7d_0000000000001e52_ps.txt index 3b19a74e..8f060a63 100644 --- a/Source/XenobladeX/d936195db0dd8e7d_0000000000001e52_ps.txt +++ b/Source/XenobladeX/d936195db0dd8e7d_0000000000001e52_ps.txt @@ -4,8 +4,8 @@ // cross fade brightness // To-do, .5 is daylight and 1.0 night is wiiu "correct" for nvidia // changes here in turn "breaks" bloom as they over or under expose depending on day/night -const float preExposure = 0.55; // old brigntess tweak. Truncates at around .45+ -const float gammaPostExposure = 1.1; // compensate pre exposure, but loss of contrast when positive. +const float preExposure = 0.85; // old brigntess tweak. Truncates at around .45+ +const float gammaPostExposure = 0.9; // compensate pre exposure, but loss of contrast when positive. uniform ivec4 uf_remappedPS[1]; layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf470a000 res 1280x720x1 dim 1 tm: 4 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 0 diff --git a/Source/XenobladeX/fdb5a87dd0368c6b_000000000000f249_ps.txt b/Source/XenobladeX/fdb5a87dd0368c6b_000000000000f249_ps.txt index 9c661ee7..ac0a9492 100644 --- a/Source/XenobladeX/fdb5a87dd0368c6b_000000000000f249_ps.txt +++ b/Source/XenobladeX/fdb5a87dd0368c6b_000000000000f249_ps.txt @@ -12,6 +12,7 @@ $scaleFactorY = always_decimal_format($fullHeight / 720.0); // shadows scaling, ie 4096 = x4 // To do - some nice edge smoothing at higher res const float resScale = ; +const float shadowExposure = 0.75; //const float resScale = 4; uniform ivec4 uf_remappedPS[23]; layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf4386000 res 1280x720x1 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 @@ -475,5 +476,5 @@ R0i.x = floatBitsToInt((intBitsToFloat(R1i.w) * intBitsToFloat(uf_remappedPS[22] R0i.w = 0; } // export -passPixelColor0 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.x), intBitsToFloat(R0i.x), intBitsToFloat(R0i.w)); +passPixelColor0 = vec4(intBitsToFloat(R0i.x)*shadowExposure, intBitsToFloat(R0i.x), intBitsToFloat(R0i.x), intBitsToFloat(R0i.w)); }