Dragon Quest XI
  2 / 4    
They can vary a bit. Like in the temporary register they use. Some may use r2 while others may use r4, etc. But similar effects usually have very similar code (imagine multiple shadows shaders. They should be mostly the same). Comparing shaders with ones from other fixes can be tiring, yes, and there will usually be a lot of differences if the engine is different. I mostly refer to my own fixes because I know where is everything I made. Now ontopic: how is performance at 2560x1440?
They can vary a bit. Like in the temporary register they use. Some may use r2 while others may use r4, etc. But similar effects usually have very similar code (imagine multiple shadows shaders. They should be mostly the same).

Comparing shaders with ones from other fixes can be tiring, yes, and there will usually be a lot of differences if the engine is different. I mostly refer to my own fixes because I know where is everything I made.

Now ontopic: how is performance at 2560x1440?

CPU: Intel Core i7 7700K @ 4.9GHz
Motherboard: Gigabyte Aorus GA-Z270X-Gaming 5
RAM: GSKILL Ripjaws Z 16GB 3866MHz CL18
GPU: MSI GeForce RTX 2080Ti Gaming X Trio
Monitor: Asus PG278QR
Speakers: Logitech Z506
Donations account: masterotakusuko@gmail.com

#16
Posted 09/11/2018 10:55 AM   
Alright thanks. Will keep this in mind.
Alright thanks. Will keep this in mind.

#17
Posted 09/11/2018 11:10 AM   
[quote="DHR"] That seesm not be the correct shader...try to found another shader that remove only the wrong effect, not all shadows. Also a screenshot with the issue on screen will be nice.[/quote] Thanks for your feedback, DHR. I'm adding a default shot with all issues still on screen at maximum shadow detail. (Btw: The game's options allow for 4 different shadow settings - off, 1, 2 and 3). Not sure why I've uploaded the wrong shader previously, sorry. I'll add the one we were talking about at the end of this post. Most correctly appearing character and object shadows are still present after deactivating it in hunting mode, so this PS doesn't remove shadows altogether. [quote="masterotaku"]Just in case, Gryzor_ (you probably know this): regex doesn't affect dumped shaders, so shaders inside ShaderFixes always have the preference. When you say shaders are renamed, do you mean the filenames? Because you seem to talk only about the numbers you see in the hunting HUD. The numbers there are just the order of the shaders in the current scene, and it grows bigger if you don't clear it with "numpad +". It's normal for numbers to be different all the time.[/quote] Thanks for the clarification, masterotaku. Yes, I was only talking about the order during hunting mode. I wasn't aware that it's normal for shaders to be added during gameplay, so I falsely assumed all shaders would already be loaded into 3Dmigoto and be present on startup in hunting mode. [quote="KoelerMeester"]Thanks for sharing Gryzor. I'm at 82 hours for Zelda BOTW and stopped playing the main quest because I don't wont the game to end. Coincidentally tonight I was thinking when a game that could match this one would see the light. This game does seem to match the atmosphere.[/quote] KoelerMeester, DQ XI is on par with Zelda, so go ahead and finish that one asap ;) _____________________________________________________________________ // ---- Created with 3Dmigoto v1.3.11 on Tue Sep 11 15:40:23 2018 Texture2D<float4> t1 : register(t1); Texture2D<float4> t0 : register(t0); SamplerState s1_s : register(s1); SamplerState s0_s : register(s0); cbuffer cb1 : register(b1) { float4 cb1[146]; } cbuffer cb0 : register(b0) { float4 cb0[34]; } // 3Dmigoto declarations #define cmp - Texture1D<float4> IniParams : register(t120); Texture2D<float4> StereoParams : register(t125); void main( float4 v0 : TEXCOORD0, float4 v1 : SV_POSITION0, out float4 o0 : SV_Target0) { float4 r0,r1,r2,r3,r4,r5; uint4 bitmask, uiDest; float4 fDest; r0.x = t0.SampleLevel(s0_s, v0.xy, 0).x; r0.y = r0.x * cb1[51].z + -cb1[51].w; r0.x = r0.x * cb1[51].x + cb1[51].y; r0.y = 1 / r0.y; r0.x = r0.x + r0.y; r0.yz = asint(cb0[32].xy); r0.yz = -r0.yz * cb1[116].zw + v0.xy; r1.xy = float2(0.5,0.5) * cb1[145].zw; r1.xy = floor(r1.xy); r1.zw = r0.yz * r1.xy + float2(-0.5,-0.5); r1.zw = floor(r1.zw); r1.zw = r1.zw / r1.xy; r2.xy = float2(1,1) / r1.xy; r1.zw = r2.xy * float2(0.5,0.5) + r1.zw; r3.xy = r1.zw + r2.xy; r3.xy = t1.SampleLevel(s1_s, r3.xy, 0).xy; r4.w = r3.y; r2.z = 0; r2.xyzw = r1.zwzw + r2.xzzy; r2.xy = t1.SampleLevel(s1_s, r2.xy, 0).xy; r2.zw = t1.SampleLevel(s1_s, r2.zw, 0).xy; r4.yz = r2.yw; r2.yw = t1.SampleLevel(s1_s, r1.zw, 0).xy; r0.yz = -r1.zw + r0.yz; r4.x = r2.w; r4.xyzw = abs(r4.xyzw) + -r0.xxxx; r0.x = -cb0[33].y + r0.x; r0.x = saturate(cb0[33].z * r0.x); r0.x = 1 + -r0.x; r4.xyzw = float4(9.99999975e-005,9.99999975e-005,9.99999975e-005,9.99999975e-005) + abs(r4.xyzw); r4.xyzw = float4(1,1,1,1) / r4.xyzw; r1.zw = r0.yz * r1.xy; r0.yz = -r0.zy * r1.yx + float2(1,1); r5.yz = r0.yz * r1.zw; r5.w = r1.w * r1.z; r5.x = r0.y * r0.z; r1.xyzw = r5.xyzw * r4.xyzw; r0.y = r1.y * r2.x; r0.y = r1.x * r2.y + r0.y; r0.y = r1.z * r2.z + r0.y; r0.y = r1.w * r3.x + r0.y; r0.z = dot(r1.xyzw, float4(1,1,1,1)); r0.y = r0.y / r0.z; r0.y = -1 + r0.y; r0.y = r0.x * r0.y + 1; o0.xyzw = sqrt(r0.yyyx); return; } /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // // Generated by Microsoft (R) D3D Shader Disassembler // // using 3Dmigoto v1.3.11 on Tue Sep 11 15:40:23 2018 // // // Input signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // TEXCOORD 0 xyzw 0 NONE float xy // SV_POSITION 0 xyzw 1 POS float // // // Output signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // SV_Target 0 xyzw 0 TARGET float xyzw // ps_5_0 dcl_globalFlags refactoringAllowed dcl_constantbuffer cb0[34], immediateIndexed dcl_constantbuffer cb1[146], immediateIndexed dcl_sampler s0, mode_default dcl_sampler s1, mode_default dcl_resource_texture2d (float,float,float,float) t0 dcl_resource_texture2d (float,float,float,float) t1 dcl_input_ps linear v0.xy dcl_output o0.xyzw dcl_temps 6 sample_l_indexable(texture2d)(float,float,float,float) r0.x, v0.xyxx, t0.xyzw, s0, l(0.000000) mad r0.y, r0.x, cb1[51].z, -cb1[51].w mad r0.x, r0.x, cb1[51].x, cb1[51].y div r0.y, l(1.000000, 1.000000, 1.000000, 1.000000), r0.y add r0.x, r0.y, r0.x itof r0.yz, cb0[32].xxyx mad r0.yz, -r0.yyzy, cb1[116].zzwz, v0.xxyx mul r1.xy, cb1[145].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) round_ni r1.xy, r1.xyxx mad r1.zw, r0.yyyz, r1.xxxy, l(0.000000, 0.000000, -0.500000, -0.500000) round_ni r1.zw, r1.zzzw div r1.zw, r1.zzzw, r1.xxxy div r2.xy, l(1.000000, 1.000000, 1.000000, 1.000000), r1.xyxx mad r1.zw, r2.xxxy, l(0.000000, 0.000000, 0.500000, 0.500000), r1.zzzw add r3.xy, r2.xyxx, r1.zwzz sample_l_indexable(texture2d)(float,float,float,float) r3.xy, r3.xyxx, t1.xyzw, s1, l(0.000000) mov r4.w, r3.y mov r2.z, l(0) add r2.xyzw, r2.xzzy, r1.zwzw sample_l_indexable(texture2d)(float,float,float,float) r2.xy, r2.xyxx, t1.xyzw, s1, l(0.000000) sample_l_indexable(texture2d)(float,float,float,float) r2.zw, r2.zwzz, t1.zwxy, s1, l(0.000000) mov r4.yz, r2.yywy sample_l_indexable(texture2d)(float,float,float,float) r2.yw, r1.zwzz, t1.zxwy, s1, l(0.000000) add r0.yz, r0.yyzy, -r1.zzwz mov r4.x, r2.w add r4.xyzw, -r0.xxxx, |r4.xyzw| add r0.x, r0.x, -cb0[33].y mul_sat r0.x, r0.x, cb0[33].z add r0.x, -r0.x, l(1.000000) add r4.xyzw, |r4.xyzw|, l(0.000100, 0.000100, 0.000100, 0.000100) div r4.xyzw, l(1.000000, 1.000000, 1.000000, 1.000000), r4.xyzw mul r1.zw, r1.xxxy, r0.yyyz mad r0.yz, -r0.zzyz, r1.yyxy, l(0.000000, 1.000000, 1.000000, 0.000000) mul r5.yz, r1.zzwz, r0.yyzy mul r5.w, r1.z, r1.w mul r5.x, r0.z, r0.y mul r1.xyzw, r4.xyzw, r5.xyzw mul r0.y, r2.x, r1.y mad r0.y, r1.x, r2.y, r0.y mad r0.y, r1.z, r2.z, r0.y mad r0.y, r1.w, r3.x, r0.y dp4 r0.z, r1.xyzw, l(1.000000, 1.000000, 1.000000, 1.000000) div r0.y, r0.y, r0.z add r0.y, r0.y, l(-1.000000) mad r0.y, r0.x, r0.y, l(1.000000) sqrt o0.xyzw, r0.yyyx ret // Approximately 0 instruction slots used ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
DHR said:
That seesm not be the correct shader...try to found another shader that remove only the wrong effect, not all shadows. Also a screenshot with the issue on screen will be nice.

Thanks for your feedback, DHR. I'm adding a default shot with all issues still on screen at maximum shadow detail. (Btw: The game's options allow for 4 different shadow settings - off, 1, 2 and 3).

Not sure why I've uploaded the wrong shader previously, sorry. I'll add the one we were talking about at the end of this post.
Most correctly appearing character and object shadows are still present after deactivating it in hunting mode, so this PS doesn't remove shadows altogether.

masterotaku said:Just in case, Gryzor_ (you probably know this): regex doesn't affect dumped shaders, so shaders inside ShaderFixes always have the preference.

When you say shaders are renamed, do you mean the filenames? Because you seem to talk only about the numbers you see in the hunting HUD. The numbers there are just the order of the shaders in the current scene, and it grows bigger if you don't clear it with "numpad +". It's normal for numbers to be different all the time.

Thanks for the clarification, masterotaku. Yes, I was only talking about the order during hunting mode.
I wasn't aware that it's normal for shaders to be added during gameplay, so I falsely assumed all shaders would already be loaded into 3Dmigoto and be present on startup in hunting mode.

KoelerMeester said:Thanks for sharing Gryzor. I'm at 82 hours for Zelda BOTW and stopped playing the main quest because I don't wont the game to end.
Coincidentally tonight I was thinking when a game that could match this one would see the light. This game does seem to match the atmosphere.

KoelerMeester, DQ XI is on par with Zelda, so go ahead and finish that one asap ;)

_____________________________________________________________________

// ---- Created with 3Dmigoto v1.3.11 on Tue Sep 11 15:40:23 2018
Texture2D<float4> t1 : register(t1);

Texture2D<float4> t0 : register(t0);

SamplerState s1_s : register(s1);

SamplerState s0_s : register(s0);

cbuffer cb1 : register(b1)
{
float4 cb1[146];
}

cbuffer cb0 : register(b0)
{
float4 cb0[34];
}




// 3Dmigoto declarations
#define cmp -
Texture1D<float4> IniParams : register(t120);
Texture2D<float4> StereoParams : register(t125);


void main(
float4 v0 : TEXCOORD0,
float4 v1 : SV_POSITION0,
out float4 o0 : SV_Target0)
{
float4 r0,r1,r2,r3,r4,r5;
uint4 bitmask, uiDest;
float4 fDest;

r0.x = t0.SampleLevel(s0_s, v0.xy, 0).x;
r0.y = r0.x * cb1[51].z + -cb1[51].w;
r0.x = r0.x * cb1[51].x + cb1[51].y;
r0.y = 1 / r0.y;
r0.x = r0.x + r0.y;
r0.yz = asint(cb0[32].xy);
r0.yz = -r0.yz * cb1[116].zw + v0.xy;
r1.xy = float2(0.5,0.5) * cb1[145].zw;
r1.xy = floor(r1.xy);
r1.zw = r0.yz * r1.xy + float2(-0.5,-0.5);
r1.zw = floor(r1.zw);
r1.zw = r1.zw / r1.xy;
r2.xy = float2(1,1) / r1.xy;
r1.zw = r2.xy * float2(0.5,0.5) + r1.zw;
r3.xy = r1.zw + r2.xy;
r3.xy = t1.SampleLevel(s1_s, r3.xy, 0).xy;
r4.w = r3.y;
r2.z = 0;
r2.xyzw = r1.zwzw + r2.xzzy;
r2.xy = t1.SampleLevel(s1_s, r2.xy, 0).xy;
r2.zw = t1.SampleLevel(s1_s, r2.zw, 0).xy;
r4.yz = r2.yw;
r2.yw = t1.SampleLevel(s1_s, r1.zw, 0).xy;
r0.yz = -r1.zw + r0.yz;
r4.x = r2.w;
r4.xyzw = abs(r4.xyzw) + -r0.xxxx;
r0.x = -cb0[33].y + r0.x;
r0.x = saturate(cb0[33].z * r0.x);
r0.x = 1 + -r0.x;
r4.xyzw = float4(9.99999975e-005,9.99999975e-005,9.99999975e-005,9.99999975e-005) + abs(r4.xyzw);
r4.xyzw = float4(1,1,1,1) / r4.xyzw;
r1.zw = r0.yz * r1.xy;
r0.yz = -r0.zy * r1.yx + float2(1,1);
r5.yz = r0.yz * r1.zw;
r5.w = r1.w * r1.z;
r5.x = r0.y * r0.z;
r1.xyzw = r5.xyzw * r4.xyzw;
r0.y = r1.y * r2.x;
r0.y = r1.x * r2.y + r0.y;
r0.y = r1.z * r2.z + r0.y;
r0.y = r1.w * r3.x + r0.y;
r0.z = dot(r1.xyzw, float4(1,1,1,1));
r0.y = r0.y / r0.z;
r0.y = -1 + r0.y;
r0.y = r0.x * r0.y + 1;
o0.xyzw = sqrt(r0.yyyx);
return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
// using 3Dmigoto v1.3.11 on Tue Sep 11 15:40:23 2018
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// TEXCOORD 0 xyzw 0 NONE float xy
// SV_POSITION 0 xyzw 1 POS float
//
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target 0 xyzw 0 TARGET float xyzw
//
ps_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[34], immediateIndexed
dcl_constantbuffer cb1[146], immediateIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_resource_texture2d (float,float,float,float) t1
dcl_input_ps linear v0.xy
dcl_output o0.xyzw
dcl_temps 6
sample_l_indexable(texture2d)(float,float,float,float) r0.x, v0.xyxx, t0.xyzw, s0, l(0.000000)
mad r0.y, r0.x, cb1[51].z, -cb1[51].w
mad r0.x, r0.x, cb1[51].x, cb1[51].y
div r0.y, l(1.000000, 1.000000, 1.000000, 1.000000), r0.y
add r0.x, r0.y, r0.x
itof r0.yz, cb0[32].xxyx
mad r0.yz, -r0.yyzy, cb1[116].zzwz, v0.xxyx
mul r1.xy, cb1[145].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000)
round_ni r1.xy, r1.xyxx
mad r1.zw, r0.yyyz, r1.xxxy, l(0.000000, 0.000000, -0.500000, -0.500000)
round_ni r1.zw, r1.zzzw
div r1.zw, r1.zzzw, r1.xxxy
div r2.xy, l(1.000000, 1.000000, 1.000000, 1.000000), r1.xyxx
mad r1.zw, r2.xxxy, l(0.000000, 0.000000, 0.500000, 0.500000), r1.zzzw
add r3.xy, r2.xyxx, r1.zwzz
sample_l_indexable(texture2d)(float,float,float,float) r3.xy, r3.xyxx, t1.xyzw, s1, l(0.000000)
mov r4.w, r3.y
mov r2.z, l(0)
add r2.xyzw, r2.xzzy, r1.zwzw
sample_l_indexable(texture2d)(float,float,float,float) r2.xy, r2.xyxx, t1.xyzw, s1, l(0.000000)
sample_l_indexable(texture2d)(float,float,float,float) r2.zw, r2.zwzz, t1.zwxy, s1, l(0.000000)
mov r4.yz, r2.yywy
sample_l_indexable(texture2d)(float,float,float,float) r2.yw, r1.zwzz, t1.zxwy, s1, l(0.000000)
add r0.yz, r0.yyzy, -r1.zzwz
mov r4.x, r2.w
add r4.xyzw, -r0.xxxx, |r4.xyzw|
add r0.x, r0.x, -cb0[33].y
mul_sat r0.x, r0.x, cb0[33].z
add r0.x, -r0.x, l(1.000000)
add r4.xyzw, |r4.xyzw|, l(0.000100, 0.000100, 0.000100, 0.000100)
div r4.xyzw, l(1.000000, 1.000000, 1.000000, 1.000000), r4.xyzw
mul r1.zw, r1.xxxy, r0.yyyz
mad r0.yz, -r0.zzyz, r1.yyxy, l(0.000000, 1.000000, 1.000000, 0.000000)
mul r5.yz, r1.zzwz, r0.yyzy
mul r5.w, r1.z, r1.w
mul r5.x, r0.z, r0.y
mul r1.xyzw, r4.xyzw, r5.xyzw
mul r0.y, r2.x, r1.y
mad r0.y, r1.x, r2.y, r0.y
mad r0.y, r1.z, r2.z, r0.y
mad r0.y, r1.w, r3.x, r0.y
dp4 r0.z, r1.xyzw, l(1.000000, 1.000000, 1.000000, 1.000000)
div r0.y, r0.y, r0.z
add r0.y, r0.y, l(-1.000000)
mad r0.y, r0.x, r0.y, l(1.000000)
sqrt o0.xyzw, r0.yyyx
ret
// Approximately 0 instruction slots used

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
Attachments

DQXI.jps

#18
Posted 09/11/2018 02:21 PM   
[quote="Gryzor_"]DQ XI is on par with Zelda, so go ahead and finish that one asap ;)[/quote] Steak sauce! All these exciting new games and tech happening at once might give me a heart attack xD
Gryzor_ said:DQ XI is on par with Zelda, so go ahead and finish that one asap ;)
Steak sauce! All these exciting new games and tech happening at once might give me a heart attack xD

#19
Posted 09/11/2018 03:41 PM   
@Gryzor_ I see the issue now....Try this: 1) Cycle VS with NUMPAD 4 or 5 2) When you see in the 3Dmigoto overlay "....ShaderRegex_VS_Reflections" mark the VS with NUMPAD 6 3) Press F10 That VS fix reflections sometimes depending on games cause some issues with shadows, skip them from the regex fix the issue......some games need that fix. Hope this fix that issue
@Gryzor_
I see the issue now....Try this:
1) Cycle VS with NUMPAD 4 or 5
2) When you see in the 3Dmigoto overlay "....ShaderRegex_VS_Reflections" mark the VS with NUMPAD 6
3) Press F10

That VS fix reflections sometimes depending on games cause some issues with shadows, skip them from the regex fix the issue......some games need that fix.

Hope this fix that issue

MY WEB

Helix Mod - Making 3D Better

My 3D Screenshot Gallery

Like my fixes? you can donate to Paypal: dhr.donation@gmail.com

#20
Posted 09/11/2018 10:18 PM   
[quote="DHR"]@Gryzor_ I see the issue now....Try this: 1) Cycle VS with NUMPAD 4 or 5 2) When you see in the 3Dmigoto overlay "....ShaderRegex_VS_Reflections" mark the VS with NUMPAD 6 3) Press F10 That VS fix reflections sometimes depending on games cause some issues with shadows, skip them from the regex fix the issue......some games need that fix. Hope this fix that issue[/quote] Thanks for the hint, DHR. I've skipped that vertex shader from the regex, but then it removed all lighting and shadows from the game, so that was overkill :P I get a better result if I just turn off shadows in the options menu, since that won't turn off lighting and bloom.
DHR said:@Gryzor_
I see the issue now....Try this:
1) Cycle VS with NUMPAD 4 or 5
2) When you see in the 3Dmigoto overlay "....ShaderRegex_VS_Reflections" mark the VS with NUMPAD 6
3) Press F10

That VS fix reflections sometimes depending on games cause some issues with shadows, skip them from the regex fix the issue......some games need that fix.

Hope this fix that issue

Thanks for the hint, DHR. I've skipped that vertex shader from the regex, but then it removed all lighting and shadows from the game, so that was overkill :P
I get a better result if I just turn off shadows in the options menu, since that won't turn off lighting and bloom.

#21
Posted 09/14/2018 03:10 PM   
@Gryzor_ You need to mark the VS (NUMPAD 6), so the shader is dumped in the Shaderfixes folder, then press F10. If you only skip in the screen, all shadows and lighting will be removed.
@Gryzor_
You need to mark the VS (NUMPAD 6), so the shader is dumped in the Shaderfixes folder, then press F10.
If you only skip in the screen, all shadows and lighting will be removed.

MY WEB

Helix Mod - Making 3D Better

My 3D Screenshot Gallery

Like my fixes? you can donate to Paypal: dhr.donation@gmail.com

#22
Posted 09/14/2018 08:57 PM   
@Gryzor_ Can you uninstall the fix and download the UE4 fix again here: [url="http://dstats.net/download/http://s3.amazonaws.com/dhr/Universal_Fixes/Universal.Fixes-3Dmigoto.1.3.11.x64-3DFix.UE4.Engine.zip"]UE4 Universal Fix[/url] i update and extendend the coverage for shadows, lights and reflections....so this may fix those shadows issue you mentioned.
@Gryzor_

Can you uninstall the fix and download the UE4 fix again here: UE4 Universal Fix

i update and extendend the coverage for shadows, lights and reflections....so this may fix those shadows issue you mentioned.

MY WEB

Helix Mod - Making 3D Better

My 3D Screenshot Gallery

Like my fixes? you can donate to Paypal: dhr.donation@gmail.com

#23
Posted 09/21/2018 12:01 PM   
Thanks for your patience and the awesome update, DHR. With the latest version of the universal fix, only the cloud shadows (screenshot 1) and a minor lighting shader (screenshot 2) are still off. The rest looks amazing and makes the game a joy to behold.
Thanks for your patience and the awesome update, DHR.
With the latest version of the universal fix, only the cloud shadows (screenshot 1) and a minor lighting shader (screenshot 2) are still off. The rest looks amazing and makes the game a joy to behold.

#24
Posted 09/23/2018 12:11 PM   
Great that improve something! For those effects you need to hunt a PS....paste here.
Great that improve something!
For those effects you need to hunt a PS....paste here.

MY WEB

Helix Mod - Making 3D Better

My 3D Screenshot Gallery

Like my fixes? you can donate to Paypal: dhr.donation@gmail.com

#25
Posted 09/23/2018 02:07 PM   
Grysor pics [img]https://forums.geforce.com/cmd/default/download-comment-attachment/75997/[/img] [img]https://forums.geforce.com/cmd/default/download-comment-attachment/75998/[/img]
Grysor pics

Image

Image

http://photos.3dvisionlive.com/chtiblue/album/530b52d4cb85770d6e000049/3Dvision with 55" LG OLED EG920 interlieved 3D (3840x2160) overide mode, GTX 2080 Ti XC Ultra EVGA, core i5 @4.3GHz, 16Gb@2130, windows 7&10 64bit, Dolby Atmos 5.1.4 Marantz 6010 AVR

#26
Posted 09/23/2018 04:54 PM   
Hi DHR, I've found the PS responsible for all those wrong cloud shadows. It doesn't seem to affect anything else than cloud shadows, as far as I could tell by looking around at the environment: // ---- Created with 3Dmigoto v1.3.11 on Sun Sep 23 23:16:50 2018 Texture2D<float4> t1 : register(t1); Texture2D<float4> t0 : register(t0); SamplerState s1_s : register(s1); SamplerState s0_s : register(s0); cbuffer cb2 : register(b2) { float4 cb2[14]; } cbuffer cb1 : register(b1) { float4 cb1[125]; } cbuffer cb0 : register(b0) { float4 cb0[12]; } // 3Dmigoto declarations #define cmp - Texture1D<float4> IniParams : register(t120); Texture2D<float4> StereoParams : register(t125); void main( float4 v0 : SV_Position0, out float4 o0 : SV_Target0) { float4 r0,r1,r2,r3; uint4 bitmask, uiDest; float4 fDest; r0.xyzw = cb0[8].xyzw * v0.yyyy; r0.xyzw = v0.xxxx * cb0[7].xyzw + r0.xyzw; r1.xy = cb1[116].zw * v0.xy; r1.x = t1.SampleLevel(s1_s, r1.xy, 0).x; r0.xyzw = r1.xxxx * cb0[9].xyzw + r0.xyzw; r0.xyzw = cb0[10].xyzw + r0.xyzw; r0.xyz = r0.yzx / r0.www; r0.w = dot(r0.xyz, r0.xyz); r0.w = rsqrt(r0.w); r1.yzw = r0.xyz * r0.www; r0.w = max(abs(r1.y), abs(r1.z)); r0.w = 1 / r0.w; r2.x = min(abs(r1.y), abs(r1.z)); r0.w = r2.x * r0.w; r2.x = r0.w * r0.w; r2.y = r2.x * 0.0208350997 + -0.0851330012; r2.y = r2.x * r2.y + 0.180141002; r2.y = r2.x * r2.y + -0.330299497; r2.x = r2.x * r2.y + 0.999866009; r2.y = r2.x * r0.w; r2.y = r2.y * -2 + 1.57079637; r2.z = cmp(abs(r1.z) < abs(r1.y)); r2.y = r2.z ? r2.y : 0; r0.w = r0.w * r2.x + r2.y; r2.xy = cmp(r1.zw < -r1.zw); r2.x = r2.x ? -3.141593 : 0; r0.w = r2.x + r0.w; r2.x = min(r1.y, r1.z); r2.x = cmp(r2.x < -r2.x); r1.y = max(r1.y, r1.z); r1.y = cmp(r1.y >= -r1.y); r1.y = r1.y ? r2.x : 0; r0.w = r1.y ? -r0.w : r0.w; r0.w = 3.14159274 + r0.w; r3.x = 0.159154937 * r0.w; r0.w = abs(r1.w) * -0.0187292993 + 0.0742610022; r0.w = r0.w * abs(r1.w) + -0.212114394; r0.w = r0.w * abs(r1.w) + 1.57072878; r1.y = 1 + -abs(r1.w); r1.y = sqrt(r1.y); r1.z = r1.y * r0.w; r1.z = r1.z * -2 + 3.14159274; r1.z = r2.y ? r1.z : 0; r0.w = r0.w * r1.y + r1.z; r3.y = 0.318309873 * r0.w; r1.yz = cmp(float2(0,0) < cb0[2].zw); r1.zw = r1.zz ? r3.xy : r0.yx; r0.z = cb0[2].x * r0.z; r0.xy = r0.yx / r0.zz; r0.xy = r0.xy * float2(0.5,0.5) + float2(0.5,0.5); r0.xy = r1.yy ? r0.xy : r1.zw; r0.zw = float2(1,1) + -r0.xy; r0.xy = r0.xy * r0.zw; r0.x = saturate(dot(r0.xx, r0.yy)); r2.xyzw = cb1[37].xyzw * v0.yyyy; r2.xyzw = v0.xxxx * cb1[36].xyzw + r2.xyzw; r1.xyzw = r1.xxxx * cb1[38].xyzw + r2.xyzw; r1.xyzw = cb1[39].xyzw + r1.xyzw; r0.yzw = r1.xyz / r1.www; r0.yzw = -cb1[56].xyz + r0.yzw; r1.xyz = cb2[4].xyz + r0.yzw; r1.xyz = -r1.xyz + r0.xxx; r0.x = dot(r1.xyz, r1.xyz); r0.x = sqrt(r0.x); r0.x = -r0.x * cb2[13].x + 1; r0.x = saturate(1.25 * r0.x); r1.xy = r0.yz / cb2[9].zz; r0.yzw = cb1[53].xyz + -r0.yzw; r0.y = dot(r0.yzw, r0.yzw); r0.y = sqrt(r0.y); r0.y = cb0[11].x + -r0.y; r0.zw = float2(-0.5,-0.5) + r1.xy; r1.x = dot(cb2[1].xy, r0.zw); r1.y = dot(cb2[2].xy, r0.zw); r0.zw = float2(0.5,0.5) + r1.xy; r1.xy = cb2[9].ww * r0.zw; r1.z = cb2[8].x * cb1[124].z; r2.x = r1.z * 0.100000001 + r1.x; r1.xzw = cb2[10].xyw * cb1[124].zzz; r2.y = r1.x * 0.100000001 + r1.y; r1.xy = float2(0.100000001,0.100000001) * r1.zw; r1.xy = r0.zw * cb2[10].zz + r1.xy; r0.zw = cb2[11].yy * r0.zw; r1.x = t0.Sample(s0_s, r1.xy).x; r1.y = t0.Sample(s0_s, r2.xy).y; r1.x = r1.y * r1.x; r1.yz = cb2[11].xz * cb1[124].zz; r0.zw = r1.yz * float2(0.100000001,0.100000001) + r0.zw; r0.z = t0.Sample(s0_s, r0.zw).z; r0.z = r1.x * r0.z + -1; r0.z = cb2[11].w * r0.z; r0.x = r0.x * r0.z + 1; r0.xzw = cb2[5].xyz + r0.xxx; r0.xzw = max(float3(0,0,0), r0.xzw); r0.x = dot(r0.xzw, float3(0.333299994,0.333299994,0.333299994)); r0.x = -cb0[11].y + r0.x; r0.z = 0.200000003 * cb0[11].x; r0.y = saturate(r0.y / r0.z); r0.x = r0.y * r0.x; r0.x = cb0[2].y * r0.x + cb0[11].y; r0.z = sqrt(r0.x); r0.xyw = float3(1,1,1); r1.xyzw = r0.zzzz + -r0.wwzw; o0.xyzw = cb0[11].zzzz * r1.xyzw + r0.xyzw; return; } /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // // Generated by Microsoft (R) D3D Shader Disassembler // // using 3Dmigoto v1.3.11 on Sun Sep 23 23:16:50 2018 // // // Input signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // SV_Position 0 xyzw 0 POS float xy // // // Output signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // SV_Target 0 xyzw 0 TARGET float xyzw // ps_5_0 dcl_globalFlags refactoringAllowed dcl_constantbuffer cb0[12], immediateIndexed dcl_constantbuffer cb1[125], immediateIndexed dcl_constantbuffer cb2[14], immediateIndexed dcl_sampler s0, mode_default dcl_sampler s1, mode_default dcl_resource_texture2d (float,float,float,float) t0 dcl_resource_texture2d (float,float,float,float) t1 dcl_input_ps_siv linear noperspective v0.xy, position dcl_output o0.xyzw dcl_temps 4 mul r0.xyzw, v0.yyyy, cb0[8].xyzw mad r0.xyzw, v0.xxxx, cb0[7].xyzw, r0.xyzw mul r1.xy, v0.xyxx, cb1[116].zwzz sample_l_indexable(texture2d)(float,float,float,float) r1.x, r1.xyxx, t1.xyzw, s1, l(0.000000) mad r0.xyzw, r1.xxxx, cb0[9].xyzw, r0.xyzw add r0.xyzw, r0.xyzw, cb0[10].xyzw div r0.xyz, r0.yzxy, r0.wwww dp3 r0.w, r0.xyzx, r0.xyzx rsq r0.w, r0.w mul r1.yzw, r0.wwww, r0.xxyz max r0.w, |r1.z|, |r1.y| div r0.w, l(1.000000, 1.000000, 1.000000, 1.000000), r0.w min r2.x, |r1.z|, |r1.y| mul r0.w, r0.w, r2.x mul r2.x, r0.w, r0.w mad r2.y, r2.x, l(0.0208350997), l(-0.085133) mad r2.y, r2.x, r2.y, l(0.180141) mad r2.y, r2.x, r2.y, l(-0.330299497) mad r2.x, r2.x, r2.y, l(0.999866) mul r2.y, r0.w, r2.x mad r2.y, r2.y, l(-2.000000), l(1.57079637) lt r2.z, |r1.z|, |r1.y| and r2.y, r2.z, r2.y mad r0.w, r0.w, r2.x, r2.y lt r2.xy, r1.zwzz, -r1.zwzz and r2.x, r2.x, l(0xc0490fdb) add r0.w, r0.w, r2.x min r2.x, r1.z, r1.y lt r2.x, r2.x, -r2.x max r1.y, r1.z, r1.y ge r1.y, r1.y, -r1.y and r1.y, r1.y, r2.x movc r0.w, r1.y, -r0.w, r0.w add r0.w, r0.w, l(3.14159274) mul r3.x, r0.w, l(0.159154937) mad r0.w, |r1.w|, l(-0.0187292993), l(0.074261) mad r0.w, r0.w, |r1.w|, l(-0.212114394) mad r0.w, r0.w, |r1.w|, l(1.57072878) add r1.y, -|r1.w|, l(1.000000) sqrt r1.y, r1.y mul r1.z, r0.w, r1.y mad r1.z, r1.z, l(-2.000000), l(3.14159274) and r1.z, r2.y, r1.z mad r0.w, r0.w, r1.y, r1.z mul r3.y, r0.w, l(0.318309873) lt r1.yz, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[2].zzwz movc r1.zw, r1.zzzz, r3.xxxy, r0.yyyx mul r0.z, r0.z, cb0[2].x div r0.xy, r0.yxyy, r0.zzzz mad r0.xy, r0.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) movc r0.xy, r1.yyyy, r0.xyxx, r1.zwzz add r0.zw, -r0.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000) mul r0.xy, r0.zwzz, r0.xyxx dp2_sat r0.x, r0.xxxx, r0.yyyy mul r2.xyzw, v0.yyyy, cb1[37].xyzw mad r2.xyzw, v0.xxxx, cb1[36].xyzw, r2.xyzw mad r1.xyzw, r1.xxxx, cb1[38].xyzw, r2.xyzw add r1.xyzw, r1.xyzw, cb1[39].xyzw div r0.yzw, r1.xxyz, r1.wwww add r0.yzw, r0.yyzw, -cb1[56].xxyz add r1.xyz, r0.yzwy, cb2[4].xyzx add r1.xyz, r0.xxxx, -r1.xyzx dp3 r0.x, r1.xyzx, r1.xyzx sqrt r0.x, r0.x mad r0.x, -r0.x, cb2[13].x, l(1.000000) mul_sat r0.x, r0.x, l(1.250000) div r1.xy, r0.yzyy, cb2[9].zzzz add r0.yzw, -r0.yyzw, cb1[53].xxyz dp3 r0.y, r0.yzwy, r0.yzwy sqrt r0.y, r0.y add r0.y, -r0.y, cb0[11].x add r0.zw, r1.xxxy, l(0.000000, 0.000000, -0.500000, -0.500000) dp2 r1.x, cb2[1].xyxx, r0.zwzz dp2 r1.y, cb2[2].xyxx, r0.zwzz add r0.zw, r1.xxxy, l(0.000000, 0.000000, 0.500000, 0.500000) mul r1.xy, r0.zwzz, cb2[9].wwww mul r1.z, cb1[124].z, cb2[8].x mad r2.x, r1.z, l(0.100000), r1.x mul r1.xzw, cb1[124].zzzz, cb2[10].xxyw mad r2.y, r1.x, l(0.100000), r1.y mul r1.xy, r1.zwzz, l(0.100000, 0.100000, 0.000000, 0.000000) mad r1.xy, r0.zwzz, cb2[10].zzzz, r1.xyxx mul r0.zw, r0.zzzw, cb2[11].yyyy sample_indexable(texture2d)(float,float,float,float) r1.x, r1.xyxx, t0.xyzw, s0 sample_indexable(texture2d)(float,float,float,float) r1.y, r2.xyxx, t0.xyzw, s0 mul r1.x, r1.x, r1.y mul r1.yz, cb1[124].zzzz, cb2[11].xxzx mad r0.zw, r1.yyyz, l(0.000000, 0.000000, 0.100000, 0.100000), r0.zzzw sample_indexable(texture2d)(float,float,float,float) r0.z, r0.zwzz, t0.xyzw, s0 mad r0.z, r1.x, r0.z, l(-1.000000) mul r0.z, r0.z, cb2[11].w mad r0.x, r0.x, r0.z, l(1.000000) add r0.xzw, r0.xxxx, cb2[5].xxyz max r0.xzw, r0.xxzw, l(0.000000, 0.000000, 0.000000, 0.000000) dp3 r0.x, r0.xzwx, l(0.333300, 0.333300, 0.333300, 0.000000) add r0.x, r0.x, -cb0[11].y mul r0.z, cb0[11].x, l(0.200000) div_sat r0.y, r0.y, r0.z mul r0.x, r0.x, r0.y mad r0.x, cb0[2].y, r0.x, cb0[11].y sqrt r0.z, r0.x mov r0.xyw, l(1.000000,1.000000,0,1.000000) add r1.xyzw, -r0.wwzw, r0.zzzz mad o0.xyzw, cb0[11].zzzz, r1.xyzw, r0.xyzw ret // Approximately 0 instruction slots used ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ There's another PS that causes reflections on the church floor to look incorrect: ------------------------------> // ---- Created with 3Dmigoto v1.3.11 on Sun Sep 23 23:29:14 2018 Texture2D<float4> t6 : register(t6); TextureCube<float4> t5 : register(t5); Texture2D<float4> t4 : register(t4); Texture2D<float4> t3 : register(t3); Texture2D<float4> t2 : register(t2); Texture2D<float4> t1 : register(t1); Texture2D<float4> t0 : register(t0); SamplerState s6_s : register(s6); SamplerState s5_s : register(s5); SamplerState s4_s : register(s4); SamplerState s3_s : register(s3); SamplerState s2_s : register(s2); SamplerState s1_s : register(s1); SamplerState s0_s : register(s0); cbuffer cb1 : register(b1) { float4 cb1[134]; } cbuffer cb0 : register(b0) { float4 cb0[20]; } // 3Dmigoto declarations #define cmp - Texture1D<float4> IniParams : register(t120); Texture2D<float4> StereoParams : register(t125); void main( linear noperspective float4 v0 : TEXCOORD0, float4 v1 : SV_POSITION0, out float4 o0 : SV_Target0) { float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13; uint4 bitmask, uiDest; float4 fDest; r0.xyz = t0.SampleLevel(s0_s, v0.xy, 0).xyz; r1.xyzw = t1.SampleLevel(s1_s, v0.xy, 0).xyzw; r2.xyzw = t2.SampleLevel(s2_s, v0.xy, 0).xyzw; r3.xyz = t3.SampleLevel(s3_s, v0.xy, 0).xyz; r4.xy = cb1[116].xy * v0.xy; r4.xy = (uint2)r4.xy; r0.w = (uint)cb1[133].x; r3.w = (int)r4.y + (int)r4.x; r0.w = (int)r0.w + (int)r3.w; r0.w = (int)r0.w & 1; r0.xyz = r0.xyz * float3(2,2,2) + float3(-1,-1,-1); r3.w = dot(r0.xyz, r0.xyz); r3.w = rsqrt(r3.w); r4.xyz = r3.www * r0.xyz; r1.w = 255 * r1.w; r1.w = round(r1.w); r1.w = (uint)r1.w; r5.xy = (int2)r1.ww & int2(15,16); r3.xyz = r5.yyy ? float3(0,0,0) : r3.xyz; r6.xyzw = cmp((int4)r5.xxxx == int4(5,4,7,2)); r7.xy = r0.ww ? float2(1,0) : float2(0,1); r7.z = r7.y * r1.y; r8.xyz = r2.xyz; r8.w = r1.y; r7.xyzw = r6.xxxx ? r7.xxxz : r8.xyzw; r2.xyz = -r7.xyz * r1.xxx + r7.xyz; r0.w = 0.0799999982 * r7.w; r5.yzw = -r7.www * float3(0.0799999982,0.0799999982,0.0799999982) + r7.xyz; r5.yzw = r1.xxx * r5.yzw + r0.www; r2.xyz = r2.xyz * cb1[118].www + cb1[118].xyz; r5.yzw = r5.yzw * cb1[119].www + cb1[119].xyz; r0.w = t4.SampleLevel(s4_s, v0.xy, 0).x; r8.xyz = cb1[41].xyz * v0.www; r8.xyz = v0.zzz * cb1[40].xyz + r8.xyz; r8.xyz = cb1[42].xyz + r8.xyz; r1.y = dot(r8.xyz, r8.xyz); r1.y = rsqrt(r1.y); r8.xyz = r8.xyz * r1.yyy; r1.y = dot(-r8.xyz, r4.xyz); r1.w = r1.y + r1.y; r9.xyz = r1.www * r4.xyz + r8.xyz; r10.x = saturate(r1.y); r1.w = -r1.z * r1.z + 1; r4.w = sqrt(r1.w); r4.w = r1.z * r1.z + r4.w; r1.w = r4.w * r1.w; r0.xyz = -r0.xyz * r3.www + r9.xyz; r0.xyz = r1.www * r0.xyz + r4.xyz; r11.xyz = t5.SampleLevel(s5_s, r4.xyz, cb0[19].z).xyz; r2.xyz = r11.xyz * r2.xyz; if (r6.y != 0) { r1.w = log2(r1.z); r1.w = -r1.w * 1.14999998 + 3; r3.w = -1 + cb0[19].w; r1.w = r3.w + -r1.w; r12.xyz = t5.SampleLevel(s5_s, r0.xyz, r1.w).xyz; r10.y = r1.z; r6.xy = t6.SampleLevel(s6_s, r10.xy, 0).xy; r1.w = 1 + -r3.x; r1.w = r6.y * r1.w; r13.xyz = r5.yzw * r6.xxx + r1.www; r12.xyz = r13.xyz * r12.xyz; r1.w = log2(r3.y); r1.w = -r1.w * 1.14999998 + 3; r1.w = r3.w + -r1.w; r9.xyz = t5.SampleLevel(s5_s, r9.xyz, r1.w).xyz; r1.w = 1 + -r10.x; r3.w = r1.w * r1.w; r3.w = r3.w * r3.w; r4.w = r3.w * r1.w; r1.w = -r1.w * r3.w + 1; r1.w = r1.w * 0.0399999991 + r4.w; r3.w = r1.w * r3.x; r1.w = -r1.w * r3.x + 1; r2.xyz = r2.xyz * r1.www; r9.xyz = r9.xyz * r3.www; r9.xyz = r12.xyz * r1.www + r9.xyz; } else { r1.w = log2(r1.z); r1.w = -r1.w * 1.14999998 + 3; r3.w = -1 + cb0[19].w; r1.w = r3.w + -r1.w; r0.xyz = t5.SampleLevel(s5_s, r0.xyz, r1.w).xyz; r10.z = r1.z; r6.xy = t6.SampleLevel(s6_s, r10.xz, 0).xy; r1.w = saturate(50 * r5.z); r1.w = r1.w * r6.y; r5.yzw = r5.yzw * r6.xxx + r1.www; r9.xyz = r5.yzw * r0.xyz; } if (r6.z != 0) { r0.xyz = -r4.xyz * r1.yyy + -r8.xyz; r1.w = dot(r0.xyz, r0.xyz); r3.w = rsqrt(r1.w); r5.yzw = r3.www * r0.xyz; r6.xyz = t5.SampleLevel(s5_s, r5.yzw, cb0[19].z).xyz; r1.z = max(0.00392156886, r1.z); r1.z = min(1, r1.z); r3.w = dot(-r8.xyz, r5.yzw); r4.w = dot(r4.xyz, r5.yzw); r8.w = abs(r1.y) * -0.156582996 + 1.57079637; r9.w = 1 + -abs(r1.y); r9.w = sqrt(r9.w); r10.x = r9.w * r8.w; r10.y = cmp(r1.y >= 0); r8.w = -r8.w * r9.w + 3.14159274; r8.w = r10.y ? r10.x : r8.w; r8.w = 1.57079637 + -r8.w; r9.w = abs(r4.w) * -0.156582996 + 1.57079637; r10.x = 1 + -abs(r4.w); r10.x = sqrt(r10.x); r10.y = r10.x * r9.w; r10.z = cmp(r4.w >= 0); r9.w = -r9.w * r10.x + 3.14159274; r9.w = r10.z ? r10.y : r9.w; r9.w = 1.57079637 + -r9.w; r8.w = -r9.w + r8.w; r8.w = 0.5 * abs(r8.w); r8.w = cos(r8.w); r4.xyz = -r4.www * r4.xyz + r5.yzw; r0.x = dot(r4.xyz, r0.xyz); r0.y = dot(r4.xyz, r4.xyz); r0.y = r0.y * r1.w + 9.99999975e-005; r0.y = rsqrt(r0.y); r0.z = r0.x * r0.y; r0.z = saturate(r0.z * 0.5 + 0.5); r0.z = sqrt(r0.z); r1.w = r1.z * r1.z; r1.z = r1.z * r1.z + 0.200000003; r1.w = r1.w * 2 + 0.200000003; r4.x = -0.139543116 * r0.z; r4.y = -r1.y * r1.y + 1; r4.y = sqrt(r4.y); r4.z = 0.00978400372 * r1.y; r4.x = r4.x * r4.y + r4.z; r1.z = r1.z * r0.z; r4.yz = float2(1.41421354,3.54490757) * r1.zz; r1.y = r4.w + r1.y; r1.z = r1.y + -r4.x; r1.z = r1.z * r1.z; r1.z = -0.5 * r1.z; r4.x = r4.y * r4.y; r1.z = r1.z / r4.x; r1.z = 1.44269502 * r1.z; r1.z = exp2(r1.z); r1.z = r1.z / r4.z; r0.z = r1.z * r0.z; r1.z = saturate(r3.w * 0.5 + 0.5); r1.z = sqrt(r1.z); r1.z = 1 + -r1.z; r4.x = r1.z * r1.z; r4.x = r4.x * r4.x; r1.z = r4.x * r1.z; r1.z = r1.z * 0.953479409 + 0.0465205684; r0.z = r1.z * r0.z; r0.z = r0.z * r7.w; r3.w = saturate(-r3.w); r1.z = 1 + -r3.w; r1.y = -0.140000001 + r1.y; r1.y = r1.y * r1.y; r1.y = -0.5 * r1.y; r3.w = r1.w * r1.w; r1.y = r1.y / r3.w; r1.yw = float2(1.44269502,2.50662827) * r1.yw; r1.y = exp2(r1.y); r1.y = r1.y / r1.w; r1.w = -r8.w * 0.5 + 1; r3.w = r1.w * r1.w; r3.w = r3.w * r3.w; r1.w = r3.w * r1.w; r1.w = r1.w * 0.953479409 + 0.0465205684; r3.w = 1 + -r1.w; r3.w = r3.w * r3.w; r1.w = r3.w * r1.w; r3.w = 0.800000012 / r8.w; r4.xyz = log2(r7.xyz); r4.xyz = r4.xyz * r3.www; r4.xyz = exp2(r4.xyz); r0.x = r0.x * r0.y + -1; r0.xz = float2(7.50201416,0.5) * r0.xz; r0.x = exp2(r0.x); r0.x = r1.y * r0.x; r0.x = r1.w * r0.x; r0.x = 0.827605724 * r0.x; r4.xyz = r0.xxx * r4.xyz; r0.xyz = r0.zzz * r1.zzz + r4.xyz; r1.y = dot(r5.yzw, r5.yzw); r1.y = 1 + r1.y; r1.y = 0.25 * r1.y; r1.y = min(1, r1.y); r1.x = r1.x * r1.y; r1.x = 0.318309873 * r1.x; r1.yzw = sqrt(r7.xyz); r0.xyz = r1.yzw * r1.xxx + r0.xyz; r0.xyz = min(float3(0,0,0), -r0.xyz); r0.xyz = r6.xyz * -r0.xyz; r9.xyz = float3(3.14159274,3.14159274,3.14159274) * r0.xyz; r2.xyz = float3(0,0,0); } r0.x = r2.w * r0.w; r0.y = cmp((int)r5.x == 3); r0.y = (int)r0.y | (int)r6.w; if (r0.y != 0) { r0.yzw = r3.xyz * r3.xyz; r1.xyz = r11.xyz * r0.yzw; r2.xyz = r1.xyz * float3(0.5,0.5,0.5) + r2.xyz; r1.x = -2.5 + cb0[19].z; r1.xyz = t5.SampleLevel(s5_s, r8.xyz, r1.x).xyz; r0.yzw = r1.xyz * r0.yzw; r1.x = 0.5 * r0.x; r9.xyz = r0.yzw * r1.xxx + r9.xyz; } r0.yzw = r9.xyz + r2.xyz; r0.yzw = cb0[18].xyz * r0.yzw; o0.xyz = r0.yzw * r0.xxx; o0.w = 0; return; } /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // // Generated by Microsoft (R) D3D Shader Disassembler // // using 3Dmigoto v1.3.11 on Sun Sep 23 23:29:14 2018 // // // Input signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // TEXCOORD 0 xyzw 0 NONE float xyzw // SV_POSITION 0 xyzw 1 POS float // // // Output signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // SV_Target 0 xyzw 0 TARGET float xyzw // ps_5_0 dcl_globalFlags refactoringAllowed dcl_constantbuffer cb0[20], immediateIndexed dcl_constantbuffer cb1[134], immediateIndexed dcl_sampler s0, mode_default dcl_sampler s1, mode_default dcl_sampler s2, mode_default dcl_sampler s3, mode_default dcl_sampler s4, mode_default dcl_sampler s5, mode_default dcl_sampler s6, mode_default dcl_resource_texture2d (float,float,float,float) t0 dcl_resource_texture2d (float,float,float,float) t1 dcl_resource_texture2d (float,float,float,float) t2 dcl_resource_texture2d (float,float,float,float) t3 dcl_resource_texture2d (float,float,float,float) t4 dcl_resource_texturecube (float,float,float,float) t5 dcl_resource_texture2d (float,float,float,float) t6 dcl_input_ps linear noperspective v0.xyzw dcl_output o0.xyzw dcl_temps 14 sample_l_indexable(texture2d)(float,float,float,float) r0.xyz, v0.xyxx, t0.xyzw, s0, l(0.000000) sample_l_indexable(texture2d)(float,float,float,float) r1.xyzw, v0.xyxx, t1.xyzw, s1, l(0.000000) sample_l_indexable(texture2d)(float,float,float,float) r2.xyzw, v0.xyxx, t2.xyzw, s2, l(0.000000) sample_l_indexable(texture2d)(float,float,float,float) r3.xyz, v0.xyxx, t3.xyzw, s3, l(0.000000) mul r4.xy, v0.xyxx, cb1[116].xyxx ftou r4.xy, r4.xyxx ftou r0.w, cb1[133].x iadd r3.w, r4.y, r4.x iadd r0.w, r0.w, r3.w and r0.w, r0.w, l(1) mad r0.xyz, r0.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000) dp3 r3.w, r0.xyzx, r0.xyzx rsq r3.w, r3.w mul r4.xyz, r0.xyzx, r3.wwww mul r1.w, r1.w, l(255.000000) round_ne r1.w, r1.w ftou r1.w, r1.w and r5.xy, r1.wwww, l(15, 16, 0, 0) movc r3.xyz, r5.yyyy, l(0,0,0,0), r3.xyzx ieq r6.xyzw, r5.xxxx, l(5, 4, 7, 2) movc r7.xy, r0.wwww, l(1.000000,0,0,0), l(0,1.000000,0,0) mul r7.z, r1.y, r7.y mov r8.xyz, r2.xyzx mov r8.w, r1.y movc r7.xyzw, r6.xxxx, r7.xxxz, r8.xyzw mad r2.xyz, -r7.xyzx, r1.xxxx, r7.xyzx mul r0.w, r7.w, l(0.080000) mad r5.yzw, -r7.wwww, l(0.000000, 0.080000, 0.080000, 0.080000), r7.xxyz mad r5.yzw, r1.xxxx, r5.yyzw, r0.wwww mad r2.xyz, r2.xyzx, cb1[118].wwww, cb1[118].xyzx mad r5.yzw, r5.yyzw, cb1[119].wwww, cb1[119].xxyz sample_l_indexable(texture2d)(float,float,float,float) r0.w, v0.xyxx, t4.yzwx, s4, l(0.000000) mul r8.xyz, v0.wwww, cb1[41].xyzx mad r8.xyz, v0.zzzz, cb1[40].xyzx, r8.xyzx add r8.xyz, r8.xyzx, cb1[42].xyzx dp3 r1.y, r8.xyzx, r8.xyzx rsq r1.y, r1.y mul r8.xyz, r1.yyyy, r8.xyzx dp3 r1.y, -r8.xyzx, r4.xyzx add r1.w, r1.y, r1.y mad r9.xyz, r1.wwww, r4.xyzx, r8.xyzx mov_sat r10.x, r1.y mad r1.w, -r1.z, r1.z, l(1.000000) sqrt r4.w, r1.w mad r4.w, r1.z, r1.z, r4.w mul r1.w, r1.w, r4.w mad r0.xyz, -r0.xyzx, r3.wwww, r9.xyzx mad r0.xyz, r1.wwww, r0.xyzx, r4.xyzx sample_l_indexable(texturecube)(float,float,float,float) r11.xyz, r4.xyzx, t5.xyzw, s5, cb0[19].z mul r2.xyz, r2.xyzx, r11.xyzx if_nz r6.y log r1.w, r1.z mad r1.w, -r1.w, l(1.150000), l(3.000000) add r3.w, cb0[19].w, l(-1.000000) add r1.w, -r1.w, r3.w sample_l_indexable(texturecube)(float,float,float,float) r12.xyz, r0.xyzx, t5.xyzw, s5, r1.w mov r10.y, r1.z sample_l_indexable(texture2d)(float,float,float,float) r6.xy, r10.xyxx, t6.xyzw, s6, l(0.000000) add r1.w, -r3.x, l(1.000000) mul r1.w, r1.w, r6.y mad r13.xyz, r5.yzwy, r6.xxxx, r1.wwww mul r12.xyz, r12.xyzx, r13.xyzx log r1.w, r3.y mad r1.w, -r1.w, l(1.150000), l(3.000000) add r1.w, -r1.w, r3.w sample_l_indexable(texturecube)(float,float,float,float) r9.xyz, r9.xyzx, t5.xyzw, s5, r1.w add r1.w, -r10.x, l(1.000000) mul r3.w, r1.w, r1.w mul r3.w, r3.w, r3.w mul r4.w, r1.w, r3.w mad r1.w, -r1.w, r3.w, l(1.000000) mad r1.w, r1.w, l(0.040000), r4.w mul r3.w, r3.x, r1.w mad r1.w, -r1.w, r3.x, l(1.000000) mul r2.xyz, r1.wwww, r2.xyzx mul r9.xyz, r3.wwww, r9.xyzx mad r9.xyz, r12.xyzx, r1.wwww, r9.xyzx else log r1.w, r1.z mad r1.w, -r1.w, l(1.150000), l(3.000000) add r3.w, cb0[19].w, l(-1.000000) add r1.w, -r1.w, r3.w sample_l_indexable(texturecube)(float,float,float,float) r0.xyz, r0.xyzx, t5.xyzw, s5, r1.w mov r10.z, r1.z sample_l_indexable(texture2d)(float,float,float,float) r6.xy, r10.xzxx, t6.xyzw, s6, l(0.000000) mul_sat r1.w, r5.z, l(50.000000) mul r1.w, r6.y, r1.w mad r5.yzw, r5.yyzw, r6.xxxx, r1.wwww mul r9.xyz, r0.xyzx, r5.yzwy endif if_nz r6.z mad r0.xyz, -r4.xyzx, r1.yyyy, -r8.xyzx dp3 r1.w, r0.xyzx, r0.xyzx rsq r3.w, r1.w mul r5.yzw, r0.xxyz, r3.wwww sample_l_indexable(texturecube)(float,float,float,float) r6.xyz, r5.yzwy, t5.xyzw, s5, cb0[19].z max r1.z, r1.z, l(0.00392156886) min r1.z, r1.z, l(1.000000) dp3 r3.w, -r8.xyzx, r5.yzwy dp3 r4.w, r4.xyzx, r5.yzwy mad r8.w, |r1.y|, l(-0.156583), l(1.57079637) add r9.w, -|r1.y|, l(1.000000) sqrt r9.w, r9.w mul r10.x, r8.w, r9.w ge r10.y, r1.y, l(0.000000) mad r8.w, -r8.w, r9.w, l(3.14159274) movc r8.w, r10.y, r10.x, r8.w add r8.w, -r8.w, l(1.57079637) mad r9.w, |r4.w|, l(-0.156583), l(1.57079637) add r10.x, -|r4.w|, l(1.000000) sqrt r10.x, r10.x mul r10.y, r9.w, r10.x ge r10.z, r4.w, l(0.000000) mad r9.w, -r9.w, r10.x, l(3.14159274) movc r9.w, r10.z, r10.y, r9.w add r9.w, -r9.w, l(1.57079637) add r8.w, r8.w, -r9.w mul r8.w, |r8.w|, l(0.500000) sincos null, r8.w, r8.w mad r4.xyz, -r4.wwww, r4.xyzx, r5.yzwy dp3 r0.x, r4.xyzx, r0.xyzx dp3 r0.y, r4.xyzx, r4.xyzx mad r0.y, r0.y, r1.w, l(0.000100) rsq r0.y, r0.y mul r0.z, r0.y, r0.x mad_sat r0.z, r0.z, l(0.500000), l(0.500000) sqrt r0.z, r0.z mul r1.w, r1.z, r1.z mad r1.z, r1.z, r1.z, l(0.200000) mad r1.w, r1.w, l(2.000000), l(0.200000) mul r4.x, r0.z, l(-0.139543116) mad r4.y, -r1.y, r1.y, l(1.000000) sqrt r4.y, r4.y mul r4.z, r1.y, l(0.00978400372) mad r4.x, r4.x, r4.y, r4.z mul r1.z, r0.z, r1.z mul r4.yz, r1.zzzz, l(0.000000, 1.41421354, 3.54490757, 0.000000) add r1.y, r1.y, r4.w add r1.z, -r4.x, r1.y mul r1.z, r1.z, r1.z mul r1.z, r1.z, l(-0.500000) mul r4.x, r4.y, r4.y div r1.z, r1.z, r4.x mul r1.z, r1.z, l(1.442695) exp r1.z, r1.z div r1.z, r1.z, r4.z mul r0.z, r0.z, r1.z mad_sat r1.z, r3.w, l(0.500000), l(0.500000) sqrt r1.z, r1.z add r1.z, -r1.z, l(1.000000) mul r4.x, r1.z, r1.z mul r4.x, r4.x, r4.x mul r1.z, r1.z, r4.x mad r1.z, r1.z, l(0.953479409), l(0.0465205684) mul r0.z, r0.z, r1.z mul r0.z, r7.w, r0.z mov_sat r3.w, -r3.w add r1.z, -r3.w, l(1.000000) add r1.y, r1.y, l(-0.140000) mul r1.y, r1.y, r1.y mul r1.y, r1.y, l(-0.500000) mul r3.w, r1.w, r1.w div r1.y, r1.y, r3.w mul r1.yw, r1.yyyw, l(0.000000, 1.442695, 0.000000, 2.50662827) exp r1.y, r1.y div r1.y, r1.y, r1.w mad r1.w, -r8.w, l(0.500000), l(1.000000) mul r3.w, r1.w, r1.w mul r3.w, r3.w, r3.w mul r1.w, r1.w, r3.w mad r1.w, r1.w, l(0.953479409), l(0.0465205684) add r3.w, -r1.w, l(1.000000) mul r3.w, r3.w, r3.w mul r1.w, r1.w, r3.w div r3.w, l(0.800000), r8.w log r4.xyz, r7.xyzx mul r4.xyz, r3.wwww, r4.xyzx exp r4.xyz, r4.xyzx mad r0.x, r0.x, r0.y, l(-1.000000) mul r0.xz, r0.xxzx, l(7.502014, 0.000000, 0.500000, 0.000000) exp r0.x, r0.x mul r0.x, r0.x, r1.y mul r0.x, r0.x, r1.w mul r0.x, r0.x, l(0.827605724) mul r4.xyz, r4.xyzx, r0.xxxx mad r0.xyz, r0.zzzz, r1.zzzz, r4.xyzx dp3 r1.y, r5.yzwy, r5.yzwy add r1.y, r1.y, l(1.000000) mul r1.y, r1.y, l(0.250000) min r1.y, r1.y, l(1.000000) mul r1.x, r1.y, r1.x mul r1.x, r1.x, l(0.318309873) sqrt r1.yzw, r7.xxyz mad r0.xyz, r1.yzwy, r1.xxxx, r0.xyzx min r0.xyz, -r0.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) mul r0.xyz, -r0.xyzx, r6.xyzx mul r9.xyz, r0.xyzx, l(3.14159274, 3.14159274, 3.14159274, 0.000000) mov r2.xyz, l(0,0,0,0) endif mul r0.x, r0.w, r2.w ieq r0.y, r5.x, l(3) or r0.y, r0.y, r6.w if_nz r0.y mul r0.yzw, r3.xxyz, r3.xxyz mul r1.xyz, r0.yzwy, r11.xyzx mad r2.xyz, r1.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r2.xyzx add r1.x, cb0[19].z, l(-2.500000) sample_l_indexable(texturecube)(float,float,float,float) r1.xyz, r8.xyzx, t5.xyzw, s5, r1.x mul r0.yzw, r0.yyzw, r1.xxyz mul r1.x, r0.x, l(0.500000) mad r9.xyz, r0.yzwy, r1.xxxx, r9.xyzx endif add r0.yzw, r2.xxyz, r9.xxyz mul r0.yzw, r0.yyzw, cb0[18].xxyz mul o0.xyz, r0.xxxx, r0.yzwy mov o0.w, l(0) ret // Approximately 0 instruction slots used ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ I wasn't able to hunt down the shader for a minor lighting glitch (candlefire reflections in church), but I guess I'll give it another go and look for a VS instead of a PS. However, it's no big deal anyway.
Hi DHR, I've found the PS responsible for all those wrong cloud shadows. It doesn't seem to affect anything else than cloud shadows, as far as I could tell by looking around at the environment:

// ---- Created with 3Dmigoto v1.3.11 on Sun Sep 23 23:16:50 2018
Texture2D<float4> t1 : register(t1);

Texture2D<float4> t0 : register(t0);

SamplerState s1_s : register(s1);

SamplerState s0_s : register(s0);

cbuffer cb2 : register(b2)
{
float4 cb2[14];
}

cbuffer cb1 : register(b1)
{
float4 cb1[125];
}

cbuffer cb0 : register(b0)
{
float4 cb0[12];
}




// 3Dmigoto declarations
#define cmp -
Texture1D<float4> IniParams : register(t120);
Texture2D<float4> StereoParams : register(t125);


void main(
float4 v0 : SV_Position0,
out float4 o0 : SV_Target0)
{
float4 r0,r1,r2,r3;
uint4 bitmask, uiDest;
float4 fDest;

r0.xyzw = cb0[8].xyzw * v0.yyyy;
r0.xyzw = v0.xxxx * cb0[7].xyzw + r0.xyzw;
r1.xy = cb1[116].zw * v0.xy;
r1.x = t1.SampleLevel(s1_s, r1.xy, 0).x;
r0.xyzw = r1.xxxx * cb0[9].xyzw + r0.xyzw;
r0.xyzw = cb0[10].xyzw + r0.xyzw;
r0.xyz = r0.yzx / r0.www;
r0.w = dot(r0.xyz, r0.xyz);
r0.w = rsqrt(r0.w);
r1.yzw = r0.xyz * r0.www;
r0.w = max(abs(r1.y), abs(r1.z));
r0.w = 1 / r0.w;
r2.x = min(abs(r1.y), abs(r1.z));
r0.w = r2.x * r0.w;
r2.x = r0.w * r0.w;
r2.y = r2.x * 0.0208350997 + -0.0851330012;
r2.y = r2.x * r2.y + 0.180141002;
r2.y = r2.x * r2.y + -0.330299497;
r2.x = r2.x * r2.y + 0.999866009;
r2.y = r2.x * r0.w;
r2.y = r2.y * -2 + 1.57079637;
r2.z = cmp(abs(r1.z) < abs(r1.y));
r2.y = r2.z ? r2.y : 0;
r0.w = r0.w * r2.x + r2.y;
r2.xy = cmp(r1.zw < -r1.zw);
r2.x = r2.x ? -3.141593 : 0;
r0.w = r2.x + r0.w;
r2.x = min(r1.y, r1.z);
r2.x = cmp(r2.x < -r2.x);
r1.y = max(r1.y, r1.z);
r1.y = cmp(r1.y >= -r1.y);
r1.y = r1.y ? r2.x : 0;
r0.w = r1.y ? -r0.w : r0.w;
r0.w = 3.14159274 + r0.w;
r3.x = 0.159154937 * r0.w;
r0.w = abs(r1.w) * -0.0187292993 + 0.0742610022;
r0.w = r0.w * abs(r1.w) + -0.212114394;
r0.w = r0.w * abs(r1.w) + 1.57072878;
r1.y = 1 + -abs(r1.w);
r1.y = sqrt(r1.y);
r1.z = r1.y * r0.w;
r1.z = r1.z * -2 + 3.14159274;
r1.z = r2.y ? r1.z : 0;
r0.w = r0.w * r1.y + r1.z;
r3.y = 0.318309873 * r0.w;
r1.yz = cmp(float2(0,0) < cb0[2].zw);
r1.zw = r1.zz ? r3.xy : r0.yx;
r0.z = cb0[2].x * r0.z;
r0.xy = r0.yx / r0.zz;
r0.xy = r0.xy * float2(0.5,0.5) + float2(0.5,0.5);
r0.xy = r1.yy ? r0.xy : r1.zw;
r0.zw = float2(1,1) + -r0.xy;
r0.xy = r0.xy * r0.zw;
r0.x = saturate(dot(r0.xx, r0.yy));
r2.xyzw = cb1[37].xyzw * v0.yyyy;
r2.xyzw = v0.xxxx * cb1[36].xyzw + r2.xyzw;
r1.xyzw = r1.xxxx * cb1[38].xyzw + r2.xyzw;
r1.xyzw = cb1[39].xyzw + r1.xyzw;
r0.yzw = r1.xyz / r1.www;
r0.yzw = -cb1[56].xyz + r0.yzw;
r1.xyz = cb2[4].xyz + r0.yzw;
r1.xyz = -r1.xyz + r0.xxx;
r0.x = dot(r1.xyz, r1.xyz);
r0.x = sqrt(r0.x);
r0.x = -r0.x * cb2[13].x + 1;
r0.x = saturate(1.25 * r0.x);
r1.xy = r0.yz / cb2[9].zz;
r0.yzw = cb1[53].xyz + -r0.yzw;
r0.y = dot(r0.yzw, r0.yzw);
r0.y = sqrt(r0.y);
r0.y = cb0[11].x + -r0.y;
r0.zw = float2(-0.5,-0.5) + r1.xy;
r1.x = dot(cb2[1].xy, r0.zw);
r1.y = dot(cb2[2].xy, r0.zw);
r0.zw = float2(0.5,0.5) + r1.xy;
r1.xy = cb2[9].ww * r0.zw;
r1.z = cb2[8].x * cb1[124].z;
r2.x = r1.z * 0.100000001 + r1.x;
r1.xzw = cb2[10].xyw * cb1[124].zzz;
r2.y = r1.x * 0.100000001 + r1.y;
r1.xy = float2(0.100000001,0.100000001) * r1.zw;
r1.xy = r0.zw * cb2[10].zz + r1.xy;
r0.zw = cb2[11].yy * r0.zw;
r1.x = t0.Sample(s0_s, r1.xy).x;
r1.y = t0.Sample(s0_s, r2.xy).y;
r1.x = r1.y * r1.x;
r1.yz = cb2[11].xz * cb1[124].zz;
r0.zw = r1.yz * float2(0.100000001,0.100000001) + r0.zw;
r0.z = t0.Sample(s0_s, r0.zw).z;
r0.z = r1.x * r0.z + -1;
r0.z = cb2[11].w * r0.z;
r0.x = r0.x * r0.z + 1;
r0.xzw = cb2[5].xyz + r0.xxx;
r0.xzw = max(float3(0,0,0), r0.xzw);
r0.x = dot(r0.xzw, float3(0.333299994,0.333299994,0.333299994));
r0.x = -cb0[11].y + r0.x;
r0.z = 0.200000003 * cb0[11].x;
r0.y = saturate(r0.y / r0.z);
r0.x = r0.y * r0.x;
r0.x = cb0[2].y * r0.x + cb0[11].y;
r0.z = sqrt(r0.x);
r0.xyw = float3(1,1,1);
r1.xyzw = r0.zzzz + -r0.wwzw;
o0.xyzw = cb0[11].zzzz * r1.xyzw + r0.xyzw;
return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
// using 3Dmigoto v1.3.11 on Sun Sep 23 23:16:50 2018
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Position 0 xyzw 0 POS float xy
//
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target 0 xyzw 0 TARGET float xyzw
//
ps_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[12], immediateIndexed
dcl_constantbuffer cb1[125], immediateIndexed
dcl_constantbuffer cb2[14], immediateIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_resource_texture2d (float,float,float,float) t1
dcl_input_ps_siv linear noperspective v0.xy, position
dcl_output o0.xyzw
dcl_temps 4
mul r0.xyzw, v0.yyyy, cb0[8].xyzw
mad r0.xyzw, v0.xxxx, cb0[7].xyzw, r0.xyzw
mul r1.xy, v0.xyxx, cb1[116].zwzz
sample_l_indexable(texture2d)(float,float,float,float) r1.x, r1.xyxx, t1.xyzw, s1, l(0.000000)
mad r0.xyzw, r1.xxxx, cb0[9].xyzw, r0.xyzw
add r0.xyzw, r0.xyzw, cb0[10].xyzw
div r0.xyz, r0.yzxy, r0.wwww
dp3 r0.w, r0.xyzx, r0.xyzx
rsq r0.w, r0.w
mul r1.yzw, r0.wwww, r0.xxyz
max r0.w, |r1.z|, |r1.y|
div r0.w, l(1.000000, 1.000000, 1.000000, 1.000000), r0.w
min r2.x, |r1.z|, |r1.y|
mul r0.w, r0.w, r2.x
mul r2.x, r0.w, r0.w
mad r2.y, r2.x, l(0.0208350997), l(-0.085133)
mad r2.y, r2.x, r2.y, l(0.180141)
mad r2.y, r2.x, r2.y, l(-0.330299497)
mad r2.x, r2.x, r2.y, l(0.999866)
mul r2.y, r0.w, r2.x
mad r2.y, r2.y, l(-2.000000), l(1.57079637)
lt r2.z, |r1.z|, |r1.y|
and r2.y, r2.z, r2.y
mad r0.w, r0.w, r2.x, r2.y
lt r2.xy, r1.zwzz, -r1.zwzz
and r2.x, r2.x, l(0xc0490fdb)
add r0.w, r0.w, r2.x
min r2.x, r1.z, r1.y
lt r2.x, r2.x, -r2.x
max r1.y, r1.z, r1.y
ge r1.y, r1.y, -r1.y
and r1.y, r1.y, r2.x
movc r0.w, r1.y, -r0.w, r0.w
add r0.w, r0.w, l(3.14159274)
mul r3.x, r0.w, l(0.159154937)
mad r0.w, |r1.w|, l(-0.0187292993), l(0.074261)
mad r0.w, r0.w, |r1.w|, l(-0.212114394)
mad r0.w, r0.w, |r1.w|, l(1.57072878)
add r1.y, -|r1.w|, l(1.000000)
sqrt r1.y, r1.y
mul r1.z, r0.w, r1.y
mad r1.z, r1.z, l(-2.000000), l(3.14159274)
and r1.z, r2.y, r1.z
mad r0.w, r0.w, r1.y, r1.z
mul r3.y, r0.w, l(0.318309873)
lt r1.yz, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[2].zzwz
movc r1.zw, r1.zzzz, r3.xxxy, r0.yyyx
mul r0.z, r0.z, cb0[2].x
div r0.xy, r0.yxyy, r0.zzzz
mad r0.xy, r0.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
movc r0.xy, r1.yyyy, r0.xyxx, r1.zwzz
add r0.zw, -r0.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000)
mul r0.xy, r0.zwzz, r0.xyxx
dp2_sat r0.x, r0.xxxx, r0.yyyy
mul r2.xyzw, v0.yyyy, cb1[37].xyzw
mad r2.xyzw, v0.xxxx, cb1[36].xyzw, r2.xyzw
mad r1.xyzw, r1.xxxx, cb1[38].xyzw, r2.xyzw
add r1.xyzw, r1.xyzw, cb1[39].xyzw
div r0.yzw, r1.xxyz, r1.wwww
add r0.yzw, r0.yyzw, -cb1[56].xxyz
add r1.xyz, r0.yzwy, cb2[4].xyzx
add r1.xyz, r0.xxxx, -r1.xyzx
dp3 r0.x, r1.xyzx, r1.xyzx
sqrt r0.x, r0.x
mad r0.x, -r0.x, cb2[13].x, l(1.000000)
mul_sat r0.x, r0.x, l(1.250000)
div r1.xy, r0.yzyy, cb2[9].zzzz
add r0.yzw, -r0.yyzw, cb1[53].xxyz
dp3 r0.y, r0.yzwy, r0.yzwy
sqrt r0.y, r0.y
add r0.y, -r0.y, cb0[11].x
add r0.zw, r1.xxxy, l(0.000000, 0.000000, -0.500000, -0.500000)
dp2 r1.x, cb2[1].xyxx, r0.zwzz
dp2 r1.y, cb2[2].xyxx, r0.zwzz
add r0.zw, r1.xxxy, l(0.000000, 0.000000, 0.500000, 0.500000)
mul r1.xy, r0.zwzz, cb2[9].wwww
mul r1.z, cb1[124].z, cb2[8].x
mad r2.x, r1.z, l(0.100000), r1.x
mul r1.xzw, cb1[124].zzzz, cb2[10].xxyw
mad r2.y, r1.x, l(0.100000), r1.y
mul r1.xy, r1.zwzz, l(0.100000, 0.100000, 0.000000, 0.000000)
mad r1.xy, r0.zwzz, cb2[10].zzzz, r1.xyxx
mul r0.zw, r0.zzzw, cb2[11].yyyy
sample_indexable(texture2d)(float,float,float,float) r1.x, r1.xyxx, t0.xyzw, s0
sample_indexable(texture2d)(float,float,float,float) r1.y, r2.xyxx, t0.xyzw, s0
mul r1.x, r1.x, r1.y
mul r1.yz, cb1[124].zzzz, cb2[11].xxzx
mad r0.zw, r1.yyyz, l(0.000000, 0.000000, 0.100000, 0.100000), r0.zzzw
sample_indexable(texture2d)(float,float,float,float) r0.z, r0.zwzz, t0.xyzw, s0
mad r0.z, r1.x, r0.z, l(-1.000000)
mul r0.z, r0.z, cb2[11].w
mad r0.x, r0.x, r0.z, l(1.000000)
add r0.xzw, r0.xxxx, cb2[5].xxyz
max r0.xzw, r0.xxzw, l(0.000000, 0.000000, 0.000000, 0.000000)
dp3 r0.x, r0.xzwx, l(0.333300, 0.333300, 0.333300, 0.000000)
add r0.x, r0.x, -cb0[11].y
mul r0.z, cb0[11].x, l(0.200000)
div_sat r0.y, r0.y, r0.z
mul r0.x, r0.x, r0.y
mad r0.x, cb0[2].y, r0.x, cb0[11].y
sqrt r0.z, r0.x
mov r0.xyw, l(1.000000,1.000000,0,1.000000)
add r1.xyzw, -r0.wwzw, r0.zzzz
mad o0.xyzw, cb0[11].zzzz, r1.xyzw, r0.xyzw
ret
// Approximately 0 instruction slots used

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/





There's another PS that causes reflections on the church floor to look incorrect:

------------------------------>



// ---- Created with 3Dmigoto v1.3.11 on Sun Sep 23 23:29:14 2018
Texture2D<float4> t6 : register(t6);

TextureCube<float4> t5 : register(t5);

Texture2D<float4> t4 : register(t4);

Texture2D<float4> t3 : register(t3);

Texture2D<float4> t2 : register(t2);

Texture2D<float4> t1 : register(t1);

Texture2D<float4> t0 : register(t0);

SamplerState s6_s : register(s6);

SamplerState s5_s : register(s5);

SamplerState s4_s : register(s4);

SamplerState s3_s : register(s3);

SamplerState s2_s : register(s2);

SamplerState s1_s : register(s1);

SamplerState s0_s : register(s0);

cbuffer cb1 : register(b1)
{
float4 cb1[134];
}

cbuffer cb0 : register(b0)
{
float4 cb0[20];
}




// 3Dmigoto declarations
#define cmp -
Texture1D<float4> IniParams : register(t120);
Texture2D<float4> StereoParams : register(t125);


void main(
linear noperspective float4 v0 : TEXCOORD0,
float4 v1 : SV_POSITION0,
out float4 o0 : SV_Target0)
{
float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13;
uint4 bitmask, uiDest;
float4 fDest;

r0.xyz = t0.SampleLevel(s0_s, v0.xy, 0).xyz;
r1.xyzw = t1.SampleLevel(s1_s, v0.xy, 0).xyzw;
r2.xyzw = t2.SampleLevel(s2_s, v0.xy, 0).xyzw;
r3.xyz = t3.SampleLevel(s3_s, v0.xy, 0).xyz;
r4.xy = cb1[116].xy * v0.xy;
r4.xy = (uint2)r4.xy;
r0.w = (uint)cb1[133].x;
r3.w = (int)r4.y + (int)r4.x;
r0.w = (int)r0.w + (int)r3.w;
r0.w = (int)r0.w & 1;
r0.xyz = r0.xyz * float3(2,2,2) + float3(-1,-1,-1);
r3.w = dot(r0.xyz, r0.xyz);
r3.w = rsqrt(r3.w);
r4.xyz = r3.www * r0.xyz;
r1.w = 255 * r1.w;
r1.w = round(r1.w);
r1.w = (uint)r1.w;
r5.xy = (int2)r1.ww & int2(15,16);
r3.xyz = r5.yyy ? float3(0,0,0) : r3.xyz;
r6.xyzw = cmp((int4)r5.xxxx == int4(5,4,7,2));
r7.xy = r0.ww ? float2(1,0) : float2(0,1);
r7.z = r7.y * r1.y;
r8.xyz = r2.xyz;
r8.w = r1.y;
r7.xyzw = r6.xxxx ? r7.xxxz : r8.xyzw;
r2.xyz = -r7.xyz * r1.xxx + r7.xyz;
r0.w = 0.0799999982 * r7.w;
r5.yzw = -r7.www * float3(0.0799999982,0.0799999982,0.0799999982) + r7.xyz;
r5.yzw = r1.xxx * r5.yzw + r0.www;
r2.xyz = r2.xyz * cb1[118].www + cb1[118].xyz;
r5.yzw = r5.yzw * cb1[119].www + cb1[119].xyz;
r0.w = t4.SampleLevel(s4_s, v0.xy, 0).x;
r8.xyz = cb1[41].xyz * v0.www;
r8.xyz = v0.zzz * cb1[40].xyz + r8.xyz;
r8.xyz = cb1[42].xyz + r8.xyz;
r1.y = dot(r8.xyz, r8.xyz);
r1.y = rsqrt(r1.y);
r8.xyz = r8.xyz * r1.yyy;
r1.y = dot(-r8.xyz, r4.xyz);
r1.w = r1.y + r1.y;
r9.xyz = r1.www * r4.xyz + r8.xyz;
r10.x = saturate(r1.y);
r1.w = -r1.z * r1.z + 1;
r4.w = sqrt(r1.w);
r4.w = r1.z * r1.z + r4.w;
r1.w = r4.w * r1.w;
r0.xyz = -r0.xyz * r3.www + r9.xyz;
r0.xyz = r1.www * r0.xyz + r4.xyz;
r11.xyz = t5.SampleLevel(s5_s, r4.xyz, cb0[19].z).xyz;
r2.xyz = r11.xyz * r2.xyz;
if (r6.y != 0) {
r1.w = log2(r1.z);
r1.w = -r1.w * 1.14999998 + 3;
r3.w = -1 + cb0[19].w;
r1.w = r3.w + -r1.w;
r12.xyz = t5.SampleLevel(s5_s, r0.xyz, r1.w).xyz;
r10.y = r1.z;
r6.xy = t6.SampleLevel(s6_s, r10.xy, 0).xy;
r1.w = 1 + -r3.x;
r1.w = r6.y * r1.w;
r13.xyz = r5.yzw * r6.xxx + r1.www;
r12.xyz = r13.xyz * r12.xyz;
r1.w = log2(r3.y);
r1.w = -r1.w * 1.14999998 + 3;
r1.w = r3.w + -r1.w;
r9.xyz = t5.SampleLevel(s5_s, r9.xyz, r1.w).xyz;
r1.w = 1 + -r10.x;
r3.w = r1.w * r1.w;
r3.w = r3.w * r3.w;
r4.w = r3.w * r1.w;
r1.w = -r1.w * r3.w + 1;
r1.w = r1.w * 0.0399999991 + r4.w;
r3.w = r1.w * r3.x;
r1.w = -r1.w * r3.x + 1;
r2.xyz = r2.xyz * r1.www;
r9.xyz = r9.xyz * r3.www;
r9.xyz = r12.xyz * r1.www + r9.xyz;
} else {
r1.w = log2(r1.z);
r1.w = -r1.w * 1.14999998 + 3;
r3.w = -1 + cb0[19].w;
r1.w = r3.w + -r1.w;
r0.xyz = t5.SampleLevel(s5_s, r0.xyz, r1.w).xyz;
r10.z = r1.z;
r6.xy = t6.SampleLevel(s6_s, r10.xz, 0).xy;
r1.w = saturate(50 * r5.z);
r1.w = r1.w * r6.y;
r5.yzw = r5.yzw * r6.xxx + r1.www;
r9.xyz = r5.yzw * r0.xyz;
}
if (r6.z != 0) {
r0.xyz = -r4.xyz * r1.yyy + -r8.xyz;
r1.w = dot(r0.xyz, r0.xyz);
r3.w = rsqrt(r1.w);
r5.yzw = r3.www * r0.xyz;
r6.xyz = t5.SampleLevel(s5_s, r5.yzw, cb0[19].z).xyz;
r1.z = max(0.00392156886, r1.z);
r1.z = min(1, r1.z);
r3.w = dot(-r8.xyz, r5.yzw);
r4.w = dot(r4.xyz, r5.yzw);
r8.w = abs(r1.y) * -0.156582996 + 1.57079637;
r9.w = 1 + -abs(r1.y);
r9.w = sqrt(r9.w);
r10.x = r9.w * r8.w;
r10.y = cmp(r1.y >= 0);
r8.w = -r8.w * r9.w + 3.14159274;
r8.w = r10.y ? r10.x : r8.w;
r8.w = 1.57079637 + -r8.w;
r9.w = abs(r4.w) * -0.156582996 + 1.57079637;
r10.x = 1 + -abs(r4.w);
r10.x = sqrt(r10.x);
r10.y = r10.x * r9.w;
r10.z = cmp(r4.w >= 0);
r9.w = -r9.w * r10.x + 3.14159274;
r9.w = r10.z ? r10.y : r9.w;
r9.w = 1.57079637 + -r9.w;
r8.w = -r9.w + r8.w;
r8.w = 0.5 * abs(r8.w);
r8.w = cos(r8.w);
r4.xyz = -r4.www * r4.xyz + r5.yzw;
r0.x = dot(r4.xyz, r0.xyz);
r0.y = dot(r4.xyz, r4.xyz);
r0.y = r0.y * r1.w + 9.99999975e-005;
r0.y = rsqrt(r0.y);
r0.z = r0.x * r0.y;
r0.z = saturate(r0.z * 0.5 + 0.5);
r0.z = sqrt(r0.z);
r1.w = r1.z * r1.z;
r1.z = r1.z * r1.z + 0.200000003;
r1.w = r1.w * 2 + 0.200000003;
r4.x = -0.139543116 * r0.z;
r4.y = -r1.y * r1.y + 1;
r4.y = sqrt(r4.y);
r4.z = 0.00978400372 * r1.y;
r4.x = r4.x * r4.y + r4.z;
r1.z = r1.z * r0.z;
r4.yz = float2(1.41421354,3.54490757) * r1.zz;
r1.y = r4.w + r1.y;
r1.z = r1.y + -r4.x;
r1.z = r1.z * r1.z;
r1.z = -0.5 * r1.z;
r4.x = r4.y * r4.y;
r1.z = r1.z / r4.x;
r1.z = 1.44269502 * r1.z;
r1.z = exp2(r1.z);
r1.z = r1.z / r4.z;
r0.z = r1.z * r0.z;
r1.z = saturate(r3.w * 0.5 + 0.5);
r1.z = sqrt(r1.z);
r1.z = 1 + -r1.z;
r4.x = r1.z * r1.z;
r4.x = r4.x * r4.x;
r1.z = r4.x * r1.z;
r1.z = r1.z * 0.953479409 + 0.0465205684;
r0.z = r1.z * r0.z;
r0.z = r0.z * r7.w;
r3.w = saturate(-r3.w);
r1.z = 1 + -r3.w;
r1.y = -0.140000001 + r1.y;
r1.y = r1.y * r1.y;
r1.y = -0.5 * r1.y;
r3.w = r1.w * r1.w;
r1.y = r1.y / r3.w;
r1.yw = float2(1.44269502,2.50662827) * r1.yw;
r1.y = exp2(r1.y);
r1.y = r1.y / r1.w;
r1.w = -r8.w * 0.5 + 1;
r3.w = r1.w * r1.w;
r3.w = r3.w * r3.w;
r1.w = r3.w * r1.w;
r1.w = r1.w * 0.953479409 + 0.0465205684;
r3.w = 1 + -r1.w;
r3.w = r3.w * r3.w;
r1.w = r3.w * r1.w;
r3.w = 0.800000012 / r8.w;
r4.xyz = log2(r7.xyz);
r4.xyz = r4.xyz * r3.www;
r4.xyz = exp2(r4.xyz);
r0.x = r0.x * r0.y + -1;
r0.xz = float2(7.50201416,0.5) * r0.xz;
r0.x = exp2(r0.x);
r0.x = r1.y * r0.x;
r0.x = r1.w * r0.x;
r0.x = 0.827605724 * r0.x;
r4.xyz = r0.xxx * r4.xyz;
r0.xyz = r0.zzz * r1.zzz + r4.xyz;
r1.y = dot(r5.yzw, r5.yzw);
r1.y = 1 + r1.y;
r1.y = 0.25 * r1.y;
r1.y = min(1, r1.y);
r1.x = r1.x * r1.y;
r1.x = 0.318309873 * r1.x;
r1.yzw = sqrt(r7.xyz);
r0.xyz = r1.yzw * r1.xxx + r0.xyz;
r0.xyz = min(float3(0,0,0), -r0.xyz);
r0.xyz = r6.xyz * -r0.xyz;
r9.xyz = float3(3.14159274,3.14159274,3.14159274) * r0.xyz;
r2.xyz = float3(0,0,0);
}
r0.x = r2.w * r0.w;
r0.y = cmp((int)r5.x == 3);
r0.y = (int)r0.y | (int)r6.w;
if (r0.y != 0) {
r0.yzw = r3.xyz * r3.xyz;
r1.xyz = r11.xyz * r0.yzw;
r2.xyz = r1.xyz * float3(0.5,0.5,0.5) + r2.xyz;
r1.x = -2.5 + cb0[19].z;
r1.xyz = t5.SampleLevel(s5_s, r8.xyz, r1.x).xyz;
r0.yzw = r1.xyz * r0.yzw;
r1.x = 0.5 * r0.x;
r9.xyz = r0.yzw * r1.xxx + r9.xyz;
}
r0.yzw = r9.xyz + r2.xyz;
r0.yzw = cb0[18].xyz * r0.yzw;
o0.xyz = r0.yzw * r0.xxx;
o0.w = 0;
return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
// using 3Dmigoto v1.3.11 on Sun Sep 23 23:29:14 2018
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// TEXCOORD 0 xyzw 0 NONE float xyzw
// SV_POSITION 0 xyzw 1 POS float
//
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target 0 xyzw 0 TARGET float xyzw
//
ps_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[20], immediateIndexed
dcl_constantbuffer cb1[134], immediateIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, mode_default
dcl_sampler s2, mode_default
dcl_sampler s3, mode_default
dcl_sampler s4, mode_default
dcl_sampler s5, mode_default
dcl_sampler s6, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_resource_texture2d (float,float,float,float) t1
dcl_resource_texture2d (float,float,float,float) t2
dcl_resource_texture2d (float,float,float,float) t3
dcl_resource_texture2d (float,float,float,float) t4
dcl_resource_texturecube (float,float,float,float) t5
dcl_resource_texture2d (float,float,float,float) t6
dcl_input_ps linear noperspective v0.xyzw
dcl_output o0.xyzw
dcl_temps 14
sample_l_indexable(texture2d)(float,float,float,float) r0.xyz, v0.xyxx, t0.xyzw, s0, l(0.000000)
sample_l_indexable(texture2d)(float,float,float,float) r1.xyzw, v0.xyxx, t1.xyzw, s1, l(0.000000)
sample_l_indexable(texture2d)(float,float,float,float) r2.xyzw, v0.xyxx, t2.xyzw, s2, l(0.000000)
sample_l_indexable(texture2d)(float,float,float,float) r3.xyz, v0.xyxx, t3.xyzw, s3, l(0.000000)
mul r4.xy, v0.xyxx, cb1[116].xyxx
ftou r4.xy, r4.xyxx
ftou r0.w, cb1[133].x
iadd r3.w, r4.y, r4.x
iadd r0.w, r0.w, r3.w
and r0.w, r0.w, l(1)
mad r0.xyz, r0.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
dp3 r3.w, r0.xyzx, r0.xyzx
rsq r3.w, r3.w
mul r4.xyz, r0.xyzx, r3.wwww
mul r1.w, r1.w, l(255.000000)
round_ne r1.w, r1.w
ftou r1.w, r1.w
and r5.xy, r1.wwww, l(15, 16, 0, 0)
movc r3.xyz, r5.yyyy, l(0,0,0,0), r3.xyzx
ieq r6.xyzw, r5.xxxx, l(5, 4, 7, 2)
movc r7.xy, r0.wwww, l(1.000000,0,0,0), l(0,1.000000,0,0)
mul r7.z, r1.y, r7.y
mov r8.xyz, r2.xyzx
mov r8.w, r1.y
movc r7.xyzw, r6.xxxx, r7.xxxz, r8.xyzw
mad r2.xyz, -r7.xyzx, r1.xxxx, r7.xyzx
mul r0.w, r7.w, l(0.080000)
mad r5.yzw, -r7.wwww, l(0.000000, 0.080000, 0.080000, 0.080000), r7.xxyz
mad r5.yzw, r1.xxxx, r5.yyzw, r0.wwww
mad r2.xyz, r2.xyzx, cb1[118].wwww, cb1[118].xyzx
mad r5.yzw, r5.yyzw, cb1[119].wwww, cb1[119].xxyz
sample_l_indexable(texture2d)(float,float,float,float) r0.w, v0.xyxx, t4.yzwx, s4, l(0.000000)
mul r8.xyz, v0.wwww, cb1[41].xyzx
mad r8.xyz, v0.zzzz, cb1[40].xyzx, r8.xyzx
add r8.xyz, r8.xyzx, cb1[42].xyzx
dp3 r1.y, r8.xyzx, r8.xyzx
rsq r1.y, r1.y
mul r8.xyz, r1.yyyy, r8.xyzx
dp3 r1.y, -r8.xyzx, r4.xyzx
add r1.w, r1.y, r1.y
mad r9.xyz, r1.wwww, r4.xyzx, r8.xyzx
mov_sat r10.x, r1.y
mad r1.w, -r1.z, r1.z, l(1.000000)
sqrt r4.w, r1.w
mad r4.w, r1.z, r1.z, r4.w
mul r1.w, r1.w, r4.w
mad r0.xyz, -r0.xyzx, r3.wwww, r9.xyzx
mad r0.xyz, r1.wwww, r0.xyzx, r4.xyzx
sample_l_indexable(texturecube)(float,float,float,float) r11.xyz, r4.xyzx, t5.xyzw, s5, cb0[19].z
mul r2.xyz, r2.xyzx, r11.xyzx
if_nz r6.y
log r1.w, r1.z
mad r1.w, -r1.w, l(1.150000), l(3.000000)
add r3.w, cb0[19].w, l(-1.000000)
add r1.w, -r1.w, r3.w
sample_l_indexable(texturecube)(float,float,float,float) r12.xyz, r0.xyzx, t5.xyzw, s5, r1.w
mov r10.y, r1.z
sample_l_indexable(texture2d)(float,float,float,float) r6.xy, r10.xyxx, t6.xyzw, s6, l(0.000000)
add r1.w, -r3.x, l(1.000000)
mul r1.w, r1.w, r6.y
mad r13.xyz, r5.yzwy, r6.xxxx, r1.wwww
mul r12.xyz, r12.xyzx, r13.xyzx
log r1.w, r3.y
mad r1.w, -r1.w, l(1.150000), l(3.000000)
add r1.w, -r1.w, r3.w
sample_l_indexable(texturecube)(float,float,float,float) r9.xyz, r9.xyzx, t5.xyzw, s5, r1.w
add r1.w, -r10.x, l(1.000000)
mul r3.w, r1.w, r1.w
mul r3.w, r3.w, r3.w
mul r4.w, r1.w, r3.w
mad r1.w, -r1.w, r3.w, l(1.000000)
mad r1.w, r1.w, l(0.040000), r4.w
mul r3.w, r3.x, r1.w
mad r1.w, -r1.w, r3.x, l(1.000000)
mul r2.xyz, r1.wwww, r2.xyzx
mul r9.xyz, r3.wwww, r9.xyzx
mad r9.xyz, r12.xyzx, r1.wwww, r9.xyzx
else
log r1.w, r1.z
mad r1.w, -r1.w, l(1.150000), l(3.000000)
add r3.w, cb0[19].w, l(-1.000000)
add r1.w, -r1.w, r3.w
sample_l_indexable(texturecube)(float,float,float,float) r0.xyz, r0.xyzx, t5.xyzw, s5, r1.w
mov r10.z, r1.z
sample_l_indexable(texture2d)(float,float,float,float) r6.xy, r10.xzxx, t6.xyzw, s6, l(0.000000)
mul_sat r1.w, r5.z, l(50.000000)
mul r1.w, r6.y, r1.w
mad r5.yzw, r5.yyzw, r6.xxxx, r1.wwww
mul r9.xyz, r0.xyzx, r5.yzwy
endif
if_nz r6.z
mad r0.xyz, -r4.xyzx, r1.yyyy, -r8.xyzx
dp3 r1.w, r0.xyzx, r0.xyzx
rsq r3.w, r1.w
mul r5.yzw, r0.xxyz, r3.wwww
sample_l_indexable(texturecube)(float,float,float,float) r6.xyz, r5.yzwy, t5.xyzw, s5, cb0[19].z
max r1.z, r1.z, l(0.00392156886)
min r1.z, r1.z, l(1.000000)
dp3 r3.w, -r8.xyzx, r5.yzwy
dp3 r4.w, r4.xyzx, r5.yzwy
mad r8.w, |r1.y|, l(-0.156583), l(1.57079637)
add r9.w, -|r1.y|, l(1.000000)
sqrt r9.w, r9.w
mul r10.x, r8.w, r9.w
ge r10.y, r1.y, l(0.000000)
mad r8.w, -r8.w, r9.w, l(3.14159274)
movc r8.w, r10.y, r10.x, r8.w
add r8.w, -r8.w, l(1.57079637)
mad r9.w, |r4.w|, l(-0.156583), l(1.57079637)
add r10.x, -|r4.w|, l(1.000000)
sqrt r10.x, r10.x
mul r10.y, r9.w, r10.x
ge r10.z, r4.w, l(0.000000)
mad r9.w, -r9.w, r10.x, l(3.14159274)
movc r9.w, r10.z, r10.y, r9.w
add r9.w, -r9.w, l(1.57079637)
add r8.w, r8.w, -r9.w
mul r8.w, |r8.w|, l(0.500000)
sincos null, r8.w, r8.w
mad r4.xyz, -r4.wwww, r4.xyzx, r5.yzwy
dp3 r0.x, r4.xyzx, r0.xyzx
dp3 r0.y, r4.xyzx, r4.xyzx
mad r0.y, r0.y, r1.w, l(0.000100)
rsq r0.y, r0.y
mul r0.z, r0.y, r0.x
mad_sat r0.z, r0.z, l(0.500000), l(0.500000)
sqrt r0.z, r0.z
mul r1.w, r1.z, r1.z
mad r1.z, r1.z, r1.z, l(0.200000)
mad r1.w, r1.w, l(2.000000), l(0.200000)
mul r4.x, r0.z, l(-0.139543116)
mad r4.y, -r1.y, r1.y, l(1.000000)
sqrt r4.y, r4.y
mul r4.z, r1.y, l(0.00978400372)
mad r4.x, r4.x, r4.y, r4.z
mul r1.z, r0.z, r1.z
mul r4.yz, r1.zzzz, l(0.000000, 1.41421354, 3.54490757, 0.000000)
add r1.y, r1.y, r4.w
add r1.z, -r4.x, r1.y
mul r1.z, r1.z, r1.z
mul r1.z, r1.z, l(-0.500000)
mul r4.x, r4.y, r4.y
div r1.z, r1.z, r4.x
mul r1.z, r1.z, l(1.442695)
exp r1.z, r1.z
div r1.z, r1.z, r4.z
mul r0.z, r0.z, r1.z
mad_sat r1.z, r3.w, l(0.500000), l(0.500000)
sqrt r1.z, r1.z
add r1.z, -r1.z, l(1.000000)
mul r4.x, r1.z, r1.z
mul r4.x, r4.x, r4.x
mul r1.z, r1.z, r4.x
mad r1.z, r1.z, l(0.953479409), l(0.0465205684)
mul r0.z, r0.z, r1.z
mul r0.z, r7.w, r0.z
mov_sat r3.w, -r3.w
add r1.z, -r3.w, l(1.000000)
add r1.y, r1.y, l(-0.140000)
mul r1.y, r1.y, r1.y
mul r1.y, r1.y, l(-0.500000)
mul r3.w, r1.w, r1.w
div r1.y, r1.y, r3.w
mul r1.yw, r1.yyyw, l(0.000000, 1.442695, 0.000000, 2.50662827)
exp r1.y, r1.y
div r1.y, r1.y, r1.w
mad r1.w, -r8.w, l(0.500000), l(1.000000)
mul r3.w, r1.w, r1.w
mul r3.w, r3.w, r3.w
mul r1.w, r1.w, r3.w
mad r1.w, r1.w, l(0.953479409), l(0.0465205684)
add r3.w, -r1.w, l(1.000000)
mul r3.w, r3.w, r3.w
mul r1.w, r1.w, r3.w
div r3.w, l(0.800000), r8.w
log r4.xyz, r7.xyzx
mul r4.xyz, r3.wwww, r4.xyzx
exp r4.xyz, r4.xyzx
mad r0.x, r0.x, r0.y, l(-1.000000)
mul r0.xz, r0.xxzx, l(7.502014, 0.000000, 0.500000, 0.000000)
exp r0.x, r0.x
mul r0.x, r0.x, r1.y
mul r0.x, r0.x, r1.w
mul r0.x, r0.x, l(0.827605724)
mul r4.xyz, r4.xyzx, r0.xxxx
mad r0.xyz, r0.zzzz, r1.zzzz, r4.xyzx
dp3 r1.y, r5.yzwy, r5.yzwy
add r1.y, r1.y, l(1.000000)
mul r1.y, r1.y, l(0.250000)
min r1.y, r1.y, l(1.000000)
mul r1.x, r1.y, r1.x
mul r1.x, r1.x, l(0.318309873)
sqrt r1.yzw, r7.xxyz
mad r0.xyz, r1.yzwy, r1.xxxx, r0.xyzx
min r0.xyz, -r0.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
mul r0.xyz, -r0.xyzx, r6.xyzx
mul r9.xyz, r0.xyzx, l(3.14159274, 3.14159274, 3.14159274, 0.000000)
mov r2.xyz, l(0,0,0,0)
endif
mul r0.x, r0.w, r2.w
ieq r0.y, r5.x, l(3)
or r0.y, r0.y, r6.w
if_nz r0.y
mul r0.yzw, r3.xxyz, r3.xxyz
mul r1.xyz, r0.yzwy, r11.xyzx
mad r2.xyz, r1.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r2.xyzx
add r1.x, cb0[19].z, l(-2.500000)
sample_l_indexable(texturecube)(float,float,float,float) r1.xyz, r8.xyzx, t5.xyzw, s5, r1.x
mul r0.yzw, r0.yyzw, r1.xxyz
mul r1.x, r0.x, l(0.500000)
mad r9.xyz, r0.yzwy, r1.xxxx, r9.xyzx
endif
add r0.yzw, r2.xxyz, r9.xxyz
mul r0.yzw, r0.yyzw, cb0[18].xxyz
mul o0.xyz, r0.xxxx, r0.yzwy
mov o0.w, l(0)
ret
// Approximately 0 instruction slots used

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/


I wasn't able to hunt down the shader for a minor lighting glitch (candlefire reflections in church), but I guess I'll give it another go and look for a VS instead of a PS. However, it's no big deal anyway.

#27
Posted 09/23/2018 09:47 PM   
Everyone should get this: https://steamcommunity.com/sharedfiles/filedetails/?id=1521444556 It's the orchestral music mod.
Everyone should get this: https://steamcommunity.com/sharedfiles/filedetails/?id=1521444556

It's the orchestral music mod.

CPU: Intel Core i7 7700K @ 4.9GHz
Motherboard: Gigabyte Aorus GA-Z270X-Gaming 5
RAM: GSKILL Ripjaws Z 16GB 3866MHz CL18
GPU: MSI GeForce RTX 2080Ti Gaming X Trio
Monitor: Asus PG278QR
Speakers: Logitech Z506
Donations account: masterotakusuko@gmail.com

#28
Posted 09/24/2018 05:48 AM   
@Gryzor_ I know how to fix both shaders...the first one need a double correction and is a variant of the swizzle that the regex don't cover, and the second one is a reflections shader (i saw the same shader in at least 3 UE4 games....probably can make a regex for that since is consistent repeating in some games). Can you upload the shaders? not only the text....the files. I can look when i arrive home in the night.
@Gryzor_

I know how to fix both shaders...the first one need a double correction and is a variant of the swizzle that the regex don't cover, and the second one is a reflections shader (i saw the same shader in at least 3 UE4 games....probably can make a regex for that since is consistent repeating in some games).

Can you upload the shaders? not only the text....the files.
I can look when i arrive home in the night.

MY WEB

Helix Mod - Making 3D Better

My 3D Screenshot Gallery

Like my fixes? you can donate to Paypal: dhr.donation@gmail.com

#29
Posted 09/24/2018 01:50 PM   
[quote="masterotaku"]Everyone should get this: https://steamcommunity.com/sharedfiles/filedetails/?id=1521444556 It's the orchestral music mod.[/quote] Thanks, masterotaku! The proper music from the Tokyo Metropolitan Symphony Orchestra beats the midi-files of the release version any day of the week :D [quote="DHR"] Can you upload the shaders? not only the text....the files. I can look when i arrive home in the night.[/quote] Thank you so much for looking into this, DHR. Will the ps_replace.txt files that I've saved with 3Dmigoto in hunting mode help or do I have to grab them elsewhere? If that's what you meant, here are the Dropbox-links: https://www.dropbox.com/s/6ppqf6zzekstt1o/c801eddf127ee7e1-ps_replace.txt?dl=0 https://www.dropbox.com/s/1bj3sfy46on0c7v/9bd20d1c26e87bb8-ps_replace.txt?dl=0
masterotaku said:Everyone should get this: https://steamcommunity.com/sharedfiles/filedetails/?id=1521444556

It's the orchestral music mod.

Thanks, masterotaku! The proper music from the Tokyo Metropolitan Symphony Orchestra beats the midi-files of the release version any day of the week :D

DHR said:
Can you upload the shaders? not only the text....the files.
I can look when i arrive home in the night.

Thank you so much for looking into this, DHR.
Will the ps_replace.txt files that I've saved with 3Dmigoto in hunting mode help or do I have to grab them elsewhere?

If that's what you meant, here are the Dropbox-links:

https://www.dropbox.com/s/6ppqf6zzekstt1o/c801eddf127ee7e1-ps_replace.txt?dl=0
https://www.dropbox.com/s/1bj3sfy46on0c7v/9bd20d1c26e87bb8-ps_replace.txt?dl=0

#30
Posted 09/24/2018 08:06 PM   
  2 / 4    
Scroll To Top