Just Cause 3
  6 / 23    
Game doesn`t even start with your wrapper Flugan :/
Game doesn`t even start with your wrapper Flugan :/
@SKAUT or anyone that have the game Can you test Just Cause 3 with the new 3Dmigoto (1.2.27) and the new hooking feature used in Metal Gear Solid V. You have this option for hooking (d3dx.ini): [code]hook=all hook=all except_set_shader_resources hook=deferred_contexts hook=deferred_contexts except_set_shader_resources hook=recommended skip_dxgi_factory[/code]
@SKAUT or anyone that have the game

Can you test Just Cause 3 with the new 3Dmigoto (1.2.27) and the new hooking feature used in Metal Gear Solid V. You have this option for hooking (d3dx.ini):

hook=all
hook=all except_set_shader_resources
hook=deferred_contexts
hook=deferred_contexts except_set_shader_resources
hook=recommended skip_dxgi_factory

MY WEB

Helix Mod - Making 3D Better

My 3D Screenshot Gallery

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

#77
Posted 01/24/2016 12:13 AM   
[quote="DHR"]@SKAUT or anyone that have the game Can you test Just Cause 3 with the new 3Dmigoto (1.2.27) and the new hooking feature used in Metal Gear Solid V. You have this option for hooking (d3dx.ini): [code]hook=all hook=all except_set_shader_resources hook=deferred_contexts hook=deferred_contexts except_set_shader_resources hook=recommended skip_dxgi_factory[/code][/quote] I tested this yesterday, and doing the hook=all works to allow the game to be loaded with 3DMigoto. Dumps some 1500 shaders. There are 3 Decompiler errors that look easy to fix, if we happen to need those shaders. There are the usual shadow problems, but also the same problem we saw in Crysis 2 where some textures are drawn at the wrong depth altogether. Tried several profiles like Max Payne 3, but didn't change the glitch. Long launch time is a real drag. Here is the PS shader (95edabd14035d009-ps_replace.txt) for lights that cast shadows. Two things I already looked at, there are no easily found mvp matrices that I could dig up. They seem to be stuck inside the generic 'Consts' variables. Second thing is that the 'Consts' seems to have no correlation to MadMax that I can see. [code]// Light for shadows. // ---- Created with 3Dmigoto v1.2.26 on Fri Jan 22 02:30:23 2016 cbuffer GlobalConstants : register(b0) { float4 Globals[95] : packoffset(c0); } cbuffer cbConsts : register(b1) { float4 Consts[16] : packoffset(c0); } SamplerState SceneTexture_s : register(s0); SamplerState BlurredSceneTexture_s : register(s1); SamplerState DepthTexture_s : register(s2); SamplerState BloomTexture_s : register(s3); SamplerState SecondaryBloomTexture_s : register(s4); SamplerState EdgeFadeTexture_s : register(s9); SamplerState LensDirtTexture_s : register(s10); SamplerState ColorCorrectionTexture_s : register(s11); SamplerState HeatHazeTexture_s : register(s13); SamplerState BokehFocusTexture_s : register(s14); Texture2D<float4> SceneTexture : register(t0); Texture2D<float4> BlurredSceneTexture : register(t1); Texture2D<float4> DepthTexture : register(t2); Texture2D<float4> BloomTexture : register(t3); Texture2D<float4> SecondaryBloomTexture : register(t4); Texture2D<float4> EdgeFadeTexture : register(t9); Texture2D<float4> LensDirtTexture : register(t10); Texture3D<float4> ColorCorrectionTexture : register(t11); Texture2D<float4> HeatHazeTexture : register(t13); Texture2D<float4> BokehFocusTexture : register(t14); // 3Dmigoto declarations #define cmp - Texture1D<float4> IniParams : register(t120); Texture2D<float4> StereoParams : register(t125); void main( float4 v0 : SV_Position0, float4 v1 : TEXCOORD0, out float4 o0 : SV_Target0) { float4 r0,r1,r2,r3,r4,r5; uint4 bitmask, uiDest; float4 fDest; r0.x = DepthTexture.Sample(DepthTexture_s, v1.xy).x; r0.y = r0.x * Consts[2].z + Consts[2].w; r0.y = 1 / r0.y; r1.xyzw = Consts[6].xyzw * v1.yyyy; r1.xyzw = v1.xxxx * Consts[5].xyzw + r1.xyzw; r1.xyzw = r0.xxxx * Consts[7].xyzw + r1.xyzw; r1.xyzw = Consts[8].xyzw + r1.xyzw; // row major matrix translation goes here // presumably projection space here. //float4 stereo = StereoParams.Load(0); //r1.x -= stereo.x * (r1.w - stereo.y); // inverse matrix goes here r0.xzw = r1.xzy / r1.www; r0.xzw = -Globals[4].xzy + r0.xzw; r1.x = dot(r0.xzw, r0.xzw); r1.x = rsqrt(r1.x); r0.xzw = r1.xxx * r0.wxz; r1.x = cmp(0 < Consts[15].w); if (r1.x != 0) { r1.x = min(abs(r0.z), abs(r0.w)); r1.y = max(abs(r0.z), abs(r0.w)); r1.y = 1 / r1.y; r1.x = r1.x * r1.y; r1.y = r1.x * r1.x; r1.z = r1.y * 0.0208350997 + -0.0851330012; r1.z = r1.y * r1.z + 0.180141002; r1.z = r1.y * r1.z + -0.330299497; r1.y = r1.y * r1.z + 0.999866009; r1.z = r1.x * r1.y; r1.w = cmp(abs(r0.w) < abs(r0.z)); r1.z = r1.z * -2 + 1.57079637; r1.z = r1.w ? r1.z : 0; r1.x = r1.x * r1.y + r1.z; r1.y = cmp(-r0.w < r0.w); r1.y = r1.y ? -3.141593 : 0; r1.x = r1.x + r1.y; r1.y = min(-r0.z, -r0.w); r0.z = max(-r0.z, -r0.w); r0.w = cmp(r1.y < -r1.y); r0.z = cmp(r0.z >= -r0.z); r0.z = r0.z ? r0.w : 0; r0.z = r0.z ? -r1.x : r1.x; r0.z = 3.14159012 + r0.z; r1.x = 0.159155071 * r0.z; r0.z = abs(r0.x) * 0.5 + 0.5; r1.y = -r0.x * r0.z; r0.z = saturate(Consts[15].z * r0.y); r0.w = Consts[15].x * r0.z; r1.z = saturate(-r0.x); r1.z = r1.z * r1.z; r1.z = r1.z * Consts[15].y + 1; r1.z = 1 / r1.z; r0.w = r1.z * r0.w; r2.xyzw = -Consts[14].xyzw + r1.xyxy; r2.xyzw = float4(8,3,25,8) * r2.xyzw; r1.xy = HeatHazeTexture.Sample(HeatHazeTexture_s, r2.zw).yw; r1.xy = float2(-0.5,-0.5) + r1.xy; r3.yz = float2(0.75,0.75) * r1.xy; r1.xyw = HeatHazeTexture.Sample(HeatHazeTexture_s, r2.xy).xyw; r3.w = -0; r1.xyw = r1.xyw + r3.wyz; r1.xyw = float3(0,-0.5,-0.5) + r1.xyw; r2.xy = r1.wy * r0.ww; r2.xy = r2.xy * r1.xx + v1.xy; r0.w = dot(r1.yw, r1.yw); r0.w = sqrt(r0.w); r0.w = r1.z * 0.300000012 + r0.w; r0.z = r0.w * r0.z; r0.z = r0.z * r1.z; r0.z = Consts[15].w * r0.z; r0.z = saturate(r0.z * r1.x); r0.w = DepthTexture.Sample(DepthTexture_s, r2.xy).x; r0.w = r0.w * Consts[2].z + Consts[2].w; r0.y = 1 / r0.w; } else { r2.xy = v1.xy; r0.z = 0; } r1.xyz = BlurredSceneTexture.Sample(BlurredSceneTexture_s, r2.xy).xyz; r3.xyz = BloomTexture.Sample(BloomTexture_s, r2.xy).xyz; r4.xyz = SecondaryBloomTexture.Sample(SecondaryBloomTexture_s, r2.xy).xyz; r5.xyz = SceneTexture.Sample(SceneTexture_s, r2.xy).xyz; r0.x = saturate(r0.x); r0.x = r0.x * r0.x; r0.x = r0.x * Consts[13].x + 1; r0.y = saturate(r0.y * Consts[4].x + -Consts[4].y); r0.x = r0.y / r0.x; r0.x = saturate(r0.x * Consts[0].w + Consts[0].z); r0.x = -0.100000001 + r0.x; r0.x = saturate(16 * r0.x); r0.y = BokehFocusTexture.Sample(BokehFocusTexture_s, r2.xy).x; r0.x = r0.x + r0.y; r0.y = 4 * r0.z; r0.y = min(1, r0.y); r0.x = saturate(r0.x + r0.y); r0.yzw = -r5.xyz + r1.xyz; r0.xyz = r0.xxx * r0.yzw + r5.xyz; r1.xyz = LensDirtTexture.Sample(LensDirtTexture_s, r2.xy).xyz; r1.xyz = r1.xyz * Consts[3].zzz + Consts[3].yyy; r1.xyz = r4.xyz * r1.xyz; r1.xyz = r3.xyz * Consts[3].xxx + r1.xyz; r0.xyz = r0.xyz * Consts[2].xxx + r1.xyz; r0.w = cmp(Consts[13].z == 0.000000); if (r0.w != 0) { r1.xyz = EdgeFadeTexture.Sample(EdgeFadeTexture_s, v1.xy).xyz; r1.xyz = float3(-1,-1,-1) + r1.xyz; r1.xyz = Consts[2].yyy * r1.xyz + float3(1,1,1); r1.xyz = r1.xyz * r0.xyz; } else { r2.xy = v1.xy * float2(2,2) + float2(-1,-1); r2.xy = abs(r2.xy) * float2(0.5,0.5) + float2(0.5,0.5); r2.xy = float2(1,1) + -r2.xy; r2.xyz = EdgeFadeTexture.Sample(EdgeFadeTexture_s, r2.xy).xyz; r2.xyz = r2.xyz * r2.xyz + float3(-1,-1,-1); r2.xyz = Consts[2].yyy * r2.xyz + float3(1,1,1); r1.xyz = r2.xyz * r0.xyz; } r0.xyz = -Consts[10].xxx * r1.xyz; r0.xyz = exp2(r0.xyz); r0.xyz = float3(1,1,1) + -r0.xyz; r0.xyz = Consts[1].xyz * r0.xyz; r0.xyz = sqrt(r0.xyz); r0.xyz = min(float3(1,1,1), r0.xyz); r0.xyz = r0.xyz * float3(0.96875,0.96875,0.96875) + float3(0.015625,0.015625,0.015625); r0.xyz = ColorCorrectionTexture.Sample(ColorCorrectionTexture_s, r0.xyz).xyz; r0.xyz = r0.xyz * r0.xyz; r0.xyz = saturate(r0.xyz * Consts[12].xxx + Consts[12].yyy); r0.w = dot(r0.xyz, float3(0.298999995,0.587000012,0.114)); o0.w = sqrt(r0.w); o0.xyz = r0.xyz; return; } /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 // // using 3Dmigoto v1.2.26 on Fri Jan 22 02:30:23 2016 // // // Buffer Definitions: // // cbuffer GlobalConstants // { // // float4 Globals[95]; // Offset: 0 Size: 1520 // // } // // cbuffer cbConsts // { // // float4 Consts[16]; // Offset: 0 Size: 256 // // } // // // Resource Bindings: // // Name Type Format Dim Slot Elements // ------------------------------ ---------- ------- ----------- ---- -------- // SceneTexture sampler NA NA 0 1 // BlurredSceneTexture sampler NA NA 1 1 // DepthTexture sampler NA NA 2 1 // BloomTexture sampler NA NA 3 1 // SecondaryBloomTexture sampler NA NA 4 1 // EdgeFadeTexture sampler NA NA 9 1 // LensDirtTexture sampler NA NA 10 1 // ColorCorrectionTexture sampler NA NA 11 1 // HeatHazeTexture sampler NA NA 13 1 // BokehFocusTexture sampler NA NA 14 1 // SceneTexture texture float4 2d 0 1 // BlurredSceneTexture texture float4 2d 1 1 // DepthTexture texture float4 2d 2 1 // BloomTexture texture float4 2d 3 1 // SecondaryBloomTexture texture float4 2d 4 1 // EdgeFadeTexture texture float4 2d 9 1 // LensDirtTexture texture float4 2d 10 1 // ColorCorrectionTexture texture float4 3d 11 1 // HeatHazeTexture texture float4 2d 13 1 // BokehFocusTexture texture float4 2d 14 1 // GlobalConstants cbuffer NA NA 0 1 // cbConsts cbuffer NA NA 1 1 // // // // Input signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // SV_Position 0 xyzw 0 POS float // TEXCOORD 0 xyzw 1 NONE 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[5], immediateIndexed dcl_constantbuffer cb1[16], 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 s9, mode_default dcl_sampler s10, mode_default dcl_sampler s11, mode_default dcl_sampler s13, mode_default dcl_sampler s14, 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_texture2d (float,float,float,float) t9 dcl_resource_texture2d (float,float,float,float) t10 dcl_resource_texture3d (float,float,float,float) t11 dcl_resource_texture2d (float,float,float,float) t13 dcl_resource_texture2d (float,float,float,float) t14 dcl_input_ps linear v1.xy dcl_output o0.xyzw dcl_temps 6 sample_indexable(texture2d)(float,float,float,float) r0.x, v1.xyxx, t2.xyzw, s2 mad r0.y, r0.x, cb1[2].z, cb1[2].w div r0.y, l(1.000000, 1.000000, 1.000000, 1.000000), r0.y mul r1.xyzw, v1.yyyy, cb1[6].xyzw mad r1.xyzw, v1.xxxx, cb1[5].xyzw, r1.xyzw mad r1.xyzw, r0.xxxx, cb1[7].xyzw, r1.xyzw add r1.xyzw, r1.xyzw, cb1[8].xyzw div r0.xzw, r1.xxzy, r1.wwww add r0.xzw, r0.xxzw, -cb0[4].xxzy dp3 r1.x, r0.xzwx, r0.xzwx rsq r1.x, r1.x mul r0.xzw, r0.wwxz, r1.xxxx lt r1.x, l(0.000000), cb1[15].w if_nz r1.x min r1.x, |r0.w|, |r0.z| max r1.y, |r0.w|, |r0.z| div r1.y, l(1.000000, 1.000000, 1.000000, 1.000000), r1.y mul r1.x, r1.y, r1.x mul r1.y, r1.x, r1.x mad r1.z, r1.y, l(0.0208350997), l(-0.085133) mad r1.z, r1.y, r1.z, l(0.180141) mad r1.z, r1.y, r1.z, l(-0.330299497) mad r1.y, r1.y, r1.z, l(0.999866) mul r1.z, r1.y, r1.x lt r1.w, |r0.w|, |r0.z| mad r1.z, r1.z, l(-2.000000), l(1.57079637) and r1.z, r1.w, r1.z mad r1.x, r1.x, r1.y, r1.z lt r1.y, -r0.w, r0.w and r1.y, r1.y, l(0xc0490fdb) add r1.x, r1.y, r1.x min r1.y, -r0.w, -r0.z max r0.z, -r0.w, -r0.z lt r0.w, r1.y, -r1.y ge r0.z, r0.z, -r0.z and r0.z, r0.z, r0.w movc r0.z, r0.z, -r1.x, r1.x add r0.z, r0.z, l(3.141590) mul r1.x, r0.z, l(0.159155071) mad r0.z, |r0.x|, l(0.500000), l(0.500000) mul r1.y, r0.z, -r0.x mul_sat r0.z, r0.y, cb1[15].z mul r0.w, r0.z, cb1[15].x mov_sat r1.z, -r0.x mul r1.z, r1.z, r1.z mad r1.z, r1.z, cb1[15].y, l(1.000000) div r1.z, l(1.000000, 1.000000, 1.000000, 1.000000), r1.z mul r0.w, r0.w, r1.z add r2.xyzw, r1.xyxy, -cb1[14].xyzw mul r2.xyzw, r2.xyzw, l(8.000000, 3.000000, 25.000000, 8.000000) sample_indexable(texture2d)(float,float,float,float) r1.xy, r2.zwzz, t13.ywxz, s13 add r1.xy, r1.xyxx, l(-0.500000, -0.500000, 0.000000, 0.000000) mul r3.yz, r1.xxyx, l(0.000000, 0.750000, 0.750000, 0.000000) sample_indexable(texture2d)(float,float,float,float) r1.xyw, r2.xyxx, t13.xyzw, s13 mov r3.w, l(-0.000000) add r1.xyw, r3.wywz, r1.xyxw add r1.xyw, r1.xyxw, l(0.000000, -0.500000, 0.000000, -0.500000) mul r2.xy, r0.wwww, r1.wyww mad r2.xy, r2.xyxx, r1.xxxx, v1.xyxx dp2 r0.w, r1.ywyy, r1.ywyy sqrt r0.w, r0.w mad r0.w, r1.z, l(0.300000), r0.w mul r0.z, r0.z, r0.w mul r0.z, r1.z, r0.z mul r0.z, r0.z, cb1[15].w mul_sat r0.z, r1.x, r0.z sample_indexable(texture2d)(float,float,float,float) r0.w, r2.xyxx, t2.yzwx, s2 mad r0.w, r0.w, cb1[2].z, cb1[2].w div r0.y, l(1.000000, 1.000000, 1.000000, 1.000000), r0.w else mov r2.xy, v1.xyxx mov r0.z, l(0) endif sample_indexable(texture2d)(float,float,float,float) r1.xyz, r2.xyxx, t1.xyzw, s1 sample_indexable(texture2d)(float,float,float,float) r3.xyz, r2.xyxx, t3.xyzw, s3 sample_indexable(texture2d)(float,float,float,float) r4.xyz, r2.xyxx, t4.xyzw, s4 sample_indexable(texture2d)(float,float,float,float) r5.xyz, r2.xyxx, t0.xyzw, s0 mov_sat r0.x, r0.x mul r0.x, r0.x, r0.x mad r0.x, r0.x, cb1[13].x, l(1.000000) mad_sat r0.y, r0.y, cb1[4].x, -cb1[4].y div r0.x, r0.y, r0.x mad_sat r0.x, r0.x, cb1[0].w, cb1[0].z add r0.x, r0.x, l(-0.100000) mul_sat r0.x, r0.x, l(16.000000) sample_indexable(texture2d)(float,float,float,float) r0.y, r2.xyxx, t14.yxzw, s14 add r0.x, r0.y, r0.x mul r0.y, r0.z, l(4.000000) min r0.y, r0.y, l(1.000000) add_sat r0.x, r0.y, r0.x add r0.yzw, r1.xxyz, -r5.xxyz mad r0.xyz, r0.xxxx, r0.yzwy, r5.xyzx sample_indexable(texture2d)(float,float,float,float) r1.xyz, r2.xyxx, t10.xyzw, s10 mad r1.xyz, r1.xyzx, cb1[3].zzzz, cb1[3].yyyy mul r1.xyz, r1.xyzx, r4.xyzx mad r1.xyz, r3.xyzx, cb1[3].xxxx, r1.xyzx mad r0.xyz, r0.xyzx, cb1[2].xxxx, r1.xyzx eq r0.w, cb1[13].z, l(0.000000) if_nz r0.w sample_indexable(texture2d)(float,float,float,float) r1.xyz, v1.xyxx, t9.xyzw, s9 add r1.xyz, r1.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000) mad r1.xyz, cb1[2].yyyy, r1.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) mul r1.xyz, r0.xyzx, r1.xyzx else mad r2.xy, v1.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) mad r2.xy, |r2.xyxx|, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) add r2.xy, -r2.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) sample_indexable(texture2d)(float,float,float,float) r2.xyz, r2.xyxx, t9.xyzw, s9 mad r2.xyz, r2.xyzx, r2.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000) mad r2.xyz, cb1[2].yyyy, r2.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) mul r1.xyz, r0.xyzx, r2.xyzx endif mul r0.xyz, r1.xyzx, -cb1[10].xxxx exp r0.xyz, r0.xyzx add r0.xyz, -r0.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) mul r0.xyz, r0.xyzx, cb1[1].xyzx sqrt r0.xyz, r0.xyzx min r0.xyz, r0.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) mad r0.xyz, r0.xyzx, l(0.968750, 0.968750, 0.968750, 0.000000), l(0.015625, 0.015625, 0.015625, 0.000000) sample_indexable(texture3d)(float,float,float,float) r0.xyz, r0.xyzx, t11.xyzw, s11 mul r0.xyz, r0.xyzx, r0.xyzx mad_sat r0.xyz, r0.xyzx, cb1[12].xxxx, cb1[12].yyyy dp3 r0.w, r0.xyzx, l(0.299000, 0.587000, 0.114000, 0.000000) sqrt o0.w, r0.w mov o0.xyz, r0.xyzx ret // Approximately 126 instruction slots used ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ [/code]
DHR said:@SKAUT or anyone that have the game

Can you test Just Cause 3 with the new 3Dmigoto (1.2.27) and the new hooking feature used in Metal Gear Solid V. You have this option for hooking (d3dx.ini):

hook=all
hook=all except_set_shader_resources
hook=deferred_contexts
hook=deferred_contexts except_set_shader_resources
hook=recommended skip_dxgi_factory

I tested this yesterday, and doing the hook=all works to allow the game to be loaded with 3DMigoto. Dumps some 1500 shaders. There are 3 Decompiler errors that look easy to fix, if we happen to need those shaders.

There are the usual shadow problems, but also the same problem we saw in Crysis 2 where some textures are drawn at the wrong depth altogether. Tried several profiles like Max Payne 3, but didn't change the glitch. Long launch time is a real drag.


Here is the PS shader (95edabd14035d009-ps_replace.txt) for lights that cast shadows.

Two things I already looked at, there are no easily found mvp matrices that I could dig up. They seem to be stuck inside the generic 'Consts' variables.

Second thing is that the 'Consts' seems to have no correlation to MadMax that I can see.


// Light for shadows.

// ---- Created with 3Dmigoto v1.2.26 on Fri Jan 22 02:30:23 2016

cbuffer GlobalConstants : register(b0)
{
float4 Globals[95] : packoffset(c0);
}

cbuffer cbConsts : register(b1)
{
float4 Consts[16] : packoffset(c0);
}

SamplerState SceneTexture_s : register(s0);
SamplerState BlurredSceneTexture_s : register(s1);
SamplerState DepthTexture_s : register(s2);
SamplerState BloomTexture_s : register(s3);
SamplerState SecondaryBloomTexture_s : register(s4);
SamplerState EdgeFadeTexture_s : register(s9);
SamplerState LensDirtTexture_s : register(s10);
SamplerState ColorCorrectionTexture_s : register(s11);
SamplerState HeatHazeTexture_s : register(s13);
SamplerState BokehFocusTexture_s : register(s14);
Texture2D<float4> SceneTexture : register(t0);
Texture2D<float4> BlurredSceneTexture : register(t1);
Texture2D<float4> DepthTexture : register(t2);
Texture2D<float4> BloomTexture : register(t3);
Texture2D<float4> SecondaryBloomTexture : register(t4);
Texture2D<float4> EdgeFadeTexture : register(t9);
Texture2D<float4> LensDirtTexture : register(t10);
Texture3D<float4> ColorCorrectionTexture : register(t11);
Texture2D<float4> HeatHazeTexture : register(t13);
Texture2D<float4> BokehFocusTexture : register(t14);


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


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

r0.x = DepthTexture.Sample(DepthTexture_s, v1.xy).x;

r0.y = r0.x * Consts[2].z + Consts[2].w;
r0.y = 1 / r0.y;
r1.xyzw = Consts[6].xyzw * v1.yyyy;
r1.xyzw = v1.xxxx * Consts[5].xyzw + r1.xyzw;
r1.xyzw = r0.xxxx * Consts[7].xyzw + r1.xyzw;
r1.xyzw = Consts[8].xyzw + r1.xyzw;

// row major matrix translation goes here

// presumably projection space here.
//float4 stereo = StereoParams.Load(0);
//r1.x -= stereo.x * (r1.w - stereo.y);

// inverse matrix goes here

r0.xzw = r1.xzy / r1.www;

r0.xzw = -Globals[4].xzy + r0.xzw;

r1.x = dot(r0.xzw, r0.xzw);
r1.x = rsqrt(r1.x);
r0.xzw = r1.xxx * r0.wxz;
r1.x = cmp(0 < Consts[15].w);
if (r1.x != 0) {
r1.x = min(abs(r0.z), abs(r0.w));
r1.y = max(abs(r0.z), abs(r0.w));
r1.y = 1 / r1.y;
r1.x = r1.x * r1.y;
r1.y = r1.x * r1.x;
r1.z = r1.y * 0.0208350997 + -0.0851330012;
r1.z = r1.y * r1.z + 0.180141002;
r1.z = r1.y * r1.z + -0.330299497;
r1.y = r1.y * r1.z + 0.999866009;
r1.z = r1.x * r1.y;
r1.w = cmp(abs(r0.w) < abs(r0.z));
r1.z = r1.z * -2 + 1.57079637;
r1.z = r1.w ? r1.z : 0;
r1.x = r1.x * r1.y + r1.z;
r1.y = cmp(-r0.w < r0.w);
r1.y = r1.y ? -3.141593 : 0;
r1.x = r1.x + r1.y;
r1.y = min(-r0.z, -r0.w);
r0.z = max(-r0.z, -r0.w);
r0.w = cmp(r1.y < -r1.y);
r0.z = cmp(r0.z >= -r0.z);
r0.z = r0.z ? r0.w : 0;
r0.z = r0.z ? -r1.x : r1.x;
r0.z = 3.14159012 + r0.z;
r1.x = 0.159155071 * r0.z;
r0.z = abs(r0.x) * 0.5 + 0.5;
r1.y = -r0.x * r0.z;
r0.z = saturate(Consts[15].z * r0.y);
r0.w = Consts[15].x * r0.z;
r1.z = saturate(-r0.x);
r1.z = r1.z * r1.z;
r1.z = r1.z * Consts[15].y + 1;
r1.z = 1 / r1.z;
r0.w = r1.z * r0.w;
r2.xyzw = -Consts[14].xyzw + r1.xyxy;
r2.xyzw = float4(8,3,25,8) * r2.xyzw;
r1.xy = HeatHazeTexture.Sample(HeatHazeTexture_s, r2.zw).yw;
r1.xy = float2(-0.5,-0.5) + r1.xy;
r3.yz = float2(0.75,0.75) * r1.xy;
r1.xyw = HeatHazeTexture.Sample(HeatHazeTexture_s, r2.xy).xyw;
r3.w = -0;
r1.xyw = r1.xyw + r3.wyz;
r1.xyw = float3(0,-0.5,-0.5) + r1.xyw;
r2.xy = r1.wy * r0.ww;
r2.xy = r2.xy * r1.xx + v1.xy;
r0.w = dot(r1.yw, r1.yw);
r0.w = sqrt(r0.w);
r0.w = r1.z * 0.300000012 + r0.w;
r0.z = r0.w * r0.z;
r0.z = r0.z * r1.z;
r0.z = Consts[15].w * r0.z;
r0.z = saturate(r0.z * r1.x);
r0.w = DepthTexture.Sample(DepthTexture_s, r2.xy).x;
r0.w = r0.w * Consts[2].z + Consts[2].w;
r0.y = 1 / r0.w;
} else {
r2.xy = v1.xy;
r0.z = 0;
}
r1.xyz = BlurredSceneTexture.Sample(BlurredSceneTexture_s, r2.xy).xyz;
r3.xyz = BloomTexture.Sample(BloomTexture_s, r2.xy).xyz;
r4.xyz = SecondaryBloomTexture.Sample(SecondaryBloomTexture_s, r2.xy).xyz;
r5.xyz = SceneTexture.Sample(SceneTexture_s, r2.xy).xyz;
r0.x = saturate(r0.x);
r0.x = r0.x * r0.x;
r0.x = r0.x * Consts[13].x + 1;
r0.y = saturate(r0.y * Consts[4].x + -Consts[4].y);
r0.x = r0.y / r0.x;
r0.x = saturate(r0.x * Consts[0].w + Consts[0].z);
r0.x = -0.100000001 + r0.x;
r0.x = saturate(16 * r0.x);
r0.y = BokehFocusTexture.Sample(BokehFocusTexture_s, r2.xy).x;
r0.x = r0.x + r0.y;
r0.y = 4 * r0.z;
r0.y = min(1, r0.y);
r0.x = saturate(r0.x + r0.y);
r0.yzw = -r5.xyz + r1.xyz;
r0.xyz = r0.xxx * r0.yzw + r5.xyz;
r1.xyz = LensDirtTexture.Sample(LensDirtTexture_s, r2.xy).xyz;
r1.xyz = r1.xyz * Consts[3].zzz + Consts[3].yyy;
r1.xyz = r4.xyz * r1.xyz;
r1.xyz = r3.xyz * Consts[3].xxx + r1.xyz;
r0.xyz = r0.xyz * Consts[2].xxx + r1.xyz;
r0.w = cmp(Consts[13].z == 0.000000);
if (r0.w != 0) {
r1.xyz = EdgeFadeTexture.Sample(EdgeFadeTexture_s, v1.xy).xyz;
r1.xyz = float3(-1,-1,-1) + r1.xyz;
r1.xyz = Consts[2].yyy * r1.xyz + float3(1,1,1);
r1.xyz = r1.xyz * r0.xyz;
} else {
r2.xy = v1.xy * float2(2,2) + float2(-1,-1);
r2.xy = abs(r2.xy) * float2(0.5,0.5) + float2(0.5,0.5);
r2.xy = float2(1,1) + -r2.xy;
r2.xyz = EdgeFadeTexture.Sample(EdgeFadeTexture_s, r2.xy).xyz;
r2.xyz = r2.xyz * r2.xyz + float3(-1,-1,-1);
r2.xyz = Consts[2].yyy * r2.xyz + float3(1,1,1);
r1.xyz = r2.xyz * r0.xyz;
}
r0.xyz = -Consts[10].xxx * r1.xyz;
r0.xyz = exp2(r0.xyz);
r0.xyz = float3(1,1,1) + -r0.xyz;
r0.xyz = Consts[1].xyz * r0.xyz;
r0.xyz = sqrt(r0.xyz);
r0.xyz = min(float3(1,1,1), r0.xyz);
r0.xyz = r0.xyz * float3(0.96875,0.96875,0.96875) + float3(0.015625,0.015625,0.015625);
r0.xyz = ColorCorrectionTexture.Sample(ColorCorrectionTexture_s, r0.xyz).xyz;
r0.xyz = r0.xyz * r0.xyz;
r0.xyz = saturate(r0.xyz * Consts[12].xxx + Consts[12].yyy);
r0.w = dot(r0.xyz, float3(0.298999995,0.587000012,0.114));
o0.w = sqrt(r0.w);
o0.xyz = r0.xyz;
return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
// using 3Dmigoto v1.2.26 on Fri Jan 22 02:30:23 2016
//
//
// Buffer Definitions:
//
// cbuffer GlobalConstants
// {
//
// float4 Globals[95]; // Offset: 0 Size: 1520
//
// }
//
// cbuffer cbConsts
// {
//
// float4 Consts[16]; // Offset: 0 Size: 256
//
// }
//
//
// Resource Bindings:
//
// Name Type Format Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// SceneTexture sampler NA NA 0 1
// BlurredSceneTexture sampler NA NA 1 1
// DepthTexture sampler NA NA 2 1
// BloomTexture sampler NA NA 3 1
// SecondaryBloomTexture sampler NA NA 4 1
// EdgeFadeTexture sampler NA NA 9 1
// LensDirtTexture sampler NA NA 10 1
// ColorCorrectionTexture sampler NA NA 11 1
// HeatHazeTexture sampler NA NA 13 1
// BokehFocusTexture sampler NA NA 14 1
// SceneTexture texture float4 2d 0 1
// BlurredSceneTexture texture float4 2d 1 1
// DepthTexture texture float4 2d 2 1
// BloomTexture texture float4 2d 3 1
// SecondaryBloomTexture texture float4 2d 4 1
// EdgeFadeTexture texture float4 2d 9 1
// LensDirtTexture texture float4 2d 10 1
// ColorCorrectionTexture texture float4 3d 11 1
// HeatHazeTexture texture float4 2d 13 1
// BokehFocusTexture texture float4 2d 14 1
// GlobalConstants cbuffer NA NA 0 1
// cbConsts cbuffer NA NA 1 1
//
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Position 0 xyzw 0 POS float
// TEXCOORD 0 xyzw 1 NONE 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[5], immediateIndexed
dcl_constantbuffer cb1[16], 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 s9, mode_default
dcl_sampler s10, mode_default
dcl_sampler s11, mode_default
dcl_sampler s13, mode_default
dcl_sampler s14, 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_texture2d (float,float,float,float) t9
dcl_resource_texture2d (float,float,float,float) t10
dcl_resource_texture3d (float,float,float,float) t11
dcl_resource_texture2d (float,float,float,float) t13
dcl_resource_texture2d (float,float,float,float) t14
dcl_input_ps linear v1.xy
dcl_output o0.xyzw
dcl_temps 6
sample_indexable(texture2d)(float,float,float,float) r0.x, v1.xyxx, t2.xyzw, s2
mad r0.y, r0.x, cb1[2].z, cb1[2].w
div r0.y, l(1.000000, 1.000000, 1.000000, 1.000000), r0.y
mul r1.xyzw, v1.yyyy, cb1[6].xyzw
mad r1.xyzw, v1.xxxx, cb1[5].xyzw, r1.xyzw
mad r1.xyzw, r0.xxxx, cb1[7].xyzw, r1.xyzw
add r1.xyzw, r1.xyzw, cb1[8].xyzw
div r0.xzw, r1.xxzy, r1.wwww
add r0.xzw, r0.xxzw, -cb0[4].xxzy
dp3 r1.x, r0.xzwx, r0.xzwx
rsq r1.x, r1.x
mul r0.xzw, r0.wwxz, r1.xxxx
lt r1.x, l(0.000000), cb1[15].w
if_nz r1.x
min r1.x, |r0.w|, |r0.z|
max r1.y, |r0.w|, |r0.z|
div r1.y, l(1.000000, 1.000000, 1.000000, 1.000000), r1.y
mul r1.x, r1.y, r1.x
mul r1.y, r1.x, r1.x
mad r1.z, r1.y, l(0.0208350997), l(-0.085133)
mad r1.z, r1.y, r1.z, l(0.180141)
mad r1.z, r1.y, r1.z, l(-0.330299497)
mad r1.y, r1.y, r1.z, l(0.999866)
mul r1.z, r1.y, r1.x
lt r1.w, |r0.w|, |r0.z|
mad r1.z, r1.z, l(-2.000000), l(1.57079637)
and r1.z, r1.w, r1.z
mad r1.x, r1.x, r1.y, r1.z
lt r1.y, -r0.w, r0.w
and r1.y, r1.y, l(0xc0490fdb)
add r1.x, r1.y, r1.x
min r1.y, -r0.w, -r0.z
max r0.z, -r0.w, -r0.z
lt r0.w, r1.y, -r1.y
ge r0.z, r0.z, -r0.z
and r0.z, r0.z, r0.w
movc r0.z, r0.z, -r1.x, r1.x
add r0.z, r0.z, l(3.141590)
mul r1.x, r0.z, l(0.159155071)
mad r0.z, |r0.x|, l(0.500000), l(0.500000)
mul r1.y, r0.z, -r0.x
mul_sat r0.z, r0.y, cb1[15].z
mul r0.w, r0.z, cb1[15].x
mov_sat r1.z, -r0.x
mul r1.z, r1.z, r1.z
mad r1.z, r1.z, cb1[15].y, l(1.000000)
div r1.z, l(1.000000, 1.000000, 1.000000, 1.000000), r1.z
mul r0.w, r0.w, r1.z
add r2.xyzw, r1.xyxy, -cb1[14].xyzw
mul r2.xyzw, r2.xyzw, l(8.000000, 3.000000, 25.000000, 8.000000)
sample_indexable(texture2d)(float,float,float,float) r1.xy, r2.zwzz, t13.ywxz, s13
add r1.xy, r1.xyxx, l(-0.500000, -0.500000, 0.000000, 0.000000)
mul r3.yz, r1.xxyx, l(0.000000, 0.750000, 0.750000, 0.000000)
sample_indexable(texture2d)(float,float,float,float) r1.xyw, r2.xyxx, t13.xyzw, s13
mov r3.w, l(-0.000000)
add r1.xyw, r3.wywz, r1.xyxw
add r1.xyw, r1.xyxw, l(0.000000, -0.500000, 0.000000, -0.500000)
mul r2.xy, r0.wwww, r1.wyww
mad r2.xy, r2.xyxx, r1.xxxx, v1.xyxx
dp2 r0.w, r1.ywyy, r1.ywyy
sqrt r0.w, r0.w
mad r0.w, r1.z, l(0.300000), r0.w
mul r0.z, r0.z, r0.w
mul r0.z, r1.z, r0.z
mul r0.z, r0.z, cb1[15].w
mul_sat r0.z, r1.x, r0.z
sample_indexable(texture2d)(float,float,float,float) r0.w, r2.xyxx, t2.yzwx, s2
mad r0.w, r0.w, cb1[2].z, cb1[2].w
div r0.y, l(1.000000, 1.000000, 1.000000, 1.000000), r0.w
else
mov r2.xy, v1.xyxx
mov r0.z, l(0)
endif
sample_indexable(texture2d)(float,float,float,float) r1.xyz, r2.xyxx, t1.xyzw, s1
sample_indexable(texture2d)(float,float,float,float) r3.xyz, r2.xyxx, t3.xyzw, s3
sample_indexable(texture2d)(float,float,float,float) r4.xyz, r2.xyxx, t4.xyzw, s4
sample_indexable(texture2d)(float,float,float,float) r5.xyz, r2.xyxx, t0.xyzw, s0
mov_sat r0.x, r0.x
mul r0.x, r0.x, r0.x
mad r0.x, r0.x, cb1[13].x, l(1.000000)
mad_sat r0.y, r0.y, cb1[4].x, -cb1[4].y
div r0.x, r0.y, r0.x
mad_sat r0.x, r0.x, cb1[0].w, cb1[0].z
add r0.x, r0.x, l(-0.100000)
mul_sat r0.x, r0.x, l(16.000000)
sample_indexable(texture2d)(float,float,float,float) r0.y, r2.xyxx, t14.yxzw, s14
add r0.x, r0.y, r0.x
mul r0.y, r0.z, l(4.000000)
min r0.y, r0.y, l(1.000000)
add_sat r0.x, r0.y, r0.x
add r0.yzw, r1.xxyz, -r5.xxyz
mad r0.xyz, r0.xxxx, r0.yzwy, r5.xyzx
sample_indexable(texture2d)(float,float,float,float) r1.xyz, r2.xyxx, t10.xyzw, s10
mad r1.xyz, r1.xyzx, cb1[3].zzzz, cb1[3].yyyy
mul r1.xyz, r1.xyzx, r4.xyzx
mad r1.xyz, r3.xyzx, cb1[3].xxxx, r1.xyzx
mad r0.xyz, r0.xyzx, cb1[2].xxxx, r1.xyzx
eq r0.w, cb1[13].z, l(0.000000)
if_nz r0.w
sample_indexable(texture2d)(float,float,float,float) r1.xyz, v1.xyxx, t9.xyzw, s9
add r1.xyz, r1.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000)
mad r1.xyz, cb1[2].yyyy, r1.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
mul r1.xyz, r0.xyzx, r1.xyzx
else
mad r2.xy, v1.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000)
mad r2.xy, |r2.xyxx|, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
add r2.xy, -r2.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000)
sample_indexable(texture2d)(float,float,float,float) r2.xyz, r2.xyxx, t9.xyzw, s9
mad r2.xyz, r2.xyzx, r2.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000)
mad r2.xyz, cb1[2].yyyy, r2.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
mul r1.xyz, r0.xyzx, r2.xyzx
endif
mul r0.xyz, r1.xyzx, -cb1[10].xxxx
exp r0.xyz, r0.xyzx
add r0.xyz, -r0.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
mul r0.xyz, r0.xyzx, cb1[1].xyzx
sqrt r0.xyz, r0.xyzx
min r0.xyz, r0.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
mad r0.xyz, r0.xyzx, l(0.968750, 0.968750, 0.968750, 0.000000), l(0.015625, 0.015625, 0.015625, 0.000000)
sample_indexable(texture3d)(float,float,float,float) r0.xyz, r0.xyzx, t11.xyzw, s11
mul r0.xyz, r0.xyzx, r0.xyzx
mad_sat r0.xyz, r0.xyzx, cb1[12].xxxx, cb1[12].yyyy
dp3 r0.w, r0.xyzx, l(0.299000, 0.587000, 0.114000, 0.000000)
sqrt o0.w, r0.w
mov o0.xyz, r0.xyzx
ret
// Approximately 126 instruction slots used

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

Acer H5360 (1280x720@120Hz) - ASUS VG248QE with GSync mod - 3D Vision 1&2 - Driver 372.54
GTX 970 - i5-4670K@4.2GHz - 12GB RAM - Win7x64+evilKB2670838 - 4 Disk X25 RAID
SAGER NP9870-S - GTX 980 - i7-6700K - Win10 Pro 1607
Latest 3Dmigoto Release
Bo3b's School for ShaderHackers

#78
Posted 01/24/2016 02:04 AM   
That is great news gents ! I`ve seen the update for 3Dmigoto and been hoping for some good response. Even if I`ve already finished this game I would love to go back to it - especially that some DLCs coming in future. Also at this point game works great. Only let down is that mentioned by all loading time - SSD doesn`t help much.
That is great news gents ! I`ve seen the update for 3Dmigoto and been hoping for some good response. Even if I`ve already finished this game I would love to go back to it - especially that some DLCs coming in future.
Also at this point game works great. Only let down is that mentioned by all loading time - SSD doesn`t help much.
double post
double post
Yes - really great news bo3b ! I wanted to be helpfull, I've tried at least 40 profiles (very tedious), but no dice the glitch remains :/ Edit: What the F... is wrong with the servers these days, extreme response times GRRRRRR....
Yes - really great news bo3b !

I wanted to be helpfull, I've tried at least 40 profiles (very tedious), but no dice the glitch remains :/

Edit: What the F... is wrong with the servers these days, extreme response times GRRRRRR....

Win7 64bit Pro
CPU: 4790K 4.8 GHZ
GPU: Aurus 1080 TI 2.08 GHZ - 100% Watercooled !
Monitor: Asus PG278QR
And lots of ram and HD's ;)

#81
Posted 01/24/2016 11:10 AM   
[quote="bo3b"]I tested this yesterday, and doing the hook=all works to allow the game to be loaded with 3DMigoto. Dumps some 1500 shaders.[/quote]Niiice!!! This was another game I wanted to try to get working in 3DMigoto, but it sounds like making MGSV work killed three birds with one stone :)
bo3b said:I tested this yesterday, and doing the hook=all works to allow the game to be loaded with 3DMigoto. Dumps some 1500 shaders.
Niiice!!! This was another game I wanted to try to get working in 3DMigoto, but it sounds like making MGSV work killed three birds with one stone :)

2x Geforce GTX 980 in SLI provided by NVIDIA, i7 6700K 4GHz CPU, Asus 27" VG278HE 144Hz 3D Monitor, BenQ W1070 3D Projector, 120" Elite Screens YardMaster 2, 32GB Corsair DDR4 3200MHz RAM, Samsung 850 EVO 500G SSD, 4x750GB HDD in RAID5, Gigabyte Z170X-Gaming 7 Motherboard, Corsair Obsidian 750D Airflow Edition Case, Corsair RM850i PSU, HTC Vive, Win 10 64bit

Alienware M17x R4 w/ built in 3D, Intel i7 3740QM, GTX 680m 2GB, 16GB DDR3 1600MHz RAM, Win7 64bit, 1TB SSD, 1TB HDD, 750GB HDD

Pre-release 3D fixes, shadertool.py and other goodies: http://github.com/DarkStarSword/3d-fixes
Support me on Patreon: https://www.patreon.com/DarkStarSword or PayPal: https://www.paypal.me/DarkStarSword

#82
Posted 01/24/2016 02:12 PM   
Great news bo3b!! To fix the lighs, shadows and decals we need the VS related. Can you upload also the VS related to that PS to take a look and compare to Mad Max fix. I don't have the game, but if the pattern is the same or similar i can do something. Also looking the PS, seems is related to other effect (look the headers: texture, heat haze, blur, focus..).....maybe disabling affects shadows/lights...but seems related to other effect. In Mad Max all shaders related to shadows/lights have in the header: LightPositions / InlineShadowMapTexture
Great news bo3b!!

To fix the lighs, shadows and decals we need the VS related. Can you upload also the VS related to that PS to take a look and compare to Mad Max fix. I don't have the game, but if the pattern is the same or similar i can do something.

Also looking the PS, seems is related to other effect (look the headers: texture, heat haze, blur, focus..).....maybe disabling affects shadows/lights...but seems related to other effect. In Mad Max all shaders related to shadows/lights have in the header: LightPositions / InlineShadowMapTexture

MY WEB

Helix Mod - Making 3D Better

My 3D Screenshot Gallery

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

#83
Posted 01/24/2016 02:13 PM   
Yeah it's awesome that hooking allows us to get into this game. I'm pretty sure that this is bug in JC3 itself, if I set logging to debug I can get into the game with just our normal wrapping, but it's super slow of course. The crash is related to audio somehow right at the resume screen. For the VS, it's just a pass through here: [code]// ---- Created with 3Dmigoto v1.2.26 on Fri Jan 22 02:29:19 2016 // 3Dmigoto declarations #define cmp - Texture1D<float4> IniParams : register(t120); Texture2D<float4> StereoParams : register(t125); void main( float2 v0 : POSITION0, out float4 o0 : SV_Position0, out float4 o1 : TEXCOORD0) { o0.xy = v0.xy; o0.zw = float2(1,1); o1.xyzw = v0.xyxy * float4(0.5,-0.5,0.0500000007,-0.0500000007) + float4(0.5,0.5,0.0500000007,0.0500000007); return; } /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 // // using 3Dmigoto v1.2.26 on Fri Jan 22 02:29:19 2016 // // // // Input signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // POSITION 0 xy 0 NONE float xy // // // Output signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // SV_Position 0 xyzw 0 POS float xyzw // TEXCOORD 0 xyzw 1 NONE float xyzw // vs_5_0 dcl_globalFlags refactoringAllowed dcl_input v0.xy dcl_output_siv o0.xyzw, position dcl_output o1.xyzw mov o0.xy, v0.xyxx mov o0.zw, l(0,0,1.000000,1.000000) mad o1.xyzw, v0.xyxy, l(0.500000, -0.500000, 0.050000, -0.050000), l(0.500000, 0.500000, 0.050000, 0.050000) ret // Approximately 4 instruction slots used ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ [/code] Here's what it looks like with the PS selected, pretty sure this is the right shader: [img]https://forums.geforce.com/cmd/default/download-comment-attachment/67959/[/img] It's seems vaguely related to the MadMax setup, using Consts for example, but I couldn't see enough of a correlation to make even an educated guess on what to try. It looks to me like this will need some frame-analysis to dump the Consts array to look for suspect matrices. [quote="Blacksmith56"]Yes - really great news bo3b ! I wanted to be helpfull, I've tried at least 40 profiles (very tedious), but no dice the glitch remains :/[/quote] Really appreciate the effort you put here to try profiles. Still worth the effort because that tells us we have to take a different approach to fix those screen depth textures. I disabled SLI to no effect, which was what worked on Crysis. Maybe a different driver? BTW, I can only work on this slowly, so if anyone else is motivated, please jump in.
Yeah it's awesome that hooking allows us to get into this game. I'm pretty sure that this is bug in JC3 itself, if I set logging to debug I can get into the game with just our normal wrapping, but it's super slow of course. The crash is related to audio somehow right at the resume screen.

For the VS, it's just a pass through here:

// ---- Created with 3Dmigoto v1.2.26 on Fri Jan 22 02:29:19 2016



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


void main(
float2 v0 : POSITION0,
out float4 o0 : SV_Position0,
out float4 o1 : TEXCOORD0)
{
o0.xy = v0.xy;
o0.zw = float2(1,1);
o1.xyzw = v0.xyxy * float4(0.5,-0.5,0.0500000007,-0.0500000007) + float4(0.5,0.5,0.0500000007,0.0500000007);
return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
// using 3Dmigoto v1.2.26 on Fri Jan 22 02:29:19 2016
//
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// POSITION 0 xy 0 NONE float xy
//
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Position 0 xyzw 0 POS float xyzw
// TEXCOORD 0 xyzw 1 NONE float xyzw
//
vs_5_0
dcl_globalFlags refactoringAllowed
dcl_input v0.xy
dcl_output_siv o0.xyzw, position
dcl_output o1.xyzw
mov o0.xy, v0.xyxx
mov o0.zw, l(0,0,1.000000,1.000000)
mad o1.xyzw, v0.xyxy, l(0.500000, -0.500000, 0.050000, -0.050000), l(0.500000, 0.500000, 0.050000, 0.050000)
ret
// Approximately 4 instruction slots used

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


Here's what it looks like with the PS selected, pretty sure this is the right shader:

Image


It's seems vaguely related to the MadMax setup, using Consts for example, but I couldn't see enough of a correlation to make even an educated guess on what to try.

It looks to me like this will need some frame-analysis to dump the Consts array to look for suspect matrices.


Blacksmith56 said:Yes - really great news bo3b !

I wanted to be helpfull, I've tried at least 40 profiles (very tedious), but no dice the glitch remains :/

Really appreciate the effort you put here to try profiles. Still worth the effort because that tells us we have to take a different approach to fix those screen depth textures.

I disabled SLI to no effect, which was what worked on Crysis. Maybe a different driver?

BTW, I can only work on this slowly, so if anyone else is motivated, please jump in.

Acer H5360 (1280x720@120Hz) - ASUS VG248QE with GSync mod - 3D Vision 1&2 - Driver 372.54
GTX 970 - i5-4670K@4.2GHz - 12GB RAM - Win7x64+evilKB2670838 - 4 Disk X25 RAID
SAGER NP9870-S - GTX 980 - i7-6700K - Win10 Pro 1607
Latest 3Dmigoto Release
Bo3b's School for ShaderHackers

#84
Posted 01/25/2016 12:18 AM   
@DHR: If you want to take a look for Mad Max comparison, here is the entire ShaderCache folder: [url]http://sg.bo3b.net/jc3/ShaderCache.7z[/url] I've also asked PirateGuyBrush to pick this game up for a shared ShaderHacker account.
@DHR: If you want to take a look for Mad Max comparison, here is the entire ShaderCache folder:

http://sg.bo3b.net/jc3/ShaderCache.7z


I've also asked PirateGuyBrush to pick this game up for a shared ShaderHacker account.

Acer H5360 (1280x720@120Hz) - ASUS VG248QE with GSync mod - 3D Vision 1&2 - Driver 372.54
GTX 970 - i5-4670K@4.2GHz - 12GB RAM - Win7x64+evilKB2670838 - 4 Disk X25 RAID
SAGER NP9870-S - GTX 980 - i7-6700K - Win10 Pro 1607
Latest 3Dmigoto Release
Bo3b's School for ShaderHackers

#85
Posted 01/25/2016 01:06 AM   
Thanks bo3b! I just saw the PM from PirateGuyBrush. I eventually buy this game...but not now. I have MGSV TPP waiting and i go to vacation on 2/15 so i probably will not have time to look right now. Doing a quick look, i do a search for "ShadowMapTexture" and found a few shaders with similar pattern, like this one 16d7544196bd5fd4-ps_replace.txt. Shaders are not the same, but similar. I can be wrong, but the shaders are very similar. [code] cbuffer GlobalConstants : register(b0) { float4 Globals[95] : packoffset(c0); } SamplerState BilinearClampSampler_s : register(s0); SamplerState CloudShadowMap_s : register(s13); SamplerComparisonState ShadowComparisonFilter_s : register(s15); Texture2D<float4> NormalTexture : register(t0); Texture2D<float4> DepthTexture : register(t1); Texture2D<float4> StencilMask : register(t3); Texture2D<float4> CloudShadowMap : register(t13); Texture2DArray<float4> ShadowMapTexture : register(t14); Texture2D<float4> HorizonMap0 : register(t44); Texture2D<float4> HorizonMap1 : register(t45); // 3Dmigoto declarations #define cmp - Texture1D<float4> IniParams : register(t120); Texture2D<float4> StereoParams : register(t125); void main( float4 v0 : SV_Position0, float4 v1 : TEXCOORD0, float2 v2 : TEXCOORD1, out float3 o0 : SV_Target0) { float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10; uint4 bitmask, uiDest; float4 fDest; r0.xy = (int2)v0.xy; r0.zw = float2(0,0); r1.x = StencilMask.Load(r0.xyw).w; r1.x = cmp(0.5 < r1.x); if (r1.x != 0) { r1.x = DepthTexture.Load(r0.xyw).x; r1.y = cmp(0 < r1.x); if (r1.y != 0) { r0.xyz = NormalTexture.Load(r0.xyz).xyz; r0.xyz = r0.xyz * float3(2,2,2) + float3(-1,-1,-1); r0.w = dot(r0.xyz, r0.xyz); r0.w = rsqrt(r0.w); r0.xyz = r0.xyz * r0.www; r0.w = r1.x * Globals[9].z + Globals[9].w; r0.w = 1 / r0.w; r1.xyz = v1.xyz * r0.www; ----> Correct "r1" here, but we need the VS related to take the matrices r2.xyz = r0.www * v1.xyz + Globals[4].xyz; r0.w = dot(-v1.xyz, -v1.xyz); r0.w = rsqrt(r0.w); r3.xyz = -v1.xyz * r0.www; r0.w = dot(v0.xy, float2(12.9898005,78.2330017)); r0.w = sin(r0.w); r0.w = 43758.5469 * r0.w; r0.w = frac(r0.w); sincos(r0.w, r4.x, r5.x); r4.yzw = Globals[46].xyz * r1.yyy; r4.yzw = r1.xxx * Globals[45].xyz + r4.yzw; r4.yzw = r1.zzz * Globals[47].xyz + r4.yzw; r4.yzw = Globals[48].xyz + r4.yzw; r6.x = Globals[56].x; r6.z = 1; r5.yzw = r4.yzw * r6.xxz + Globals[62].xyz; r0.w = max(abs(r5.y), abs(r5.z)); r0.w = r0.w * Globals[56].z + Globals[56].w; r1.y = cmp(r0.w < 1); r6.xyz = r1.yyy ? r5.yzw : float3(-1,-1,-1); r1.w = r1.y ? Globals[62].w : -1; r0.w = r1.y ? r0.w : 0; r6.w = r1.y ? Globals[56].y : -1; r7.x = Globals[55].x; r7.z = 1; r5.yzw = r4.yzw * r7.xxz + Globals[61].xyz; r1.y = max(abs(r5.y), abs(r5.z)); r1.y = r1.y * Globals[55].z + Globals[55].w; r2.w = cmp(r1.y < 1); r7.xyz = r2.www ? r5.yzw : r6.xyz; r3.w = r2.w ? Globals[61].w : r1.w; r8.xyzw = r2.wwww ? r6.xyzw : float4(-1,-1,-1,-1); r0.w = r2.w ? r1.y : r0.w; r1.y = r2.w ? r1.w : -1; r7.w = r2.w ? Globals[55].y : r6.w; r6.x = Globals[54].x; r6.z = 1; r5.yzw = r4.yzw * r6.xxz + Globals[60].xyz; r1.w = max(abs(r5.y), abs(r5.z)); r1.w = r1.w * Globals[54].z + Globals[54].w; r2.w = cmp(r1.w < 1); r6.xyz = r2.www ? r5.yzw : r7.xyz; r5.y = r2.w ? Globals[60].w : r3.w; r8.xyzw = r2.wwww ? r7.xyzw : r8.xyzw; r0.w = r2.w ? r1.w : r0.w; r1.y = r2.w ? r3.w : r1.y; r6.w = r2.w ? Globals[54].y : r7.w; r7.x = Globals[53].x; r7.z = 1; r7.xyz = r4.yzw * r7.xxz + Globals[59].xyz; r1.w = max(abs(r7.x), abs(r7.y)); r1.w = r1.w * Globals[53].z + Globals[53].w; r2.w = cmp(r1.w < 1); r7.xyw = r2.www ? r7.xyz : r6.xyz; r3.w = r2.w ? Globals[59].w : r5.y; r0.w = r2.w ? r1.w : r0.w; r1.y = r2.w ? r5.y : r1.y; r7.z = r2.w ? Globals[53].y : r6.w; r6.xyzw = r2.wwww ? r6.xyzw : r8.xyzw; r8.x = Globals[52].x; r8.z = 1; r5.yzw = r4.yzw * r8.xxz + Globals[58].xyz; r1.w = max(abs(r5.y), abs(r5.z)); r1.w = r1.w * Globals[52].z + Globals[52].w; r2.w = cmp(r1.w < 1); r8.xyz = r2.www ? r5.yzw : r7.xyw; r8.w = r2.w ? Globals[58].w : r3.w; r5.yz = r2.ww ? r7.xy : r6.xy; r6.xy = r2.ww ? r7.wz : r6.zw; r0.w = r2.w ? r1.w : r0.w; r1.y = r2.w ? r3.w : r1.y; r1.w = r2.w ? Globals[52].y : r7.z; r7.x = Globals[51].x; r7.z = 1; r4.yzw = r4.yzw * r7.xxz + Globals[57].xyz; r2.w = max(abs(r4.y), abs(r4.z)); r2.w = r2.w * Globals[51].z + Globals[51].w; r3.w = cmp(r2.w < 1); r4.yz = r3.ww ? r4.yz : r8.xy; r5.yz = r3.ww ? r8.xy : r5.yz; r1.y = r3.w ? r8.w : r1.y; r7.z = r3.w ? Globals[51].y : r1.w; r0.w = saturate(r3.w ? r2.w : r0.w); r6.zw = r8.zw; r2.w = saturate(r3.w ? r4.w : r6.z); r4.w = r3.w ? Globals[57].w : r6.w; r5.w = saturate(r3.w ? r8.z : r6.x); r6.z = r3.w ? r1.w : r6.y; r4.yz = r4.yz * float2(0.5,-0.5) + float2(0.5,0.5); r5.yz = r5.yz * float2(0.5,-0.5) + float2(0.5,0.5); r1.w = Globals[49].z * r4.w; r8.xz = r4.xx; r8.yw = r5.xx; r9.xyzw = r8.zwzw * r1.wwww; r4.xw = r9.zz * float2(-0.942016244,-0.399062157) + r4.yz; r7.x = r9.w * -0.399062157 + r4.x; r7.y = -r9.w * -0.942016244 + r4.w; r10.xyzw = float4(-2.11949991e-005,-1.91399995e-005,-1.05449999e-005,-1.32149999e-005) + r2.wwww; r1.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r7.xyz, r10.x).x; r4.xw = r9.zz * float2(0.945586085,-0.768907249) + r4.yz; r7.x = r9.w * -0.768907249 + r4.x; r7.y = -r9.w * 0.945586085 + r4.w; r3.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r7.xyz, r10.y).x; r1.w = r3.w + r1.w; r4.xw = r9.zz * float2(-0.0941841006,-0.929388702) + r4.yz; r7.x = r9.w * -0.929388702 + r4.x; r7.y = -r9.w * -0.0941841006 + r4.w; r3.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r7.xyz, r10.z).x; r1.w = r3.w + r1.w; r4.xw = r9.zz * float2(0.344959378,0.293877602) + r4.yz; r7.x = r9.w * 0.293877602 + r4.x; r7.y = -r9.w * 0.344959378 + r4.w; r3.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r7.xyz, r10.w).x; r1.w = r3.w + r1.w; r4.xw = r9.zz * float2(-0.915885806,0.457714319) + r4.yz; r7.x = r9.w * 0.457714319 + r4.x; r7.y = -r9.w * -0.915885806 + r4.w; r10.xyzw = float4(-2.21249993e-005,-1.668e-005,-1.11150002e-005,-1.20450004e-005) + r2.wwww; r3.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r7.xyz, r10.x).x; r1.w = r3.w + r1.w; r4.xw = r9.zz * float2(-0.815442324,-0.879124641) + r4.yz; r7.x = r9.w * -0.879124641 + r4.x; r7.y = -r9.w * -0.815442324 + r4.w; r3.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r7.xyz, r10.y).x; r1.w = r3.w + r1.w; r4.xw = r9.zz * float2(-0.382775426,0.276768446) + r4.yz; r7.x = r9.w * 0.276768446 + r4.x; r7.y = -r9.w * -0.382775426 + r4.w; r3.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r7.xyz, r10.z).x; r1.w = r3.w + r1.w; r4.xw = r9.zz * float2(0.974843979,0.756483793) + r4.yz; r7.x = r9.w * 0.756483793 + r4.x; r7.y = -r9.w * 0.974843979 + r4.w; r3.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r7.xyz, r10.w).x; r1.w = r3.w + r1.w; r4.xw = r9.zz * float2(0.443233252,-0.975115538) + r4.yz; r7.x = r9.w * -0.975115538 + r4.x; r7.y = -r9.w * 0.443233252 + r4.w; r10.xyzw = float4(-2.08500005e-005,-7.50000027e-007,-2.12399991e-005,-2.02350002e-005) + r2.wwww; r3.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r7.xyz, r10.x).x; r1.w = r3.w + r1.w; r4.xw = r9.zz * float2(0.53742981,-0.4737342) + r4.yz; r7.x = r9.w * -0.4737342 + r4.x; r7.y = -r9.w * 0.53742981 + r4.w; r3.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r7.xyz, r10.y).x; r1.w = r3.w + r1.w; r4.xw = r9.zz * float2(-0.26496911,-0.418930233) + r4.yz; r7.x = r9.w * -0.418930233 + r4.x; r7.y = -r9.w * -0.26496911 + r4.w; r3.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r7.xyz, r10.z).x; r1.w = r3.w + r1.w; r4.xw = r9.zz * float2(0.791975141,0.190901875) + r4.yz; r7.x = r9.w * 0.190901875 + r4.x; r7.y = -r9.w * 0.791975141 + r4.w; r3.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r7.xyz, r10.w).x; r1.w = r3.w + r1.w; r4.xw = r9.zz * float2(-0.241888404,0.997065067) + r4.yz; r7.x = r9.w * 0.997065067 + r4.x; r7.y = -r9.w * -0.241888404 + r4.w; r10.xyzw = float4(-3.64500011e-006,-5.84999998e-006,-2.06099994e-005,-6.70500003e-006) + r2.wwww; r2.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r7.xyz, r10.x).x; r1.w = r2.w + r1.w; r4.xw = r9.zz * float2(-0.81409955,0.914375901) + r4.yz; r7.x = r9.w * 0.914375901 + r4.x; r7.y = -r9.w * -0.81409955 + r4.w; r2.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r7.xyz, r10.y).x; r1.w = r2.w + r1.w; r4.xw = r9.zz * float2(0.199841261,0.78641367) + r4.yz; r7.x = r9.w * 0.78641367 + r4.x; r7.y = -r9.w * 0.199841261 + r4.w; r2.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r7.xyz, r10.z).x; r1.w = r2.w + r1.w; r4.xy = r9.xz * float2(0.143831611,-0.1410079) + r4.yz; r7.x = r9.y * -0.1410079 + r4.x; r7.y = -r9.w * 0.143831611 + r4.y; r2.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r7.xyz, r10.w).x; r1.w = r2.w + r1.w; r1.w = 0.0625 * r1.w; r2.w = cmp(0 < r0.w); if (r2.w != 0) { r1.y = Globals[49].z * r1.y; r4.xyzw = r8.xyzw * r1.yyyy; r7.xy = r4.zz * float2(-0.942016244,-0.399062157) + r5.yz; r6.x = r4.w * -0.399062157 + r7.x; r6.y = -r4.w * -0.942016244 + r7.y; r7.xyzw = float4(-2.11949991e-005,-1.91399995e-005,-1.05449999e-005,-1.32149999e-005) + r5.wwww; r1.y = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r6.xyz, r7.x).x; r8.xy = r4.zz * float2(0.945586085,-0.768907249) + r5.yz; r6.x = r4.w * -0.768907249 + r8.x; r6.y = -r4.w * 0.945586085 + r8.y; r2.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r6.xyz, r7.y).x; r1.y = r2.w + r1.y; r7.xy = r4.zz * float2(-0.0941841006,-0.929388702) + r5.yz; r6.x = r4.w * -0.929388702 + r7.x; r6.y = -r4.w * -0.0941841006 + r7.y; r2.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r6.xyz, r7.z).x; r1.y = r2.w + r1.y; r7.xy = r4.zz * float2(0.344959378,0.293877602) + r5.yz; r6.x = r4.w * 0.293877602 + r7.x; r6.y = -r4.w * 0.344959378 + r7.y; r2.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r6.xyz, r7.w).x; r1.y = r2.w + r1.y; r7.xy = r4.zz * float2(-0.915885806,0.457714319) + r5.yz; r6.x = r4.w * 0.457714319 + r7.x; r6.y = -r4.w * -0.915885806 + r7.y; r7.xyzw = float4(-2.21249993e-005,-1.668e-005,-1.11150002e-005,-1.20450004e-005) + r5.wwww; r2.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r6.xyz, r7.x).x; r1.y = r2.w + r1.y; r8.xy = r4.zz * float2(-0.815442324,-0.879124641) + r5.yz; r6.x = r4.w * -0.879124641 + r8.x; r6.y = -r4.w * -0.815442324 + r8.y; r2.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r6.xyz, r7.y).x; r1.y = r2.w + r1.y; r7.xy = r4.zz * float2(-0.382775426,0.276768446) + r5.yz; r6.x = r4.w * 0.276768446 + r7.x; r6.y = -r4.w * -0.382775426 + r7.y; r2.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r6.xyz, r7.z).x; r1.y = r2.w + r1.y; r7.xy = r4.zz * float2(0.974843979,0.756483793) + r5.yz; r6.x = r4.w * 0.756483793 + r7.x; r6.y = -r4.w * 0.974843979 + r7.y; r2.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r6.xyz, r7.w).x; r1.y = r2.w + r1.y; r7.xy = r4.zz * float2(0.443233252,-0.975115538) + r5.yz; r6.x = r4.w * -0.975115538 + r7.x; r6.y = -r4.w * 0.443233252 + r7.y; r7.xyzw = float4(-2.08500005e-005,-7.50000027e-007,-2.12399991e-005,-2.02350002e-005) + r5.wwww; r2.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r6.xyz, r7.x).x; r1.y = r2.w + r1.y; r8.xy = r4.zz * float2(0.53742981,-0.4737342) + r5.yz; r6.x = r4.w * -0.4737342 + r8.x; r6.y = -r4.w * 0.53742981 + r8.y; r2.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r6.xyz, r7.y).x; r1.y = r2.w + r1.y; r7.xy = r4.zz * float2(-0.26496911,-0.418930233) + r5.yz; r6.x = r4.w * -0.418930233 + r7.x; r6.y = -r4.w * -0.26496911 + r7.y; r2.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r6.xyz, r7.z).x; r1.y = r2.w + r1.y; r7.xy = r4.zz * float2(0.791975141,0.190901875) + r5.yz; r6.x = r4.w * 0.190901875 + r7.x; r6.y = -r4.w * 0.791975141 + r7.y; r2.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r6.xyz, r7.w).x; r1.y = r2.w + r1.y; r7.xy = r4.zz * float2(-0.241888404,0.997065067) + r5.yz; r6.x = r4.w * 0.997065067 + r7.x; r6.y = -r4.w * -0.241888404 + r7.y; r7.xyzw = float4(-3.64500011e-006,-5.84999998e-006,-2.06099994e-005,-6.70500003e-006) + r5.wwww; r2.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r6.xyz, r7.x).x; r1.y = r2.w + r1.y; r5.xw = r4.zz * float2(-0.81409955,0.914375901) + r5.yz; r6.x = r4.w * 0.914375901 + r5.x; r6.y = -r4.w * -0.81409955 + r5.w; r2.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r6.xyz, r7.y).x; r1.y = r2.w + r1.y; r5.xw = r4.zz * float2(0.199841261,0.78641367) + r5.yz; r6.x = r4.w * 0.78641367 + r5.x; r6.y = -r4.w * 0.199841261 + r5.w; r2.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r6.xyz, r7.z).x; r1.y = r2.w + r1.y; r4.xz = r4.xz * float2(0.143831611,-0.1410079) + r5.yz; r6.x = r4.y * -0.1410079 + r4.x; r6.y = -r4.w * 0.143831611 + r4.z; r2.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r6.xyz, r7.w).x; r1.y = r2.w + r1.y; r1.y = r1.y * 0.0625 + -r1.w; r1.w = r0.w * r1.y + r1.w; } r0.w = saturate(r1.w * Globals[9].x + Globals[9].y); r4.xyz = Globals[17].xyw * r2.yyy; r4.xyz = r2.xxx * Globals[16].xyw + r4.xyz; r4.xyz = r2.zzz * Globals[18].xyw + r4.xyz; r4.xyz = Globals[19].xyw + r4.xyz; r1.yw = r4.xy / r4.zz; r4.xy = float2(-0.5,-0.5) + r1.yw; r4.xy = float2(-0.400000006,-0.400000006) + abs(r4.xy); r4.xy = saturate(float2(10,10) * r4.xy); r4.xy = float2(1,1) + -r4.xy; r1.y = CloudShadowMap.SampleLevel(CloudShadowMap_s, r1.yw, 0).x; r1.y = r1.y * r4.x; r1.y = saturate(-r1.y * r4.y + 1); r0.w = Globals[3].w * r0.w; r2.xz = r2.xz * float2(3.05175781e-005,3.05175781e-005) + float2(0.5,0.5); r1.w = HorizonMap0.SampleLevel(BilinearClampSampler_s, r2.xz, 0).x; r2.x = HorizonMap1.SampleLevel(BilinearClampSampler_s, r2.xz, 0).x; r2.x = r2.x + -r1.w; r1.w = Globals[29].w * r2.x + r1.w; r1.x = dot(r1.xz, r1.xz); r1.x = sqrt(r1.x); r1.x = -1500 + r1.x; r1.x = max(0, r1.x); r1.x = r1.x * 0.03125 + r2.y; r1.x = -r1.w * 4096 + r1.x; r1.x = saturate(Globals[30].w * r1.x + 1); r0.w = r1.x * r0.w; r1.x = -Globals[38].w + r2.y; r1.x = saturate(Globals[39].w * r1.x); r0.w = min(r1.x, r0.w); r1.x = dot(r0.xyz, r3.xyz); r1.z = dot(r0.xyz, -Globals[3].xyz); r1.w = -r1.x * r1.x + 1; r2.x = -r1.z * r1.z + 1; r1.w = saturate(r2.x * r1.w); r1.w = sqrt(r1.w); r2.x = max(r1.x, r1.z); r1.w = r1.w / r2.x; r2.xyz = -r0.xyz * r1.xxx + r3.xyz; r0.xyz = -r0.xyz * r1.zzz + -Globals[3].xyz; r0.x = dot(r2.xyz, r0.xyz); r0.x = r1.w * r0.x; r0.x = saturate(0.184426233 * r0.x); r0.x = 0.950592875 + r0.x; r1.z = saturate(r1.z); r0.x = min(1, r0.x); r0.x = r1.z * r0.x; r1.xzw = Globals[2].xyz + -Globals[0].xyz; r1.xyz = r1.yyy * r1.xzw + Globals[0].xyz; r0.xyz = r1.xyz * r0.xxx; o0.xyz = r0.xyz * r0.www; } else { o0.xyz = float3(0,0,0); } } else { o0.xyz = float3(0,0,0); } return; }[/code]
Thanks bo3b!
I just saw the PM from PirateGuyBrush. I eventually buy this game...but not now. I have MGSV TPP waiting and i go to vacation on 2/15 so i probably will not have time to look right now.


Doing a quick look, i do a search for "ShadowMapTexture" and found a few shaders with similar pattern, like this one 16d7544196bd5fd4-ps_replace.txt. Shaders are not the same, but similar. I can be wrong, but the shaders are very similar.

cbuffer GlobalConstants : register(b0)
{
float4 Globals[95] : packoffset(c0);
}

SamplerState BilinearClampSampler_s : register(s0);
SamplerState CloudShadowMap_s : register(s13);
SamplerComparisonState ShadowComparisonFilter_s : register(s15);
Texture2D<float4> NormalTexture : register(t0);
Texture2D<float4> DepthTexture : register(t1);
Texture2D<float4> StencilMask : register(t3);
Texture2D<float4> CloudShadowMap : register(t13);
Texture2DArray<float4> ShadowMapTexture : register(t14);
Texture2D<float4> HorizonMap0 : register(t44);
Texture2D<float4> HorizonMap1 : register(t45);


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


void main(
float4 v0 : SV_Position0,
float4 v1 : TEXCOORD0,
float2 v2 : TEXCOORD1,
out float3 o0 : SV_Target0)
{
float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10;
uint4 bitmask, uiDest;
float4 fDest;

r0.xy = (int2)v0.xy;
r0.zw = float2(0,0);
r1.x = StencilMask.Load(r0.xyw).w;
r1.x = cmp(0.5 < r1.x);
if (r1.x != 0) {
r1.x = DepthTexture.Load(r0.xyw).x;
r1.y = cmp(0 < r1.x);
if (r1.y != 0) {
r0.xyz = NormalTexture.Load(r0.xyz).xyz;
r0.xyz = r0.xyz * float3(2,2,2) + float3(-1,-1,-1);
r0.w = dot(r0.xyz, r0.xyz);
r0.w = rsqrt(r0.w);
r0.xyz = r0.xyz * r0.www;
r0.w = r1.x * Globals[9].z + Globals[9].w;
r0.w = 1 / r0.w;
r1.xyz = v1.xyz * r0.www;

----> Correct "r1" here, but we need the VS related to take the matrices

r2.xyz = r0.www * v1.xyz + Globals[4].xyz;

r0.w = dot(-v1.xyz, -v1.xyz);
r0.w = rsqrt(r0.w);
r3.xyz = -v1.xyz * r0.www;
r0.w = dot(v0.xy, float2(12.9898005,78.2330017));
r0.w = sin(r0.w);
r0.w = 43758.5469 * r0.w;
r0.w = frac(r0.w);
sincos(r0.w, r4.x, r5.x);
r4.yzw = Globals[46].xyz * r1.yyy;
r4.yzw = r1.xxx * Globals[45].xyz + r4.yzw;
r4.yzw = r1.zzz * Globals[47].xyz + r4.yzw;
r4.yzw = Globals[48].xyz + r4.yzw;
r6.x = Globals[56].x;
r6.z = 1;
r5.yzw = r4.yzw * r6.xxz + Globals[62].xyz;
r0.w = max(abs(r5.y), abs(r5.z));
r0.w = r0.w * Globals[56].z + Globals[56].w;
r1.y = cmp(r0.w < 1);
r6.xyz = r1.yyy ? r5.yzw : float3(-1,-1,-1);
r1.w = r1.y ? Globals[62].w : -1;
r0.w = r1.y ? r0.w : 0;
r6.w = r1.y ? Globals[56].y : -1;
r7.x = Globals[55].x;
r7.z = 1;
r5.yzw = r4.yzw * r7.xxz + Globals[61].xyz;
r1.y = max(abs(r5.y), abs(r5.z));
r1.y = r1.y * Globals[55].z + Globals[55].w;
r2.w = cmp(r1.y < 1);
r7.xyz = r2.www ? r5.yzw : r6.xyz;
r3.w = r2.w ? Globals[61].w : r1.w;
r8.xyzw = r2.wwww ? r6.xyzw : float4(-1,-1,-1,-1);
r0.w = r2.w ? r1.y : r0.w;
r1.y = r2.w ? r1.w : -1;
r7.w = r2.w ? Globals[55].y : r6.w;
r6.x = Globals[54].x;
r6.z = 1;
r5.yzw = r4.yzw * r6.xxz + Globals[60].xyz;
r1.w = max(abs(r5.y), abs(r5.z));
r1.w = r1.w * Globals[54].z + Globals[54].w;
r2.w = cmp(r1.w < 1);
r6.xyz = r2.www ? r5.yzw : r7.xyz;
r5.y = r2.w ? Globals[60].w : r3.w;
r8.xyzw = r2.wwww ? r7.xyzw : r8.xyzw;
r0.w = r2.w ? r1.w : r0.w;
r1.y = r2.w ? r3.w : r1.y;
r6.w = r2.w ? Globals[54].y : r7.w;
r7.x = Globals[53].x;
r7.z = 1;
r7.xyz = r4.yzw * r7.xxz + Globals[59].xyz;
r1.w = max(abs(r7.x), abs(r7.y));
r1.w = r1.w * Globals[53].z + Globals[53].w;
r2.w = cmp(r1.w < 1);
r7.xyw = r2.www ? r7.xyz : r6.xyz;
r3.w = r2.w ? Globals[59].w : r5.y;
r0.w = r2.w ? r1.w : r0.w;
r1.y = r2.w ? r5.y : r1.y;
r7.z = r2.w ? Globals[53].y : r6.w;
r6.xyzw = r2.wwww ? r6.xyzw : r8.xyzw;
r8.x = Globals[52].x;
r8.z = 1;
r5.yzw = r4.yzw * r8.xxz + Globals[58].xyz;
r1.w = max(abs(r5.y), abs(r5.z));
r1.w = r1.w * Globals[52].z + Globals[52].w;
r2.w = cmp(r1.w < 1);
r8.xyz = r2.www ? r5.yzw : r7.xyw;
r8.w = r2.w ? Globals[58].w : r3.w;
r5.yz = r2.ww ? r7.xy : r6.xy;
r6.xy = r2.ww ? r7.wz : r6.zw;
r0.w = r2.w ? r1.w : r0.w;
r1.y = r2.w ? r3.w : r1.y;
r1.w = r2.w ? Globals[52].y : r7.z;
r7.x = Globals[51].x;
r7.z = 1;
r4.yzw = r4.yzw * r7.xxz + Globals[57].xyz;
r2.w = max(abs(r4.y), abs(r4.z));
r2.w = r2.w * Globals[51].z + Globals[51].w;
r3.w = cmp(r2.w < 1);
r4.yz = r3.ww ? r4.yz : r8.xy;
r5.yz = r3.ww ? r8.xy : r5.yz;
r1.y = r3.w ? r8.w : r1.y;
r7.z = r3.w ? Globals[51].y : r1.w;
r0.w = saturate(r3.w ? r2.w : r0.w);
r6.zw = r8.zw;
r2.w = saturate(r3.w ? r4.w : r6.z);
r4.w = r3.w ? Globals[57].w : r6.w;
r5.w = saturate(r3.w ? r8.z : r6.x);
r6.z = r3.w ? r1.w : r6.y;
r4.yz = r4.yz * float2(0.5,-0.5) + float2(0.5,0.5);
r5.yz = r5.yz * float2(0.5,-0.5) + float2(0.5,0.5);
r1.w = Globals[49].z * r4.w;
r8.xz = r4.xx;
r8.yw = r5.xx;
r9.xyzw = r8.zwzw * r1.wwww;
r4.xw = r9.zz * float2(-0.942016244,-0.399062157) + r4.yz;
r7.x = r9.w * -0.399062157 + r4.x;
r7.y = -r9.w * -0.942016244 + r4.w;
r10.xyzw = float4(-2.11949991e-005,-1.91399995e-005,-1.05449999e-005,-1.32149999e-005) + r2.wwww;
r1.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r7.xyz, r10.x).x;
r4.xw = r9.zz * float2(0.945586085,-0.768907249) + r4.yz;
r7.x = r9.w * -0.768907249 + r4.x;
r7.y = -r9.w * 0.945586085 + r4.w;
r3.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r7.xyz, r10.y).x;
r1.w = r3.w + r1.w;
r4.xw = r9.zz * float2(-0.0941841006,-0.929388702) + r4.yz;
r7.x = r9.w * -0.929388702 + r4.x;
r7.y = -r9.w * -0.0941841006 + r4.w;
r3.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r7.xyz, r10.z).x;
r1.w = r3.w + r1.w;
r4.xw = r9.zz * float2(0.344959378,0.293877602) + r4.yz;
r7.x = r9.w * 0.293877602 + r4.x;
r7.y = -r9.w * 0.344959378 + r4.w;
r3.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r7.xyz, r10.w).x;
r1.w = r3.w + r1.w;
r4.xw = r9.zz * float2(-0.915885806,0.457714319) + r4.yz;
r7.x = r9.w * 0.457714319 + r4.x;
r7.y = -r9.w * -0.915885806 + r4.w;
r10.xyzw = float4(-2.21249993e-005,-1.668e-005,-1.11150002e-005,-1.20450004e-005) + r2.wwww;
r3.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r7.xyz, r10.x).x;
r1.w = r3.w + r1.w;
r4.xw = r9.zz * float2(-0.815442324,-0.879124641) + r4.yz;
r7.x = r9.w * -0.879124641 + r4.x;
r7.y = -r9.w * -0.815442324 + r4.w;
r3.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r7.xyz, r10.y).x;
r1.w = r3.w + r1.w;
r4.xw = r9.zz * float2(-0.382775426,0.276768446) + r4.yz;
r7.x = r9.w * 0.276768446 + r4.x;
r7.y = -r9.w * -0.382775426 + r4.w;
r3.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r7.xyz, r10.z).x;
r1.w = r3.w + r1.w;
r4.xw = r9.zz * float2(0.974843979,0.756483793) + r4.yz;
r7.x = r9.w * 0.756483793 + r4.x;
r7.y = -r9.w * 0.974843979 + r4.w;
r3.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r7.xyz, r10.w).x;
r1.w = r3.w + r1.w;
r4.xw = r9.zz * float2(0.443233252,-0.975115538) + r4.yz;
r7.x = r9.w * -0.975115538 + r4.x;
r7.y = -r9.w * 0.443233252 + r4.w;
r10.xyzw = float4(-2.08500005e-005,-7.50000027e-007,-2.12399991e-005,-2.02350002e-005) + r2.wwww;
r3.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r7.xyz, r10.x).x;
r1.w = r3.w + r1.w;
r4.xw = r9.zz * float2(0.53742981,-0.4737342) + r4.yz;
r7.x = r9.w * -0.4737342 + r4.x;
r7.y = -r9.w * 0.53742981 + r4.w;
r3.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r7.xyz, r10.y).x;
r1.w = r3.w + r1.w;
r4.xw = r9.zz * float2(-0.26496911,-0.418930233) + r4.yz;
r7.x = r9.w * -0.418930233 + r4.x;
r7.y = -r9.w * -0.26496911 + r4.w;
r3.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r7.xyz, r10.z).x;
r1.w = r3.w + r1.w;
r4.xw = r9.zz * float2(0.791975141,0.190901875) + r4.yz;
r7.x = r9.w * 0.190901875 + r4.x;
r7.y = -r9.w * 0.791975141 + r4.w;
r3.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r7.xyz, r10.w).x;
r1.w = r3.w + r1.w;
r4.xw = r9.zz * float2(-0.241888404,0.997065067) + r4.yz;
r7.x = r9.w * 0.997065067 + r4.x;
r7.y = -r9.w * -0.241888404 + r4.w;
r10.xyzw = float4(-3.64500011e-006,-5.84999998e-006,-2.06099994e-005,-6.70500003e-006) + r2.wwww;
r2.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r7.xyz, r10.x).x;
r1.w = r2.w + r1.w;
r4.xw = r9.zz * float2(-0.81409955,0.914375901) + r4.yz;
r7.x = r9.w * 0.914375901 + r4.x;
r7.y = -r9.w * -0.81409955 + r4.w;
r2.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r7.xyz, r10.y).x;
r1.w = r2.w + r1.w;
r4.xw = r9.zz * float2(0.199841261,0.78641367) + r4.yz;
r7.x = r9.w * 0.78641367 + r4.x;
r7.y = -r9.w * 0.199841261 + r4.w;
r2.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r7.xyz, r10.z).x;
r1.w = r2.w + r1.w;
r4.xy = r9.xz * float2(0.143831611,-0.1410079) + r4.yz;
r7.x = r9.y * -0.1410079 + r4.x;
r7.y = -r9.w * 0.143831611 + r4.y;
r2.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r7.xyz, r10.w).x;
r1.w = r2.w + r1.w;
r1.w = 0.0625 * r1.w;
r2.w = cmp(0 < r0.w);
if (r2.w != 0) {
r1.y = Globals[49].z * r1.y;
r4.xyzw = r8.xyzw * r1.yyyy;
r7.xy = r4.zz * float2(-0.942016244,-0.399062157) + r5.yz;
r6.x = r4.w * -0.399062157 + r7.x;
r6.y = -r4.w * -0.942016244 + r7.y;
r7.xyzw = float4(-2.11949991e-005,-1.91399995e-005,-1.05449999e-005,-1.32149999e-005) + r5.wwww;
r1.y = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r6.xyz, r7.x).x;
r8.xy = r4.zz * float2(0.945586085,-0.768907249) + r5.yz;
r6.x = r4.w * -0.768907249 + r8.x;
r6.y = -r4.w * 0.945586085 + r8.y;
r2.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r6.xyz, r7.y).x;
r1.y = r2.w + r1.y;
r7.xy = r4.zz * float2(-0.0941841006,-0.929388702) + r5.yz;
r6.x = r4.w * -0.929388702 + r7.x;
r6.y = -r4.w * -0.0941841006 + r7.y;
r2.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r6.xyz, r7.z).x;
r1.y = r2.w + r1.y;
r7.xy = r4.zz * float2(0.344959378,0.293877602) + r5.yz;
r6.x = r4.w * 0.293877602 + r7.x;
r6.y = -r4.w * 0.344959378 + r7.y;
r2.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r6.xyz, r7.w).x;
r1.y = r2.w + r1.y;
r7.xy = r4.zz * float2(-0.915885806,0.457714319) + r5.yz;
r6.x = r4.w * 0.457714319 + r7.x;
r6.y = -r4.w * -0.915885806 + r7.y;
r7.xyzw = float4(-2.21249993e-005,-1.668e-005,-1.11150002e-005,-1.20450004e-005) + r5.wwww;
r2.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r6.xyz, r7.x).x;
r1.y = r2.w + r1.y;
r8.xy = r4.zz * float2(-0.815442324,-0.879124641) + r5.yz;
r6.x = r4.w * -0.879124641 + r8.x;
r6.y = -r4.w * -0.815442324 + r8.y;
r2.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r6.xyz, r7.y).x;
r1.y = r2.w + r1.y;
r7.xy = r4.zz * float2(-0.382775426,0.276768446) + r5.yz;
r6.x = r4.w * 0.276768446 + r7.x;
r6.y = -r4.w * -0.382775426 + r7.y;
r2.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r6.xyz, r7.z).x;
r1.y = r2.w + r1.y;
r7.xy = r4.zz * float2(0.974843979,0.756483793) + r5.yz;
r6.x = r4.w * 0.756483793 + r7.x;
r6.y = -r4.w * 0.974843979 + r7.y;
r2.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r6.xyz, r7.w).x;
r1.y = r2.w + r1.y;
r7.xy = r4.zz * float2(0.443233252,-0.975115538) + r5.yz;
r6.x = r4.w * -0.975115538 + r7.x;
r6.y = -r4.w * 0.443233252 + r7.y;
r7.xyzw = float4(-2.08500005e-005,-7.50000027e-007,-2.12399991e-005,-2.02350002e-005) + r5.wwww;
r2.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r6.xyz, r7.x).x;
r1.y = r2.w + r1.y;
r8.xy = r4.zz * float2(0.53742981,-0.4737342) + r5.yz;
r6.x = r4.w * -0.4737342 + r8.x;
r6.y = -r4.w * 0.53742981 + r8.y;
r2.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r6.xyz, r7.y).x;
r1.y = r2.w + r1.y;
r7.xy = r4.zz * float2(-0.26496911,-0.418930233) + r5.yz;
r6.x = r4.w * -0.418930233 + r7.x;
r6.y = -r4.w * -0.26496911 + r7.y;
r2.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r6.xyz, r7.z).x;
r1.y = r2.w + r1.y;
r7.xy = r4.zz * float2(0.791975141,0.190901875) + r5.yz;
r6.x = r4.w * 0.190901875 + r7.x;
r6.y = -r4.w * 0.791975141 + r7.y;
r2.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r6.xyz, r7.w).x;
r1.y = r2.w + r1.y;
r7.xy = r4.zz * float2(-0.241888404,0.997065067) + r5.yz;
r6.x = r4.w * 0.997065067 + r7.x;
r6.y = -r4.w * -0.241888404 + r7.y;
r7.xyzw = float4(-3.64500011e-006,-5.84999998e-006,-2.06099994e-005,-6.70500003e-006) + r5.wwww;
r2.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r6.xyz, r7.x).x;
r1.y = r2.w + r1.y;
r5.xw = r4.zz * float2(-0.81409955,0.914375901) + r5.yz;
r6.x = r4.w * 0.914375901 + r5.x;
r6.y = -r4.w * -0.81409955 + r5.w;
r2.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r6.xyz, r7.y).x;
r1.y = r2.w + r1.y;
r5.xw = r4.zz * float2(0.199841261,0.78641367) + r5.yz;
r6.x = r4.w * 0.78641367 + r5.x;
r6.y = -r4.w * 0.199841261 + r5.w;
r2.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r6.xyz, r7.z).x;
r1.y = r2.w + r1.y;
r4.xz = r4.xz * float2(0.143831611,-0.1410079) + r5.yz;
r6.x = r4.y * -0.1410079 + r4.x;
r6.y = -r4.w * 0.143831611 + r4.z;
r2.w = ShadowMapTexture.SampleCmpLevelZero(ShadowComparisonFilter_s, r6.xyz, r7.w).x;
r1.y = r2.w + r1.y;
r1.y = r1.y * 0.0625 + -r1.w;
r1.w = r0.w * r1.y + r1.w;
}
r0.w = saturate(r1.w * Globals[9].x + Globals[9].y);
r4.xyz = Globals[17].xyw * r2.yyy;
r4.xyz = r2.xxx * Globals[16].xyw + r4.xyz;
r4.xyz = r2.zzz * Globals[18].xyw + r4.xyz;
r4.xyz = Globals[19].xyw + r4.xyz;
r1.yw = r4.xy / r4.zz;
r4.xy = float2(-0.5,-0.5) + r1.yw;
r4.xy = float2(-0.400000006,-0.400000006) + abs(r4.xy);
r4.xy = saturate(float2(10,10) * r4.xy);
r4.xy = float2(1,1) + -r4.xy;
r1.y = CloudShadowMap.SampleLevel(CloudShadowMap_s, r1.yw, 0).x;
r1.y = r1.y * r4.x;
r1.y = saturate(-r1.y * r4.y + 1);
r0.w = Globals[3].w * r0.w;
r2.xz = r2.xz * float2(3.05175781e-005,3.05175781e-005) + float2(0.5,0.5);
r1.w = HorizonMap0.SampleLevel(BilinearClampSampler_s, r2.xz, 0).x;
r2.x = HorizonMap1.SampleLevel(BilinearClampSampler_s, r2.xz, 0).x;
r2.x = r2.x + -r1.w;
r1.w = Globals[29].w * r2.x + r1.w;
r1.x = dot(r1.xz, r1.xz);
r1.x = sqrt(r1.x);
r1.x = -1500 + r1.x;
r1.x = max(0, r1.x);
r1.x = r1.x * 0.03125 + r2.y;
r1.x = -r1.w * 4096 + r1.x;
r1.x = saturate(Globals[30].w * r1.x + 1);
r0.w = r1.x * r0.w;
r1.x = -Globals[38].w + r2.y;
r1.x = saturate(Globals[39].w * r1.x);
r0.w = min(r1.x, r0.w);
r1.x = dot(r0.xyz, r3.xyz);
r1.z = dot(r0.xyz, -Globals[3].xyz);
r1.w = -r1.x * r1.x + 1;
r2.x = -r1.z * r1.z + 1;
r1.w = saturate(r2.x * r1.w);
r1.w = sqrt(r1.w);
r2.x = max(r1.x, r1.z);
r1.w = r1.w / r2.x;
r2.xyz = -r0.xyz * r1.xxx + r3.xyz;
r0.xyz = -r0.xyz * r1.zzz + -Globals[3].xyz;
r0.x = dot(r2.xyz, r0.xyz);
r0.x = r1.w * r0.x;
r0.x = saturate(0.184426233 * r0.x);
r0.x = 0.950592875 + r0.x;
r1.z = saturate(r1.z);
r0.x = min(1, r0.x);
r0.x = r1.z * r0.x;
r1.xzw = Globals[2].xyz + -Globals[0].xyz;
r1.xyz = r1.yyy * r1.xzw + Globals[0].xyz;
r0.xyz = r1.xyz * r0.xxx;
o0.xyz = r0.xyz * r0.www;
} else {
o0.xyz = float3(0,0,0);
}
} else {
o0.xyz = float3(0,0,0);
}
return;
}

MY WEB

Helix Mod - Making 3D Better

My 3D Screenshot Gallery

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

#86
Posted 01/25/2016 01:50 AM   
I've been jacking around with Google Cardboard recently, and ran across this: [url]https://play.google.com/store/apps/details?id=com.squareenix.jc3companion[/url] This is a 360 video for JC3- and it also works in 3D/VR! That means at some point, they actually supported 3D in the game, enough to make this video at least. The Cardboard quality isn't awesome, but I thought it was notable that it was working in 3D at some point.
I've been jacking around with Google Cardboard recently, and ran across this:

https://play.google.com/store/apps/details?id=com.squareenix.jc3companion

This is a 360 video for JC3- and it also works in 3D/VR!

That means at some point, they actually supported 3D in the game, enough to make this video at least. The Cardboard quality isn't awesome, but I thought it was notable that it was working in 3D at some point.

Acer H5360 (1280x720@120Hz) - ASUS VG248QE with GSync mod - 3D Vision 1&2 - Driver 372.54
GTX 970 - i5-4670K@4.2GHz - 12GB RAM - Win7x64+evilKB2670838 - 4 Disk X25 RAID
SAGER NP9870-S - GTX 980 - i7-6700K - Win10 Pro 1607
Latest 3Dmigoto Release
Bo3b's School for ShaderHackers

#87
Posted 01/25/2016 06:37 AM   
Despite the very bads review of the JC3 WingSiut tour i downloaded the 600+ MB on my phone and test: Is a video SBS, but the right and left eyes have the same offset...it's not 3D....maybe they add a little offset to push the entire video on depth....but not real 3D geometry there.
Despite the very bads review of the JC3 WingSiut tour i downloaded the 600+ MB on my phone and test: Is a video SBS, but the right and left eyes have the same offset...it's not 3D....maybe they add a little offset to push the entire video on depth....but not real 3D geometry there.

MY WEB

Helix Mod - Making 3D Better

My 3D Screenshot Gallery

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

#88
Posted 01/25/2016 04:52 PM   
[quote="DHR"]Despite the very bads review of the JC3 WingSiut tour i downloaded the 600+ MB on my phone and test: Is a video SBS, but the right and left eyes have the same offset...it's not 3D....maybe they add a little offset to push the entire video on depth....but not real 3D geometry there.[/quote] Heh! I just went back to check this, minus the cardboard headset, just doing distance stereo viewing on phone. Yup, 2D. I guess if you have bad enough lenses and make it fill your vision that's close enough to 3D. :-> Might also be their clever use of clear focus on Rico with blurred distances. Tricked me.
DHR said:Despite the very bads review of the JC3 WingSiut tour i downloaded the 600+ MB on my phone and test: Is a video SBS, but the right and left eyes have the same offset...it's not 3D....maybe they add a little offset to push the entire video on depth....but not real 3D geometry there.

Heh! I just went back to check this, minus the cardboard headset, just doing distance stereo viewing on phone.

Yup, 2D. I guess if you have bad enough lenses and make it fill your vision that's close enough to 3D. :-> Might also be their clever use of clear focus on Rico with blurred distances. Tricked me.

Acer H5360 (1280x720@120Hz) - ASUS VG248QE with GSync mod - 3D Vision 1&2 - Driver 372.54
GTX 970 - i5-4670K@4.2GHz - 12GB RAM - Win7x64+evilKB2670838 - 4 Disk X25 RAID
SAGER NP9870-S - GTX 980 - i7-6700K - Win10 Pro 1607
Latest 3Dmigoto Release
Bo3b's School for ShaderHackers

#89
Posted 01/26/2016 07:43 AM   
So any breakthrough regarding this title ? Does the new driver help to reduce the very long loading times?
So any breakthrough regarding this title ?
Does the new driver help to reduce the very long loading times?

CPU: Intel Core i7 4770 @ 3.4GHz (8 CPUs) 8MB cache Motherboard: Gigabyte GA-B85M Memory: 8GB DDR3 1600MHz RAM Operation System : Windows 7 Ultimate 64-bit English Video card : Geforce GTX 680 Zotac 2048MB Monitor : Alienware AW2310 Power-supply: Seasonic SSP-650RT 650W Active PFC

#90
Posted 01/28/2016 01:28 PM   
  6 / 23    
Scroll To Top