From 693104c34a8a3dddad45f12ccfc0e58394cae425 Mon Sep 17 00:00:00 2001 From: getdls Date: Fri, 23 Nov 2018 00:40:49 +0100 Subject: [PATCH] [ZU] FoV, rules more compatible --- Modifications/ZombieU_FOVSetting/patches.txt | 3 + Modifications/ZombieU_FOVSetting/rules.txt | 38 ++++++++++ .../d2a97b2fb99452a5_0000000000000079_ps.txt | 70 +++++++++++++++++++ Source/ZombieU_Resolution/rules.txt | 50 +++++++++---- 4 files changed, 146 insertions(+), 15 deletions(-) create mode 100644 Modifications/ZombieU_FOVSetting/patches.txt create mode 100644 Modifications/ZombieU_FOVSetting/rules.txt create mode 100644 Source/ZombieU_Resolution/d2a97b2fb99452a5_0000000000000079_ps.txt diff --git a/Modifications/ZombieU_FOVSetting/patches.txt b/Modifications/ZombieU_FOVSetting/patches.txt new file mode 100644 index 00000000..720959d7 --- /dev/null +++ b/Modifications/ZombieU_FOVSetting/patches.txt @@ -0,0 +1,3 @@ +[ZombiUEUv0] +moduleMatches = 0xA4959FE1 +0x1008FA68 = .float $fov # 1.0 is default, 0.75 wider FOV \ No newline at end of file diff --git a/Modifications/ZombieU_FOVSetting/rules.txt b/Modifications/ZombieU_FOVSetting/rules.txt new file mode 100644 index 00000000..e9620ec0 --- /dev/null +++ b/Modifications/ZombieU_FOVSetting/rules.txt @@ -0,0 +1,38 @@ +[Definition] +titleIds = 000500001010DD00,000500001010EF00,0005000010112300,000500001011A700,0005000E1010DD00,0005000E10112300 +name = Field of View +path = "ZombieU/Modifications/Field of View" +description = Changes the field of view (FOV). Fixes edge framing for 21:9 cinematics and other FOV tweaks. +version = 3 + +[Preset] +name = Default FOV +$fov = 1.0 + +[Preset] +name = Match 16:9 horizontal FOV to 21:9 (1.3125) +$fov = 1.3125 + +[Preset] +name = Balance 48:9 (1.45) +$fov = 1.45 + +[Preset] +name = Slight FOV increase without breaking framing (0.925) +$fov = 0.925 + +[Preset] +name = Match 16:10 horizontal FOV to 16:9 (0.9) +$fov = 0.9 + +[Preset] +name = Pc style wide FOV (0.825) +$fov = 0.825 + +[Preset] +name = Match 21:9 horizontal FOV to 16:9 (0.7442) +$fov = 0.7442 + +[Preset] +name = Fish eye (0.5) +$fov = 0.5 diff --git a/Source/ZombieU_Resolution/d2a97b2fb99452a5_0000000000000079_ps.txt b/Source/ZombieU_Resolution/d2a97b2fb99452a5_0000000000000079_ps.txt new file mode 100644 index 00000000..5df63267 --- /dev/null +++ b/Source/ZombieU_Resolution/d2a97b2fb99452a5_0000000000000079_ps.txt @@ -0,0 +1,70 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +// shader d2a97b2fb99452a5 +//gauss blur box +layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf4385000 res 1280x720x1 dim 1 tm: 4 format 0019 compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 1 1 1 border: 0 +layout(location = 0) in vec4 passParameterSem130; +layout(location = 0) out vec4 passPixelColor0; + + +// FabriceNeyret2 CC, single shader gaussian by intermediate MIPmap level. www.shadertoy.com/view/ltScRG +const int samples = 8 * 4, //8 or 4 balances xy position +LOD = 2, // gaussian done on MIPmap at scale LOD +sLOD = 1 << LOD; // tile size = 2^LOD +const float sigma = float(samples) * .25; + +float gaussian(vec2 i) { + return exp(-.5* dot(i /= sigma, i)) / (6.28 * sigma*sigma); +} + +vec4 blur(sampler2D sp, vec2 U, vec2 scale) { + vec4 O = vec4(0.0); + int s = samples / sLOD; + + for (int i = 0; i < s*s; i++) { + vec2 d = vec2(i%s, i / s)*float(sLOD) - float(samples) / 2.; + O += gaussian(d) * textureLod(sp, U + scale * d, float(LOD)); + } + + // O / O.a; + return vec4(O.x, O.y, O.z, 0.0)*19; //16 exact, 17 ~ a touch more haze to compensate res increase +} + + +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){return mix(0.0, a*b, (a != 0.0) && (b != 0.0));} +void main() +{ + vec4 R0f = vec4(0.0); + float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f; + vec4 PV0f = vec4(0.0), PV1f = vec4(0.0); + float PS0f = 0.0, PS1f = 0.0; + vec4 tempf = vec4(0.0); + float tempResultf; + int tempResulti; + ivec4 ARi = ivec4(0); + bool predResult = true; + vec3 cubeMapSTM; + int cubeMapFaceId; + R0f = passParameterSem130; + #if ($textureFormat == 0x019) + vec2 coord = passParameterSem130.xy*textureSize(textureUnitPS0, 0); // + vec2 ps = vec2(1.0) / textureSize(textureUnitPS0, 0); + vec2 uv = coord * ps; + //color = clamp(color*Exposure, 0.0, 1.0); + R0f.xyzw = blur(textureUnitPS0, R0f.xy, ps*0.75).xyzw*0.975; + #elif ($textureFormat == 0x01a) + R0f.xyzw = (texture(textureUnitPS0, R0f.xy).xyzw); + // export + #endif + passPixelColor0 = vec4(R0f.x, R0f.y, R0f.z, R0f.w); +} diff --git a/Source/ZombieU_Resolution/rules.txt b/Source/ZombieU_Resolution/rules.txt index c886b284..b45029ef 100644 --- a/Source/ZombieU_Resolution/rules.txt +++ b/Source/ZombieU_Resolution/rules.txt @@ -12,7 +12,7 @@ $gameWidth = 1280 $gameHeight = 720 $internalRes = 1.0 $scaleShader = 1.0 - +$textureFormat = 0x01a // Performance [Preset] @@ -23,6 +23,7 @@ $gameWidth = 1280 $gameHeight = 720 $internalRes = 1.0 $scaleShader = 1.0 +$textureFormat = 0x01a [Preset] name = 640x360 @@ -32,6 +33,7 @@ $gameWidth = 1280 $gameHeight = 720 $internalRes = 1.0 $scaleShader = 1.0 +$textureFormat = 0x01a [Preset] name = 960x540 @@ -41,6 +43,7 @@ $gameWidth = 1280 $gameHeight = 720 $internalRes = 1.0 $scaleShader = 1.0 +$textureFormat = 0x01a // Common HD Resolutions @@ -52,6 +55,7 @@ $gameWidth = 1280 $gameHeight = 720 $internalRes = 1.0 $scaleShader = (1440.0/1080.0) +$textureFormat = 0x01a [Preset] name = 2560x1440 @@ -61,6 +65,7 @@ $gameWidth = 1280 $gameHeight = 720 $internalRes = 0.75 $scaleShader = (1440.0/1080.0) +$textureFormat = 0x01a [Preset] name = 3200x1800 @@ -70,6 +75,7 @@ $gameWidth = 1280 $gameHeight = 720 $internalRes = 2.0 $scaleShader = (1440.0/1800.0) +$textureFormat = 0x01a [Preset] name = 3840x2160 @@ -79,6 +85,17 @@ $gameWidth = 1280 $gameHeight = 720 $internalRes = 0.5 $scaleShader = (1440.0/1080.0) #round 1.5 shadow to 2.0 +$textureFormat = 0x01a + +[Preset] +name = 3840x2160 Experimental (Format, Res, Shaders) +$width = 3840 +$height = 2160 +$gameWidth = 1280 +$gameHeight = 720 +$internalRes = 0.5 +$scaleShader = (2160.0/1080.0) #round 1.5 shadow to 3.0 +$textureFormat = 0x019 [Preset] name = 5120x2880 @@ -88,19 +105,21 @@ $gameWidth = 1280 $gameHeight = 720 $internalRes = 0.375 $scaleShader = (1440.0/1080.0) +$textureFormat = 0x01a #Common Ultrawide Resolutions #Disabled, no patch # #[Preset] -#name = 2560x1080 ("21:9") +#name = 2560x1080 (21:9 HD) #$width = 2560 #$height = 1080 #$gameWidth = 1280 #$gameHeight = 720 #$internalRes = 1.0 -#$scaleShader = 1.0 +#$scaleShader = (1440.0/1080.0) # +## #[Preset] #name = 3440x1440 ("21:9") #$width = 3440 @@ -194,9 +213,10 @@ $scaleShader = (1440.0/1080.0) [TextureRedefine] width = 1280 height = 720 -formats = 0x019,0x01a +formats = $textureFormat # overwriteFormat = 0x01f + [TextureRedefine] width = 1280 height = 720 @@ -229,17 +249,17 @@ height = 480 overwriteWidth = ($width/$gameWidth) * 854 overwriteHeight = ($height/$gameHeight) * 480 -[TextureRedefine] -width = 640 -height = 368 -formats = 0x01a,0x019 -overwriteFormat = 0x01f - -[TextureRedefine] -width = 640 -height = 360 -formats = 0x01a,0x019 -overwriteFormat = 0x01f +#[TextureRedefine] +#width = 640 +#height = 368 +#formats = 0x019 +#overwriteFormat = 0x01f +# +#[TextureRedefine] +#width = 640 +#height = 360 +#formats = 0x019 +#overwriteFormat = 0x01f [TextureRedefine] width = 640