Tekken 7: Fated Retribution 3DVision Ready Fix released.
  5 / 9    
Help needed with the specular lights pixel shader (2198988ccc85453d-ps.txt): [code] //Specular, broken. // // Generated by Microsoft (R) D3D Shader Disassembler // // using 3Dmigoto v1.2.57 on Wed Jun 07 20:18:45 2017 // // // Input signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // TEXCOORD 0 xy 0 NONE float xy // TEXCOORD 1 xyz 1 NONE float xyz // SV_POSITION 0 xyzw 2 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[134], immediateIndexed dcl_constantbuffer cb1[8], 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_sampler s7, mode_default dcl_sampler s8, 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) t5 dcl_resource_texture2d (float,float,float,float) t6 dcl_resource_texture2d (float,float,float,float) t7 dcl_resource_texture2d (float,float,float,float) t8 dcl_input_ps linear v0.xy dcl_input_ps linear v1.xyz dcl_input_ps_siv linear noperspective v2.xy, position dcl_output o0.xyzw dcl_temps 14 // 3DMigoto StereoParams: dcl_resource_texture2d (float,float,float,float) t125 ld_indexable(texture2d)(float,float,float,float) r19.xyzw, l(0, 0, 0, 0), t125.xyzw sample_l_indexable(texture2d)(float,float,float,float) r0.xyzw, v0.xyxx, t1.xzyw, s1, l(0.000000) mul r0.w, r0.w, l(255.000000) round_ne r0.w, r0.w ftou r0.w, r0.w and r1.x, r0.w, l(7) if_nz r1.x dp3 r1.y, v1.xyzx, v1.xyzx rsq r1.y, r1.y mul r1.yzw, r1.yyyy, v1.xxyz sample_l_indexable(texture2d)(float,float,float,float) r2.xyzw, v0.xyxx, t0.xyzw, s0, l(0.000000) sample_l_indexable(texture2d)(float,float,float,float) r3.x, v0.xyxx, t5.xyzw, s5, l(0.000000) mad r3.y, r3.x, cb0[51].x, cb0[51].y mad r3.x, r3.x, cb0[51].z, -cb0[51].w div r3.x, l(1.000000, 1.000000, 1.000000, 1.000000), r3.x add r3.x, r3.x, r3.y mad r2.xyz, r2.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000) dp3 r3.y, r2.xyzx, r2.xyzx rsq r3.y, r3.y mul r4.xyz, r2.xyzx, r3.yyyy mul r2.w, r2.w, l(3.000000) round_ne r2.w, r2.w ftou r2.w, r2.w mad r5.xyz, v1.xyzx, r3.xxxx, cb0[53].xyzx ftou r3.zw, v2.xxxy ishl r4.w, r3.w, l(4) iadd r4.w, r4.w, l(0xa341316c) iadd r5.w, r3.w, l(0x9e3779b9) xor r4.w, r4.w, r5.w ushr r5.w, r3.w, l(5) iadd r5.w, r5.w, l(0xc8013ea4) xor r4.w, r4.w, r5.w iadd r3.z, r3.z, r4.w ishl r4.w, r3.z, l(4) iadd r4.w, r4.w, l(0xad90777d) iadd r5.w, r3.z, l(0x9e3779b9) xor r4.w, r4.w, r5.w ushr r5.w, r3.z, l(5) iadd r5.w, r5.w, l(0x7e95761e) xor r4.w, r4.w, r5.w iadd r3.w, r3.w, r4.w ishl r4.w, r3.w, l(4) iadd r4.w, r4.w, l(0xa341316c) iadd r5.w, r3.w, l(0x3c6ef372) xor r4.w, r4.w, r5.w ushr r5.w, r3.w, l(5) iadd r5.w, r5.w, l(0xc8013ea4) xor r4.w, r4.w, r5.w iadd r3.z, r3.z, r4.w ishl r4.w, r3.z, l(4) iadd r4.w, r4.w, l(0xad90777d) iadd r5.w, r3.z, l(0x3c6ef372) xor r4.w, r4.w, r5.w ushr r5.w, r3.z, l(5) iadd r5.w, r5.w, l(0x7e95761e) xor r4.w, r4.w, r5.w iadd r3.w, r3.w, r4.w ishl r4.w, r3.w, l(4) iadd r4.w, r4.w, l(0xa341316c) iadd r5.w, r3.w, l(0xdaa66d2b) xor r4.w, r4.w, r5.w ushr r3.w, r3.w, l(5) iadd r3.w, r3.w, l(0xc8013ea4) xor r3.w, r3.w, r4.w iadd r3.z, r3.w, r3.z xor r3.z, r3.z, cb0[125].x sample_l_indexable(texture2d)(float,float,float,float) r6.xyzw, v0.xyxx, t6.xyzw, s6, l(0.000000) mul r7.xyzw, r6.xyzw, r6.xyzw dp3_sat r3.w, r4.xyzx, cb1[2].xyzx utof r2.w, r2.w add r2.w, r2.w, l(0.001000) ftoi r2.w, r2.w switch r2.w case l(0) mov r8.xyzw, l(1.000000,0,0,0) break case l(1) mov r8.xyzw, l(0,1.000000,0,0) break case l(2) mov r8.xyzw, l(0,0,1.000000,0) break case l(3) mov r8.xyzw, l(0,0,0,1.000000) break default mov r8.xyzw, l(1.000000,1.000000,1.000000,1.000000) break endswitch dp4 r2.w, cb1[7].xyzw, r8.xyzw eq r2.w, r2.w, l(0.000000) if_nz r2.w mov o0.xyzw, l(0,0,0,0) endif if_z r2.w sample_l_indexable(texture2d)(float,float,float,float) r8.xyz, v0.xyxx, t2.xyzw, s2, l(0.000000) sample_l_indexable(texture2d)(float,float,float,float) r9.xyzw, v0.xyxx, t3.xyzw, s3, l(0.000000) mul r6.zw, v0.xxxy, cb0[116].xxxy ftou r6.zw, r6.zzzw ftou r2.w, cb0[133].x iadd r4.w, r6.w, r6.z iadd r2.w, r2.w, r4.w and r2.w, r2.w, l(1) and r4.w, r0.w, l(16) movc r9.xyzw, r4.wwww, l(0,0,0,0), r9.wxyz ieq r4.w, r1.x, l(6) movc r10.xy, r2.wwww, l(1.000000,0,0,0), l(0,1.000000,0,0) mul r10.z, r0.z, r10.y mov r8.w, r0.z movc r8.xyzw, r4.wwww, r10.xxxz, r8.xyzw mad r10.xyz, -r8.xyzx, r0.xxxx, r8.xyzx mul r2.w, r8.w, l(0.080000) mad r8.xyz, -r8.wwww, l(0.080000, 0.080000, 0.080000, 0.000000), r8.xyzx mad r8.xyz, r0.xxxx, r8.xyzx, r2.wwww mad r10.xyz, r10.xyzx, cb0[118].wwww, cb0[118].xyzx mad r8.xyz, r8.xyzx, cb0[119].wwww, cb0[119].xyzx if_nz cb1[6].x sample_l_indexable(texture2d)(float,float,float,float) r11.xyzw, v0.xyxx, t4.xyzw, s4, l(0.000000) and r6.zw, r0.wwww, l(0, 0, 32, 64) movc r0.w, r6.w, l(0), l(1.000000) movc r11.xyzw, r6.zzzz, r0.wwww, r11.xyzw dp4 r0.w, cb1[5].xyzw, l(1.000000, 1.000000, 1.000000, 1.000000) dp4 r2.w, r11.xyzw, cb1[5].xyzw add r2.w, r2.w, l(-1.000000) mad r0.w, r0.w, r2.w, l(1.000000) mad_sat r2.w, r3.x, cb1[4].z, cb1[4].w mul r2.w, r2.w, r2.w mad r6.xy, -r6.xyxx, r6.xyxx, r0.wwww mad r6.xy, r2.wwww, r6.xyxx, r7.xyxx min r0.w, r7.w, r6.y mul r2.w, r7.z, r6.x mul r0.w, r7.z, r0.w ult r4.w, l(1), cb1[6].x lt r5.w, l(0.000000), cb1[4].y and r4.w, r4.w, r5.w if_nz r4.w and r3.z, r3.z, l(0x0000ffff) utof r3.z, r3.z mad r3.z, r3.z, l(0.0000152587891), l(-0.500000) add r5.xyz, r5.xyzx, cb0[56].xyzx mul r3.x, r3.x, cb1[4].y mul r6.xyzw, r5.yyyy, cb0[1].xyzw mad r6.xyzw, r5.xxxx, cb0[0].xyzw, r6.xyzw mad r5.xyzw, r5.zzzz, cb0[2].xyzw, r6.xyzw add r5.xyzw, r5.xyzw, cb0[3].xyzw mul r6.xyz, r3.xxxx, cb1[2].xyzx mul r7.xyzw, r6.yyyy, cb0[1].xyzw mad r7.xyzw, r6.xxxx, cb0[0].xyzw, r7.xyzw mad r6.xyzw, r6.zzzz, cb0[2].xyzw, r7.xyzw add r6.xyzw, r5.xyzw, r6.xyzw div r7.xyz, r5.xyzx, r5.wwww div r6.xyz, r6.xyzx, r6.wwww add r6.xyz, -r7.xyzx, r6.xyzx mad r7.xy, r7.xyxx, cb0[52].xyxx, cb0[52].wzww mul r6.xy, r6.xyxx, cb0[52].xyxx mad r5.xy, r3.xxxx, cb0[26].zwzz, r5.zwzz div r3.x, r5.x, r5.y add r3.x, -r7.z, r3.x mul r4.w, |r3.x|, l(0.250000) mad r5.xyzw, r3.zzzz, l(0.125000, 0.125000, 0.125000, 0.125000), l(0.125000, 0.250000, 0.375000, 0.500000) mad r11.xyz, r6.xyzx, r5.xxxx, r7.xyzx sample_l_indexable(texture2d)(float,float,float,float) r5.x, r11.xyxx, t5.xyzw, s5, l(0.000000) add r5.x, -r5.x, r11.z mad r5.x, |r3.x|, l(0.250000), r5.x lt r5.x, |r5.x|, r4.w and r5.x, r5.x, l(0x3f800000) mad r11.xyz, r6.xyzx, r5.yyyy, r7.xyzx sample_l_indexable(texture2d)(float,float,float,float) r5.y, r11.xyxx, t5.yxzw, s5, l(0.000000) add r5.y, -r5.y, r11.z mad r5.y, |r3.x|, l(0.250000), r5.y lt r5.y, |r5.y|, r4.w and r5.y, r5.y, l(0x3f800000) add r5.x, r5.y, r5.x mad r11.xyz, r6.xyzx, r5.zzzz, r7.xyzx sample_l_indexable(texture2d)(float,float,float,float) r5.y, r11.xyxx, t5.yxzw, s5, l(0.000000) add r5.y, -r5.y, r11.z mad r5.y, |r3.x|, l(0.250000), r5.y lt r5.y, |r5.y|, r4.w and r5.y, r5.y, l(0x3f800000) add r5.x, r5.y, r5.x mad r5.yzw, r6.xxyz, r5.wwww, r7.xxyz sample_l_indexable(texture2d)(float,float,float,float) r5.y, r5.yzyy, t5.yxzw, s5, l(0.000000) add r5.y, -r5.y, r5.w mad r5.y, |r3.x|, l(0.250000), r5.y lt r5.y, |r5.y|, r4.w and r5.y, r5.y, l(0x3f800000) add r5.x, r5.y, r5.x mad r11.xyzw, r3.zzzz, l(0.125000, 0.125000, 0.125000, 0.125000), l(0.625000, 0.750000, 0.875000, 1.000000) mad r5.yzw, r6.xxyz, r11.xxxx, r7.xxyz sample_l_indexable(texture2d)(float,float,float,float) r3.z, r5.yzyy, t5.yzxw, s5, l(0.000000) add r3.z, -r3.z, r5.w mad r3.z, |r3.x|, l(0.250000), r3.z lt r3.z, |r3.z|, r4.w and r3.z, r3.z, l(0x3f800000) add r3.z, r3.z, r5.x mad r5.xyz, r6.xyzx, r11.yyyy, r7.xyzx sample_l_indexable(texture2d)(float,float,float,float) r5.x, r5.xyxx, t5.xyzw, s5, l(0.000000) add r5.x, -r5.x, r5.z mad r5.x, |r3.x|, l(0.250000), r5.x lt r5.x, |r5.x|, r4.w and r5.x, r5.x, l(0x3f800000) add r3.z, r3.z, r5.x mad r5.xyz, r6.xyzx, r11.zzzz, r7.xyzx sample_l_indexable(texture2d)(float,float,float,float) r5.x, r5.xyxx, t5.xyzw, s5, l(0.000000) add r5.x, -r5.x, r5.z mad r5.x, |r3.x|, l(0.250000), r5.x lt r5.x, |r5.x|, r4.w and r5.x, r5.x, l(0x3f800000) add r3.z, r3.z, r5.x mad r5.xyz, r6.xyzx, r11.wwww, r7.xyzx sample_l_indexable(texture2d)(float,float,float,float) r5.x, r5.xyxx, t5.xyzw, s5, l(0.000000) add r5.x, -r5.x, r5.z mad r3.x, |r3.x|, l(0.250000), r5.x lt r3.x, |r3.x|, r4.w and r3.x, r3.x, l(0x3f800000) add r3.x, r3.x, r3.z lt r3.x, l(0.000000), r3.x movc r3.x, r3.x, l(0), l(1.000000) mul r2.w, r2.w, r3.x endif else sample_l_indexable(texture2d)(float,float,float,float) r2.w, v0.xyxx, t7.yzwx, s7, l(0.000000) mov r0.w, l(1.000000) endif mov r0.x, r9.z mov r0.z, l(1.000000) max r0.xyz, r0.xyzx, cb1[4].xxxx mul r5.xyz, r0.xyzx, r0.xyzx dp3 r0.z, r1.yzwy, r4.xyzx add r0.z, r0.z, r0.z mad r6.xyz, r4.xyzx, -r0.zzzz, r1.yzwy dp3 r0.z, cb1[2].xyzx, cb1[2].xyzx rsq r0.z, r0.z mad r3.x, -r0.y, r0.y, l(1.000000) sqrt r3.z, r3.x mad r3.z, r0.y, r0.y, r3.z mul r3.z, r3.z, r3.x mad r2.xyz, -r2.xyzx, r3.yyyy, r6.xyzx mad r2.xyz, r3.zzzz, r2.xyzx, r4.xyzx dp3 r3.y, r2.xyzx, r2.xyzx rsq r3.y, r3.y mul r2.xyz, r2.xyzx, r3.yyyy lt r3.yz, l(0.000000, 0.000000, 0.000000, 0.000000), cb1[3].wwzw if_nz r3.y mul_sat r3.y, r0.z, cb1[3].w mad r6.xyz, r3.yyyy, l(0.500000, 0.500000, 0.500000, 0.000000), r5.xyzx min r6.xyz, r6.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) div r6.xyz, r5.xyzx, r6.xyzx mul r7.xyz, cb1[2].xyzx, cb1[3].wwww mad r11.xyz, -r7.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), cb1[2].xyzx dp3 r3.y, r2.xyzx, r7.xyzx mad r12.xyz, r3.yyyy, r2.xyzx, -r7.xyzx dp3 r4.w, r11.xyzx, r12.xyzx mul r3.y, r3.y, r3.y mad r3.y, cb1[3].w, cb1[3].w, -r3.y div_sat r3.y, r4.w, r3.y mad r7.xyz, r3.yyyy, r7.xyzx, r11.xyzx else mov r7.xyz, cb1[2].xyzx mov r6.xyz, l(1.000000,1.000000,1.000000,0) endif if_nz r3.z mul_sat r0.z, r0.z, cb1[3].z mad r11.xyz, r0.zzzz, l(0.500000, 0.500000, 0.500000, 0.000000), r5.xyzx min r11.xyz, r11.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) div r5.xzw, r5.xxyz, r11.xxyz mul r5.xzw, r5.xxzw, r5.xxzw mul r6.xyz, r5.xzwx, r6.xyzx dp3 r0.z, r7.xyzx, r2.xyzx mad r2.xyz, r0.zzzz, r2.xyzx, -r7.xyzx dp3 r0.z, r2.xyzx, r2.xyzx rsq r0.z, r0.z mul_sat r0.z, r0.z, cb1[3].z mad r7.xyz, r2.xyzx, r0.zzzz, r7.xyzx endif dp3 r0.z, r7.xyzx, r7.xyzx rsq r0.z, r0.z mul r2.xyz, r0.zzzz, r7.xyzx switch r1.x case l(0) case l(1) case l(2) case l(3) case l(6) case l(7) mul r11.xyz, r6.zzzz, r10.xyzx mul r5.xzw, r11.xxyz, l(0.318309873, 0.000000, 0.318309873, 0.318309873) break case l(4) mad r11.xyz, r7.xyzx, r0.zzzz, -r1.yzwy dp3 r3.y, r11.xyzx, r11.xyzx rsq r3.y, r3.y mul r11.xyz, r3.yyyy, r11.xyzx dp3_sat r3.y, r4.xyzx, r2.xyzx dp3 r3.z, r4.xyzx, -r1.yzwy add r3.z, |r3.z|, l(0.000010) min r3.z, r3.z, l(1.000000) dp3_sat r4.w, r4.xyzx, r11.xyzx dp3_sat r6.w, -r1.yzwy, r11.xyzx mul r7.w, r0.x, r0.x mul r7.w, r7.w, r7.w mad r8.w, r4.w, r7.w, -r4.w mad r8.w, r8.w, r4.w, l(1.000000) mul r8.w, r8.w, r8.w mul r8.w, r8.w, l(3.14159274) div r7.w, r7.w, r8.w mul r7.w, r6.x, r7.w mul r8.w, r6.w, r6.w mad r8.w, r8.w, l(4.000000), l(0.000010) rcp r8.w, r8.w add r6.w, -r6.w, l(1.000000) mul r10.w, r6.w, r6.w mul r10.w, r10.w, r10.w mul r11.x, r6.w, r10.w mad r6.w, -r10.w, r6.w, l(1.000000) mad r10.w, r6.w, l(0.040000), r11.x mul r11.y, r9.y, r10.w mul r7.w, r7.w, r8.w mad r8.w, -r10.w, r9.y, l(1.000000) mul r10.w, r5.y, r5.y mad r11.z, r4.w, r10.w, -r4.w mad r4.w, r11.z, r4.w, l(1.000000) mul r4.w, r4.w, r4.w mul r4.w, r4.w, l(3.14159274) div r4.w, r10.w, r4.w mul r4.w, r6.y, r4.w mul r10.w, r5.y, l(0.500000) mad r11.z, -r5.y, l(0.500000), l(1.000000) mad r3.z, r3.z, r11.z, r10.w mad r3.y, r3.y, r11.z, r10.w mul r3.y, r3.y, r3.z div r3.y, l(0.250000), r3.y mul_sat r3.z, r8.y, l(50.000000) mul r12.xyz, r8.xyzx, r6.wwww mad r11.xzw, r3.zzzz, r11.xxxx, r12.xxyz mul r12.xyz, r6.zzzz, r10.xyzx mul r3.y, r3.y, r4.w mul r11.xzw, r11.xxzw, r3.yyyy mad r11.xzw, r12.xxyz, l(0.318309873, 0.000000, 0.318309873, 0.318309873), r11.xxzw mul r11.xzw, r8.wwww, r11.xxzw mad r5.xzw, r7.wwww, r11.yyyy, r11.xxzw break case l(5) mad r11.xyz, r7.xyzx, r0.zzzz, -r1.yzwy dp3 r3.y, r11.xyzx, r11.xyzx rsq r3.y, r3.y mul r11.xyz, r3.yyyy, r11.xyzx dp3_sat r3.y, r4.xyzx, r2.xyzx dp3_sat r3.z, r4.xyzx, -r1.yzwy dp3_sat r4.w, r4.xyzx, r11.xyzx dp3_sat r6.w, -r1.yzwy, r11.xyzx mad r12.xyzw, r9.xyzw, l(2.000000, 2.000000, 2.000000, 2.000000), l(-1.000000, -1.000000, -1.000000, -1.000000) mad r7.w, -r12.x, l(0.900000), l(1.000000) sqrt r7.w, r7.w mad r8.w, r12.x, l(0.900000), l(1.000000) rsq r8.w, r8.w mul r7.w, r7.w, r8.w sqrt r8.w, r7.w mul r8.w, r0.y, r8.w max r8.w, r8.w, l(0.010000) rsq r7.w, r7.w mul r7.w, r0.y, r7.w max r7.w, r7.w, l(0.010000) mul r13.xyz, r4.zxyz, r12.zwyz mad r12.xyz, r4.yzxy, r12.wyzw, -r13.xyzx dp3 r10.w, r12.xyzx, r12.xyzx rsq r10.w, r10.w mul r12.xyz, r10.wwww, r12.xyzx mul r13.xyz, r4.yzxy, r12.zxyz mad r13.xyz, r12.yzxy, r4.zxyz, -r13.xyzx dp3 r10.w, r13.xyzx, r13.xyzx rsq r10.w, r10.w mul r13.xyz, r10.wwww, r13.xyzx mul r8.w, r8.w, r8.w mul r7.w, r7.w, r7.w dp3 r10.w, r13.xyzx, r11.xyzx dp3 r11.x, r12.xyzx, r11.xyzx mul r10.w, r10.w, r10.w mul r11.y, r8.w, r8.w div r10.w, r10.w, r11.y mul r11.x, r11.x, r11.x mul r11.y, r7.w, r7.w div r11.x, r11.x, r11.y add r10.w, r10.w, r11.x mad r4.w, r4.w, r4.w, r10.w mul r7.w, r8.w, r7.w mul r4.w, r4.w, r4.w mul r4.w, r7.w, r4.w mul r4.w, r4.w, l(3.14159274) div r4.w, l(1.000000, 1.000000, 1.000000, 1.000000), r4.w mul r4.w, r6.y, r4.w min r4.w, r4.w, l(200.000000) mul r7.w, r5.y, l(0.500000) mad r8.w, -r5.y, l(0.500000), l(1.000000) mad r3.z, r3.z, r8.w, r7.w mad r3.y, r3.y, r8.w, r7.w mul r3.y, r3.y, r3.z div r3.y, l(0.250000), r3.y add r3.z, -r6.w, l(1.000000) mul r6.w, r3.z, r3.z mul r6.w, r6.w, r6.w mul r7.w, r3.z, r6.w mul_sat r8.w, r8.y, l(50.000000) mad r3.z, -r6.w, r3.z, l(1.000000) mul r11.xyz, r8.xyzx, r3.zzzz mad r11.xyz, r8.wwww, r7.wwww, r11.xyzx mul r12.xyz, r6.zzzz, r10.xyzx mul r3.y, r3.y, r4.w mul r11.xyz, r11.xyzx, r3.yyyy mad r5.xzw, r12.xxyz, l(0.318309873, 0.000000, 0.318309873, 0.318309873), r11.xxyz break default mov r5.xzw, l(0,0,0,0) break endswitch switch r1.x case l(0) case l(1) case l(2) case l(3) case l(6) case l(7) mad r12.xyz, r7.xyzx, r0.zzzz, -r1.yzwy dp3 r3.y, r12.xyzx, r12.xyzx rsq r3.y, r3.y mul r12.xyz, r3.yyyy, r12.xyzx dp3_sat r3.y, r4.xyzx, r2.xyzx dp3 r3.z, r4.xyzx, -r1.yzwy add r3.z, |r3.z|, l(0.000010) min r3.z, r3.z, l(1.000000) dp3_sat r4.w, r4.xyzx, r12.xyzx dp3_sat r6.w, -r1.yzwy, r12.xyzx mul r7.w, r5.y, r5.y mad r8.w, r4.w, r7.w, -r4.w mad r4.w, r8.w, r4.w, l(1.000000) mul r4.w, r4.w, r4.w mul r4.w, r4.w, l(3.14159274) div r4.w, r7.w, r4.w mul r4.w, r6.y, r4.w mad r7.w, r3.z, r3.x, r5.y mad r3.x, r3.y, r3.x, r5.y mul r3.x, r3.x, r3.z mad r3.x, r3.y, r7.w, r3.x rcp r3.x, r3.x mul r3.x, r3.x, r4.w add r3.y, -r6.w, l(1.000000) mul r3.z, r3.y, r3.y mul r3.z, r3.z, r3.z mul r4.w, r3.y, r3.z mul_sat r6.w, r8.y, l(50.000000) mad r3.y, -r3.z, r3.y, l(1.000000) mul r12.xyz, r8.xyzx, r3.yyyy mad r12.xyz, r6.wwww, r4.wwww, r12.xyzx mul r3.x, r3.x, l(0.500000) mul r11.xyz, r12.xyzx, r3.xxxx break case l(4) mad r3.xyz, r7.xyzx, r0.zzzz, -r1.yzwy dp3 r4.w, r3.xyzx, r3.xyzx rsq r4.w, r4.w mul r3.xyz, r3.xyzx, r4.wwww dp3_sat r4.w, r4.xyzx, r2.xyzx dp3 r6.w, r4.xyzx, -r1.yzwy add r6.w, |r6.w|, l(0.000010) min r6.w, r6.w, l(1.000000) dp3_sat r7.w, r4.xyzx, r3.xyzx dp3_sat r3.x, -r1.yzwy, r3.xyzx mul r0.x, r0.x, r0.x mul r0.x, r0.x, r0.x mad r3.y, r7.w, r0.x, -r7.w mad r3.y, r3.y, r7.w, l(1.000000) mul r3.y, r3.y, r3.y mul r3.y, r3.y, l(3.14159274) div r0.x, r0.x, r3.y mul r0.x, r6.x, r0.x mul r3.y, r3.x, r3.x mad r3.y, r3.y, l(4.000000), l(0.000010) rcp r3.y, r3.y add r3.x, -r3.x, l(1.000000) mul r3.z, r3.x, r3.x mul r3.z, r3.z, r3.z mul r6.x, r3.x, r3.z mad r3.x, -r3.z, r3.x, l(1.000000) mad r3.z, r3.x, l(0.040000), r6.x mul r8.w, r9.y, r3.z mul r0.x, r0.x, r3.y mad r3.y, -r3.z, r9.y, l(1.000000) mul r3.z, r5.y, r5.y mad r10.w, r7.w, r3.z, -r7.w mad r7.w, r10.w, r7.w, l(1.000000) mul r7.w, r7.w, r7.w mul r7.w, r7.w, l(3.14159274) div r3.z, r3.z, r7.w mul r3.z, r6.y, r3.z mul r7.w, r5.y, l(0.500000) mad r10.w, -r5.y, l(0.500000), l(1.000000) mad r6.w, r6.w, r10.w, r7.w mad r4.w, r4.w, r10.w, r7.w mul r4.w, r4.w, r6.w div r4.w, l(0.250000), r4.w mul_sat r6.w, r8.y, l(50.000000) mul r12.xyz, r8.xyzx, r3.xxxx mad r12.xyz, r6.wwww, r6.xxxx, r12.xyzx mul r13.xyz, r6.zzzz, r10.xyzx mul r3.x, r3.z, r4.w mul r12.xyz, r12.xyzx, r3.xxxx mad r12.xyz, r13.xyzx, l(0.318309873, 0.318309873, 0.318309873, 0.000000), r12.xyzx mul r3.xyz, r3.yyyy, r12.xyzx mad r11.xyz, r0.xxxx, r8.wwww, r3.xyzx break case l(5) mad r3.xyz, r7.xyzx, r0.zzzz, -r1.yzwy dp3 r0.x, r3.xyzx, r3.xyzx rsq r0.x, r0.x mul r3.xyz, r0.xxxx, r3.xyzx dp3_sat r0.x, r4.xyzx, r2.xyzx dp3_sat r4.w, r4.xyzx, -r1.yzwy dp3_sat r6.x, r4.xyzx, r3.xyzx dp3_sat r6.w, -r1.yzwy, r3.xyzx mad r12.xyzw, r9.xyzw, l(2.000000, 2.000000, 2.000000, 2.000000), l(-1.000000, -1.000000, -1.000000, -1.000000) mad r7.w, -r12.x, l(0.900000), l(1.000000) sqrt r7.w, r7.w mad r8.w, r12.x, l(0.900000), l(1.000000) rsq r8.w, r8.w mul r7.w, r7.w, r8.w sqrt r8.w, r7.w mul r8.w, r0.y, r8.w max r8.w, r8.w, l(0.010000) rsq r7.w, r7.w mul r0.y, r0.y, r7.w max r0.y, r0.y, l(0.010000) mul r13.xyz, r4.zxyz, r12.zwyz mad r12.xyz, r4.yzxy, r12.wyzw, -r13.xyzx dp3 r7.w, r12.xyzx, r12.xyzx rsq r7.w, r7.w mul r12.xyz, r7.wwww, r12.xyzx mul r13.xyz, r4.yzxy, r12.zxyz mad r13.xyz, r12.yzxy, r4.zxyz, -r13.xyzx dp3 r7.w, r13.xyzx, r13.xyzx rsq r7.w, r7.w mul r13.xyz, r7.wwww, r13.xyzx mul r7.w, r8.w, r8.w mul r0.y, r0.y, r0.y dp3 r8.w, r13.xyzx, r3.xyzx dp3 r3.x, r12.xyzx, r3.xyzx mul r3.y, r8.w, r8.w mul r3.z, r7.w, r7.w div r3.y, r3.y, r3.z mul r3.x, r3.x, r3.x mul r3.z, r0.y, r0.y div r3.x, r3.x, r3.z add r3.x, r3.x, r3.y mad r3.x, r6.x, r6.x, r3.x mul r0.y, r7.w, r0.y mul r3.x, r3.x, r3.x mul r0.y, r0.y, r3.x mul r0.y, r0.y, l(3.14159274) div r0.y, l(1.000000, 1.000000, 1.000000, 1.000000), r0.y mul r0.y, r6.y, r0.y min r0.y, r0.y, l(200.000000) mul r3.x, r5.y, l(0.500000) mad r3.y, -r5.y, l(0.500000), l(1.000000) mad r3.z, r4.w, r3.y, r3.x mad r0.x, r0.x, r3.y, r3.x mul r0.x, r0.x, r3.z div r0.x, l(0.250000), r0.x add r3.x, -r6.w, l(1.000000) mul r3.y, r3.x, r3.x mul r3.y, r3.y, r3.y mul r3.z, r3.x, r3.y mul_sat r4.w, r8.y, l(50.000000) mad r3.x, -r3.y, r3.x, l(1.000000) mul r6.xyw, r8.xyxz, r3.xxxx mad r3.xyz, r4.wwww, r3.zzzz, r6.xywx mul r6.xyz, r6.zzzz, r10.xyzx mul r0.x, r0.x, r0.y mul r3.xyz, r3.xyzx, r0.xxxx mad r11.xyz, r6.xyzx, l(0.318309873, 0.318309873, 0.318309873, 0.000000), r3.xyzx break default mov r11.xyz, l(0,0,0,0) break endswitch mul r0.x, r2.w, r3.w mul r3.xyz, r0.xxxx, cb1[1].xyzx add r5.xyz, r5.xzwx, r11.xyzx mul r6.xyz, r9.yzwy, r9.yzwy switch r1.x case l(2) mad r0.xyz, r7.xyzx, r0.zzzz, -r1.yzwy dp3 r1.x, r0.xyzx, r0.xyzx rsq r1.x, r1.x mul r0.xyz, r0.xyzx, r1.xxxx dp3_sat r1.x, r2.xyzx, r1.yzwy log r1.x, r1.x mul r1.x, r1.x, l(12.000000) exp r1.x, r1.x mad r2.w, r9.x, l(-2.900000), l(3.000000) mul r1.x, r1.x, r2.w dp3 r0.x, r4.xyzx, r0.xyzx mad r0.x, r0.x, r9.x, l(1.000000) add_sat r0.x, -r9.x, r0.x mul r0.y, r0.x, l(0.159154937) mad r0.x, -r0.x, l(0.159154937), l(1.000000) mad r0.x, r1.x, r0.x, r0.y mul r8.xyz, r0.xxxx, r6.xyzx break case l(3) dp3 r0.x, r4.xyzx, r2.xyzx mad_sat r0.x, r0.x, l(0.500000), l(0.500000) add r0.y, -r9.x, l(1.000000) sample_l_indexable(texture2d)(float,float,float,float) r0.xyz, r0.xyxx, t8.xyzw, s8, l(0.000000) mul r8.xyz, r6.xyzx, r0.xyzx break case l(7) dp3 r0.x, -r4.xyzx, r2.xyzx add r0.x, r0.x, l(0.500000) mul_sat r0.x, r0.x, l(0.444444448) dp3_sat r0.y, -r1.yzwy, -r2.xyzx mul r0.y, r0.y, r0.y mad r0.y, r0.y, l(-0.640000), l(1.000000) mul r0.y, r0.y, r0.y div r0.y, l(0.114591561), r0.y mul r0.x, r0.y, r0.x mul r8.xyz, r6.xyzx, r0.xxxx break default mov r8.xyz, l(0,0,0,0) break endswitch mul r0.xyz, r0.wwww, cb1[1].xyzx mul r0.xyz, r0.xyzx, r8.xyzx mad o0.xyz, r5.xyzx, r3.xyzx, r0.xyzx mov o0.w, l(0) endif else mov o0.xyzw, l(0,0,0,0) endif ret // Approximately 0 instruction slots used [/code] The big space I made at line 77 is where it would be fixed in Little Nightmares, but code here is very different! I don't know what I should fix. "cb0[41]" isn't there at all. I think the only remaining stuff to fix may be this shader and another one related to the sun (jungle stage, for example). Btw, I have fixed compute shaders like DarkStarSword did. Many thanks, DHR and DarkStarSword :).
Help needed with the specular lights pixel shader (2198988ccc85453d-ps.txt):

//Specular, broken.
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
// using 3Dmigoto v1.2.57 on Wed Jun 07 20:18:45 2017
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// TEXCOORD 0 xy 0 NONE float xy
// TEXCOORD 1 xyz 1 NONE float xyz
// SV_POSITION 0 xyzw 2 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[134], immediateIndexed
dcl_constantbuffer cb1[8], 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_sampler s7, mode_default
dcl_sampler s8, 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) t5
dcl_resource_texture2d (float,float,float,float) t6
dcl_resource_texture2d (float,float,float,float) t7
dcl_resource_texture2d (float,float,float,float) t8
dcl_input_ps linear v0.xy
dcl_input_ps linear v1.xyz
dcl_input_ps_siv linear noperspective v2.xy, position
dcl_output o0.xyzw
dcl_temps 14

// 3DMigoto StereoParams:
dcl_resource_texture2d (float,float,float,float) t125
ld_indexable(texture2d)(float,float,float,float) r19.xyzw, l(0, 0, 0, 0), t125.xyzw

sample_l_indexable(texture2d)(float,float,float,float) r0.xyzw, v0.xyxx, t1.xzyw, s1, l(0.000000)
mul r0.w, r0.w, l(255.000000)
round_ne r0.w, r0.w
ftou r0.w, r0.w
and r1.x, r0.w, l(7)
if_nz r1.x
dp3 r1.y, v1.xyzx, v1.xyzx
rsq r1.y, r1.y
mul r1.yzw, r1.yyyy, v1.xxyz
sample_l_indexable(texture2d)(float,float,float,float) r2.xyzw, v0.xyxx, t0.xyzw, s0, l(0.000000)
sample_l_indexable(texture2d)(float,float,float,float) r3.x, v0.xyxx, t5.xyzw, s5, l(0.000000)
mad r3.y, r3.x, cb0[51].x, cb0[51].y
mad r3.x, r3.x, cb0[51].z, -cb0[51].w
div r3.x, l(1.000000, 1.000000, 1.000000, 1.000000), r3.x
add r3.x, r3.x, r3.y
mad r2.xyz, r2.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
dp3 r3.y, r2.xyzx, r2.xyzx
rsq r3.y, r3.y
mul r4.xyz, r2.xyzx, r3.yyyy
mul r2.w, r2.w, l(3.000000)
round_ne r2.w, r2.w
ftou r2.w, r2.w



mad r5.xyz, v1.xyzx, r3.xxxx, cb0[53].xyzx
ftou r3.zw, v2.xxxy
ishl r4.w, r3.w, l(4)
iadd r4.w, r4.w, l(0xa341316c)
iadd r5.w, r3.w, l(0x9e3779b9)
xor r4.w, r4.w, r5.w
ushr r5.w, r3.w, l(5)
iadd r5.w, r5.w, l(0xc8013ea4)
xor r4.w, r4.w, r5.w
iadd r3.z, r3.z, r4.w
ishl r4.w, r3.z, l(4)
iadd r4.w, r4.w, l(0xad90777d)
iadd r5.w, r3.z, l(0x9e3779b9)
xor r4.w, r4.w, r5.w
ushr r5.w, r3.z, l(5)
iadd r5.w, r5.w, l(0x7e95761e)
xor r4.w, r4.w, r5.w
iadd r3.w, r3.w, r4.w
ishl r4.w, r3.w, l(4)
iadd r4.w, r4.w, l(0xa341316c)
iadd r5.w, r3.w, l(0x3c6ef372)
xor r4.w, r4.w, r5.w
ushr r5.w, r3.w, l(5)
iadd r5.w, r5.w, l(0xc8013ea4)
xor r4.w, r4.w, r5.w
iadd r3.z, r3.z, r4.w
ishl r4.w, r3.z, l(4)
iadd r4.w, r4.w, l(0xad90777d)
iadd r5.w, r3.z, l(0x3c6ef372)
xor r4.w, r4.w, r5.w
ushr r5.w, r3.z, l(5)
iadd r5.w, r5.w, l(0x7e95761e)
xor r4.w, r4.w, r5.w
iadd r3.w, r3.w, r4.w
ishl r4.w, r3.w, l(4)
iadd r4.w, r4.w, l(0xa341316c)
iadd r5.w, r3.w, l(0xdaa66d2b)
xor r4.w, r4.w, r5.w
ushr r3.w, r3.w, l(5)
iadd r3.w, r3.w, l(0xc8013ea4)
xor r3.w, r3.w, r4.w
iadd r3.z, r3.w, r3.z
xor r3.z, r3.z, cb0[125].x
sample_l_indexable(texture2d)(float,float,float,float) r6.xyzw, v0.xyxx, t6.xyzw, s6, l(0.000000)
mul r7.xyzw, r6.xyzw, r6.xyzw
dp3_sat r3.w, r4.xyzx, cb1[2].xyzx
utof r2.w, r2.w
add r2.w, r2.w, l(0.001000)
ftoi r2.w, r2.w
switch r2.w
case l(0)
mov r8.xyzw, l(1.000000,0,0,0)
break
case l(1)
mov r8.xyzw, l(0,1.000000,0,0)
break
case l(2)
mov r8.xyzw, l(0,0,1.000000,0)
break
case l(3)
mov r8.xyzw, l(0,0,0,1.000000)
break
default
mov r8.xyzw, l(1.000000,1.000000,1.000000,1.000000)
break
endswitch
dp4 r2.w, cb1[7].xyzw, r8.xyzw
eq r2.w, r2.w, l(0.000000)
if_nz r2.w
mov o0.xyzw, l(0,0,0,0)
endif
if_z r2.w
sample_l_indexable(texture2d)(float,float,float,float) r8.xyz, v0.xyxx, t2.xyzw, s2, l(0.000000)
sample_l_indexable(texture2d)(float,float,float,float) r9.xyzw, v0.xyxx, t3.xyzw, s3, l(0.000000)
mul r6.zw, v0.xxxy, cb0[116].xxxy
ftou r6.zw, r6.zzzw
ftou r2.w, cb0[133].x
iadd r4.w, r6.w, r6.z
iadd r2.w, r2.w, r4.w
and r2.w, r2.w, l(1)
and r4.w, r0.w, l(16)
movc r9.xyzw, r4.wwww, l(0,0,0,0), r9.wxyz
ieq r4.w, r1.x, l(6)
movc r10.xy, r2.wwww, l(1.000000,0,0,0), l(0,1.000000,0,0)
mul r10.z, r0.z, r10.y
mov r8.w, r0.z
movc r8.xyzw, r4.wwww, r10.xxxz, r8.xyzw
mad r10.xyz, -r8.xyzx, r0.xxxx, r8.xyzx
mul r2.w, r8.w, l(0.080000)
mad r8.xyz, -r8.wwww, l(0.080000, 0.080000, 0.080000, 0.000000), r8.xyzx
mad r8.xyz, r0.xxxx, r8.xyzx, r2.wwww
mad r10.xyz, r10.xyzx, cb0[118].wwww, cb0[118].xyzx
mad r8.xyz, r8.xyzx, cb0[119].wwww, cb0[119].xyzx
if_nz cb1[6].x
sample_l_indexable(texture2d)(float,float,float,float) r11.xyzw, v0.xyxx, t4.xyzw, s4, l(0.000000)
and r6.zw, r0.wwww, l(0, 0, 32, 64)
movc r0.w, r6.w, l(0), l(1.000000)
movc r11.xyzw, r6.zzzz, r0.wwww, r11.xyzw
dp4 r0.w, cb1[5].xyzw, l(1.000000, 1.000000, 1.000000, 1.000000)
dp4 r2.w, r11.xyzw, cb1[5].xyzw
add r2.w, r2.w, l(-1.000000)
mad r0.w, r0.w, r2.w, l(1.000000)
mad_sat r2.w, r3.x, cb1[4].z, cb1[4].w
mul r2.w, r2.w, r2.w
mad r6.xy, -r6.xyxx, r6.xyxx, r0.wwww
mad r6.xy, r2.wwww, r6.xyxx, r7.xyxx
min r0.w, r7.w, r6.y
mul r2.w, r7.z, r6.x
mul r0.w, r7.z, r0.w
ult r4.w, l(1), cb1[6].x
lt r5.w, l(0.000000), cb1[4].y
and r4.w, r4.w, r5.w
if_nz r4.w
and r3.z, r3.z, l(0x0000ffff)
utof r3.z, r3.z
mad r3.z, r3.z, l(0.0000152587891), l(-0.500000)
add r5.xyz, r5.xyzx, cb0[56].xyzx
mul r3.x, r3.x, cb1[4].y
mul r6.xyzw, r5.yyyy, cb0[1].xyzw
mad r6.xyzw, r5.xxxx, cb0[0].xyzw, r6.xyzw
mad r5.xyzw, r5.zzzz, cb0[2].xyzw, r6.xyzw
add r5.xyzw, r5.xyzw, cb0[3].xyzw
mul r6.xyz, r3.xxxx, cb1[2].xyzx
mul r7.xyzw, r6.yyyy, cb0[1].xyzw
mad r7.xyzw, r6.xxxx, cb0[0].xyzw, r7.xyzw
mad r6.xyzw, r6.zzzz, cb0[2].xyzw, r7.xyzw
add r6.xyzw, r5.xyzw, r6.xyzw
div r7.xyz, r5.xyzx, r5.wwww
div r6.xyz, r6.xyzx, r6.wwww
add r6.xyz, -r7.xyzx, r6.xyzx
mad r7.xy, r7.xyxx, cb0[52].xyxx, cb0[52].wzww
mul r6.xy, r6.xyxx, cb0[52].xyxx
mad r5.xy, r3.xxxx, cb0[26].zwzz, r5.zwzz
div r3.x, r5.x, r5.y
add r3.x, -r7.z, r3.x
mul r4.w, |r3.x|, l(0.250000)
mad r5.xyzw, r3.zzzz, l(0.125000, 0.125000, 0.125000, 0.125000), l(0.125000, 0.250000, 0.375000, 0.500000)
mad r11.xyz, r6.xyzx, r5.xxxx, r7.xyzx
sample_l_indexable(texture2d)(float,float,float,float) r5.x, r11.xyxx, t5.xyzw, s5, l(0.000000)
add r5.x, -r5.x, r11.z
mad r5.x, |r3.x|, l(0.250000), r5.x
lt r5.x, |r5.x|, r4.w
and r5.x, r5.x, l(0x3f800000)
mad r11.xyz, r6.xyzx, r5.yyyy, r7.xyzx
sample_l_indexable(texture2d)(float,float,float,float) r5.y, r11.xyxx, t5.yxzw, s5, l(0.000000)
add r5.y, -r5.y, r11.z
mad r5.y, |r3.x|, l(0.250000), r5.y
lt r5.y, |r5.y|, r4.w
and r5.y, r5.y, l(0x3f800000)
add r5.x, r5.y, r5.x
mad r11.xyz, r6.xyzx, r5.zzzz, r7.xyzx
sample_l_indexable(texture2d)(float,float,float,float) r5.y, r11.xyxx, t5.yxzw, s5, l(0.000000)
add r5.y, -r5.y, r11.z
mad r5.y, |r3.x|, l(0.250000), r5.y
lt r5.y, |r5.y|, r4.w
and r5.y, r5.y, l(0x3f800000)
add r5.x, r5.y, r5.x
mad r5.yzw, r6.xxyz, r5.wwww, r7.xxyz
sample_l_indexable(texture2d)(float,float,float,float) r5.y, r5.yzyy, t5.yxzw, s5, l(0.000000)
add r5.y, -r5.y, r5.w
mad r5.y, |r3.x|, l(0.250000), r5.y
lt r5.y, |r5.y|, r4.w
and r5.y, r5.y, l(0x3f800000)
add r5.x, r5.y, r5.x
mad r11.xyzw, r3.zzzz, l(0.125000, 0.125000, 0.125000, 0.125000), l(0.625000, 0.750000, 0.875000, 1.000000)
mad r5.yzw, r6.xxyz, r11.xxxx, r7.xxyz
sample_l_indexable(texture2d)(float,float,float,float) r3.z, r5.yzyy, t5.yzxw, s5, l(0.000000)
add r3.z, -r3.z, r5.w
mad r3.z, |r3.x|, l(0.250000), r3.z
lt r3.z, |r3.z|, r4.w
and r3.z, r3.z, l(0x3f800000)
add r3.z, r3.z, r5.x
mad r5.xyz, r6.xyzx, r11.yyyy, r7.xyzx
sample_l_indexable(texture2d)(float,float,float,float) r5.x, r5.xyxx, t5.xyzw, s5, l(0.000000)
add r5.x, -r5.x, r5.z
mad r5.x, |r3.x|, l(0.250000), r5.x
lt r5.x, |r5.x|, r4.w
and r5.x, r5.x, l(0x3f800000)
add r3.z, r3.z, r5.x
mad r5.xyz, r6.xyzx, r11.zzzz, r7.xyzx
sample_l_indexable(texture2d)(float,float,float,float) r5.x, r5.xyxx, t5.xyzw, s5, l(0.000000)
add r5.x, -r5.x, r5.z
mad r5.x, |r3.x|, l(0.250000), r5.x
lt r5.x, |r5.x|, r4.w
and r5.x, r5.x, l(0x3f800000)
add r3.z, r3.z, r5.x
mad r5.xyz, r6.xyzx, r11.wwww, r7.xyzx
sample_l_indexable(texture2d)(float,float,float,float) r5.x, r5.xyxx, t5.xyzw, s5, l(0.000000)
add r5.x, -r5.x, r5.z
mad r3.x, |r3.x|, l(0.250000), r5.x
lt r3.x, |r3.x|, r4.w
and r3.x, r3.x, l(0x3f800000)
add r3.x, r3.x, r3.z
lt r3.x, l(0.000000), r3.x
movc r3.x, r3.x, l(0), l(1.000000)
mul r2.w, r2.w, r3.x
endif
else
sample_l_indexable(texture2d)(float,float,float,float) r2.w, v0.xyxx, t7.yzwx, s7, l(0.000000)
mov r0.w, l(1.000000)
endif
mov r0.x, r9.z
mov r0.z, l(1.000000)
max r0.xyz, r0.xyzx, cb1[4].xxxx
mul r5.xyz, r0.xyzx, r0.xyzx
dp3 r0.z, r1.yzwy, r4.xyzx
add r0.z, r0.z, r0.z
mad r6.xyz, r4.xyzx, -r0.zzzz, r1.yzwy
dp3 r0.z, cb1[2].xyzx, cb1[2].xyzx
rsq r0.z, r0.z
mad r3.x, -r0.y, r0.y, l(1.000000)
sqrt r3.z, r3.x
mad r3.z, r0.y, r0.y, r3.z
mul r3.z, r3.z, r3.x
mad r2.xyz, -r2.xyzx, r3.yyyy, r6.xyzx
mad r2.xyz, r3.zzzz, r2.xyzx, r4.xyzx
dp3 r3.y, r2.xyzx, r2.xyzx
rsq r3.y, r3.y
mul r2.xyz, r2.xyzx, r3.yyyy
lt r3.yz, l(0.000000, 0.000000, 0.000000, 0.000000), cb1[3].wwzw
if_nz r3.y
mul_sat r3.y, r0.z, cb1[3].w
mad r6.xyz, r3.yyyy, l(0.500000, 0.500000, 0.500000, 0.000000), r5.xyzx
min r6.xyz, r6.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
div r6.xyz, r5.xyzx, r6.xyzx
mul r7.xyz, cb1[2].xyzx, cb1[3].wwww
mad r11.xyz, -r7.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), cb1[2].xyzx
dp3 r3.y, r2.xyzx, r7.xyzx
mad r12.xyz, r3.yyyy, r2.xyzx, -r7.xyzx
dp3 r4.w, r11.xyzx, r12.xyzx
mul r3.y, r3.y, r3.y
mad r3.y, cb1[3].w, cb1[3].w, -r3.y
div_sat r3.y, r4.w, r3.y
mad r7.xyz, r3.yyyy, r7.xyzx, r11.xyzx
else
mov r7.xyz, cb1[2].xyzx
mov r6.xyz, l(1.000000,1.000000,1.000000,0)
endif
if_nz r3.z
mul_sat r0.z, r0.z, cb1[3].z
mad r11.xyz, r0.zzzz, l(0.500000, 0.500000, 0.500000, 0.000000), r5.xyzx
min r11.xyz, r11.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
div r5.xzw, r5.xxyz, r11.xxyz
mul r5.xzw, r5.xxzw, r5.xxzw
mul r6.xyz, r5.xzwx, r6.xyzx
dp3 r0.z, r7.xyzx, r2.xyzx
mad r2.xyz, r0.zzzz, r2.xyzx, -r7.xyzx
dp3 r0.z, r2.xyzx, r2.xyzx
rsq r0.z, r0.z
mul_sat r0.z, r0.z, cb1[3].z
mad r7.xyz, r2.xyzx, r0.zzzz, r7.xyzx
endif
dp3 r0.z, r7.xyzx, r7.xyzx
rsq r0.z, r0.z
mul r2.xyz, r0.zzzz, r7.xyzx
switch r1.x
case l(0)
case l(1)
case l(2)
case l(3)
case l(6)
case l(7)
mul r11.xyz, r6.zzzz, r10.xyzx
mul r5.xzw, r11.xxyz, l(0.318309873, 0.000000, 0.318309873, 0.318309873)
break
case l(4)
mad r11.xyz, r7.xyzx, r0.zzzz, -r1.yzwy
dp3 r3.y, r11.xyzx, r11.xyzx
rsq r3.y, r3.y
mul r11.xyz, r3.yyyy, r11.xyzx
dp3_sat r3.y, r4.xyzx, r2.xyzx
dp3 r3.z, r4.xyzx, -r1.yzwy
add r3.z, |r3.z|, l(0.000010)
min r3.z, r3.z, l(1.000000)
dp3_sat r4.w, r4.xyzx, r11.xyzx
dp3_sat r6.w, -r1.yzwy, r11.xyzx
mul r7.w, r0.x, r0.x
mul r7.w, r7.w, r7.w
mad r8.w, r4.w, r7.w, -r4.w
mad r8.w, r8.w, r4.w, l(1.000000)
mul r8.w, r8.w, r8.w
mul r8.w, r8.w, l(3.14159274)
div r7.w, r7.w, r8.w
mul r7.w, r6.x, r7.w
mul r8.w, r6.w, r6.w
mad r8.w, r8.w, l(4.000000), l(0.000010)
rcp r8.w, r8.w
add r6.w, -r6.w, l(1.000000)
mul r10.w, r6.w, r6.w
mul r10.w, r10.w, r10.w
mul r11.x, r6.w, r10.w
mad r6.w, -r10.w, r6.w, l(1.000000)
mad r10.w, r6.w, l(0.040000), r11.x
mul r11.y, r9.y, r10.w
mul r7.w, r7.w, r8.w
mad r8.w, -r10.w, r9.y, l(1.000000)
mul r10.w, r5.y, r5.y
mad r11.z, r4.w, r10.w, -r4.w
mad r4.w, r11.z, r4.w, l(1.000000)
mul r4.w, r4.w, r4.w
mul r4.w, r4.w, l(3.14159274)
div r4.w, r10.w, r4.w
mul r4.w, r6.y, r4.w
mul r10.w, r5.y, l(0.500000)
mad r11.z, -r5.y, l(0.500000), l(1.000000)
mad r3.z, r3.z, r11.z, r10.w
mad r3.y, r3.y, r11.z, r10.w
mul r3.y, r3.y, r3.z
div r3.y, l(0.250000), r3.y
mul_sat r3.z, r8.y, l(50.000000)
mul r12.xyz, r8.xyzx, r6.wwww
mad r11.xzw, r3.zzzz, r11.xxxx, r12.xxyz
mul r12.xyz, r6.zzzz, r10.xyzx
mul r3.y, r3.y, r4.w
mul r11.xzw, r11.xxzw, r3.yyyy
mad r11.xzw, r12.xxyz, l(0.318309873, 0.000000, 0.318309873, 0.318309873), r11.xxzw
mul r11.xzw, r8.wwww, r11.xxzw
mad r5.xzw, r7.wwww, r11.yyyy, r11.xxzw
break
case l(5)
mad r11.xyz, r7.xyzx, r0.zzzz, -r1.yzwy
dp3 r3.y, r11.xyzx, r11.xyzx
rsq r3.y, r3.y
mul r11.xyz, r3.yyyy, r11.xyzx
dp3_sat r3.y, r4.xyzx, r2.xyzx
dp3_sat r3.z, r4.xyzx, -r1.yzwy
dp3_sat r4.w, r4.xyzx, r11.xyzx
dp3_sat r6.w, -r1.yzwy, r11.xyzx
mad r12.xyzw, r9.xyzw, l(2.000000, 2.000000, 2.000000, 2.000000), l(-1.000000, -1.000000, -1.000000, -1.000000)
mad r7.w, -r12.x, l(0.900000), l(1.000000)
sqrt r7.w, r7.w
mad r8.w, r12.x, l(0.900000), l(1.000000)
rsq r8.w, r8.w
mul r7.w, r7.w, r8.w
sqrt r8.w, r7.w
mul r8.w, r0.y, r8.w
max r8.w, r8.w, l(0.010000)
rsq r7.w, r7.w
mul r7.w, r0.y, r7.w
max r7.w, r7.w, l(0.010000)
mul r13.xyz, r4.zxyz, r12.zwyz
mad r12.xyz, r4.yzxy, r12.wyzw, -r13.xyzx
dp3 r10.w, r12.xyzx, r12.xyzx
rsq r10.w, r10.w
mul r12.xyz, r10.wwww, r12.xyzx
mul r13.xyz, r4.yzxy, r12.zxyz
mad r13.xyz, r12.yzxy, r4.zxyz, -r13.xyzx
dp3 r10.w, r13.xyzx, r13.xyzx
rsq r10.w, r10.w
mul r13.xyz, r10.wwww, r13.xyzx
mul r8.w, r8.w, r8.w
mul r7.w, r7.w, r7.w
dp3 r10.w, r13.xyzx, r11.xyzx
dp3 r11.x, r12.xyzx, r11.xyzx
mul r10.w, r10.w, r10.w
mul r11.y, r8.w, r8.w
div r10.w, r10.w, r11.y
mul r11.x, r11.x, r11.x
mul r11.y, r7.w, r7.w
div r11.x, r11.x, r11.y
add r10.w, r10.w, r11.x
mad r4.w, r4.w, r4.w, r10.w
mul r7.w, r8.w, r7.w
mul r4.w, r4.w, r4.w
mul r4.w, r7.w, r4.w
mul r4.w, r4.w, l(3.14159274)
div r4.w, l(1.000000, 1.000000, 1.000000, 1.000000), r4.w
mul r4.w, r6.y, r4.w
min r4.w, r4.w, l(200.000000)
mul r7.w, r5.y, l(0.500000)
mad r8.w, -r5.y, l(0.500000), l(1.000000)
mad r3.z, r3.z, r8.w, r7.w
mad r3.y, r3.y, r8.w, r7.w
mul r3.y, r3.y, r3.z
div r3.y, l(0.250000), r3.y
add r3.z, -r6.w, l(1.000000)
mul r6.w, r3.z, r3.z
mul r6.w, r6.w, r6.w
mul r7.w, r3.z, r6.w
mul_sat r8.w, r8.y, l(50.000000)
mad r3.z, -r6.w, r3.z, l(1.000000)
mul r11.xyz, r8.xyzx, r3.zzzz
mad r11.xyz, r8.wwww, r7.wwww, r11.xyzx
mul r12.xyz, r6.zzzz, r10.xyzx
mul r3.y, r3.y, r4.w
mul r11.xyz, r11.xyzx, r3.yyyy
mad r5.xzw, r12.xxyz, l(0.318309873, 0.000000, 0.318309873, 0.318309873), r11.xxyz
break
default
mov r5.xzw, l(0,0,0,0)
break
endswitch
switch r1.x
case l(0)
case l(1)
case l(2)
case l(3)
case l(6)
case l(7)
mad r12.xyz, r7.xyzx, r0.zzzz, -r1.yzwy
dp3 r3.y, r12.xyzx, r12.xyzx
rsq r3.y, r3.y
mul r12.xyz, r3.yyyy, r12.xyzx
dp3_sat r3.y, r4.xyzx, r2.xyzx
dp3 r3.z, r4.xyzx, -r1.yzwy
add r3.z, |r3.z|, l(0.000010)
min r3.z, r3.z, l(1.000000)
dp3_sat r4.w, r4.xyzx, r12.xyzx
dp3_sat r6.w, -r1.yzwy, r12.xyzx
mul r7.w, r5.y, r5.y
mad r8.w, r4.w, r7.w, -r4.w
mad r4.w, r8.w, r4.w, l(1.000000)
mul r4.w, r4.w, r4.w
mul r4.w, r4.w, l(3.14159274)
div r4.w, r7.w, r4.w
mul r4.w, r6.y, r4.w
mad r7.w, r3.z, r3.x, r5.y
mad r3.x, r3.y, r3.x, r5.y
mul r3.x, r3.x, r3.z
mad r3.x, r3.y, r7.w, r3.x
rcp r3.x, r3.x
mul r3.x, r3.x, r4.w
add r3.y, -r6.w, l(1.000000)
mul r3.z, r3.y, r3.y
mul r3.z, r3.z, r3.z
mul r4.w, r3.y, r3.z
mul_sat r6.w, r8.y, l(50.000000)
mad r3.y, -r3.z, r3.y, l(1.000000)
mul r12.xyz, r8.xyzx, r3.yyyy
mad r12.xyz, r6.wwww, r4.wwww, r12.xyzx
mul r3.x, r3.x, l(0.500000)
mul r11.xyz, r12.xyzx, r3.xxxx
break
case l(4)
mad r3.xyz, r7.xyzx, r0.zzzz, -r1.yzwy
dp3 r4.w, r3.xyzx, r3.xyzx
rsq r4.w, r4.w
mul r3.xyz, r3.xyzx, r4.wwww
dp3_sat r4.w, r4.xyzx, r2.xyzx
dp3 r6.w, r4.xyzx, -r1.yzwy
add r6.w, |r6.w|, l(0.000010)
min r6.w, r6.w, l(1.000000)
dp3_sat r7.w, r4.xyzx, r3.xyzx
dp3_sat r3.x, -r1.yzwy, r3.xyzx
mul r0.x, r0.x, r0.x
mul r0.x, r0.x, r0.x
mad r3.y, r7.w, r0.x, -r7.w
mad r3.y, r3.y, r7.w, l(1.000000)
mul r3.y, r3.y, r3.y
mul r3.y, r3.y, l(3.14159274)
div r0.x, r0.x, r3.y
mul r0.x, r6.x, r0.x
mul r3.y, r3.x, r3.x
mad r3.y, r3.y, l(4.000000), l(0.000010)
rcp r3.y, r3.y
add r3.x, -r3.x, l(1.000000)
mul r3.z, r3.x, r3.x
mul r3.z, r3.z, r3.z
mul r6.x, r3.x, r3.z
mad r3.x, -r3.z, r3.x, l(1.000000)
mad r3.z, r3.x, l(0.040000), r6.x
mul r8.w, r9.y, r3.z
mul r0.x, r0.x, r3.y
mad r3.y, -r3.z, r9.y, l(1.000000)
mul r3.z, r5.y, r5.y
mad r10.w, r7.w, r3.z, -r7.w
mad r7.w, r10.w, r7.w, l(1.000000)
mul r7.w, r7.w, r7.w
mul r7.w, r7.w, l(3.14159274)
div r3.z, r3.z, r7.w
mul r3.z, r6.y, r3.z
mul r7.w, r5.y, l(0.500000)
mad r10.w, -r5.y, l(0.500000), l(1.000000)
mad r6.w, r6.w, r10.w, r7.w
mad r4.w, r4.w, r10.w, r7.w
mul r4.w, r4.w, r6.w
div r4.w, l(0.250000), r4.w
mul_sat r6.w, r8.y, l(50.000000)
mul r12.xyz, r8.xyzx, r3.xxxx
mad r12.xyz, r6.wwww, r6.xxxx, r12.xyzx
mul r13.xyz, r6.zzzz, r10.xyzx
mul r3.x, r3.z, r4.w
mul r12.xyz, r12.xyzx, r3.xxxx
mad r12.xyz, r13.xyzx, l(0.318309873, 0.318309873, 0.318309873, 0.000000), r12.xyzx
mul r3.xyz, r3.yyyy, r12.xyzx
mad r11.xyz, r0.xxxx, r8.wwww, r3.xyzx
break
case l(5)
mad r3.xyz, r7.xyzx, r0.zzzz, -r1.yzwy
dp3 r0.x, r3.xyzx, r3.xyzx
rsq r0.x, r0.x
mul r3.xyz, r0.xxxx, r3.xyzx
dp3_sat r0.x, r4.xyzx, r2.xyzx
dp3_sat r4.w, r4.xyzx, -r1.yzwy
dp3_sat r6.x, r4.xyzx, r3.xyzx
dp3_sat r6.w, -r1.yzwy, r3.xyzx
mad r12.xyzw, r9.xyzw, l(2.000000, 2.000000, 2.000000, 2.000000), l(-1.000000, -1.000000, -1.000000, -1.000000)
mad r7.w, -r12.x, l(0.900000), l(1.000000)
sqrt r7.w, r7.w
mad r8.w, r12.x, l(0.900000), l(1.000000)
rsq r8.w, r8.w
mul r7.w, r7.w, r8.w
sqrt r8.w, r7.w
mul r8.w, r0.y, r8.w
max r8.w, r8.w, l(0.010000)
rsq r7.w, r7.w
mul r0.y, r0.y, r7.w
max r0.y, r0.y, l(0.010000)
mul r13.xyz, r4.zxyz, r12.zwyz
mad r12.xyz, r4.yzxy, r12.wyzw, -r13.xyzx
dp3 r7.w, r12.xyzx, r12.xyzx
rsq r7.w, r7.w
mul r12.xyz, r7.wwww, r12.xyzx
mul r13.xyz, r4.yzxy, r12.zxyz
mad r13.xyz, r12.yzxy, r4.zxyz, -r13.xyzx
dp3 r7.w, r13.xyzx, r13.xyzx
rsq r7.w, r7.w
mul r13.xyz, r7.wwww, r13.xyzx
mul r7.w, r8.w, r8.w
mul r0.y, r0.y, r0.y
dp3 r8.w, r13.xyzx, r3.xyzx
dp3 r3.x, r12.xyzx, r3.xyzx
mul r3.y, r8.w, r8.w
mul r3.z, r7.w, r7.w
div r3.y, r3.y, r3.z
mul r3.x, r3.x, r3.x
mul r3.z, r0.y, r0.y
div r3.x, r3.x, r3.z
add r3.x, r3.x, r3.y
mad r3.x, r6.x, r6.x, r3.x
mul r0.y, r7.w, r0.y
mul r3.x, r3.x, r3.x
mul r0.y, r0.y, r3.x
mul r0.y, r0.y, l(3.14159274)
div r0.y, l(1.000000, 1.000000, 1.000000, 1.000000), r0.y
mul r0.y, r6.y, r0.y
min r0.y, r0.y, l(200.000000)
mul r3.x, r5.y, l(0.500000)
mad r3.y, -r5.y, l(0.500000), l(1.000000)
mad r3.z, r4.w, r3.y, r3.x
mad r0.x, r0.x, r3.y, r3.x
mul r0.x, r0.x, r3.z
div r0.x, l(0.250000), r0.x
add r3.x, -r6.w, l(1.000000)
mul r3.y, r3.x, r3.x
mul r3.y, r3.y, r3.y
mul r3.z, r3.x, r3.y
mul_sat r4.w, r8.y, l(50.000000)
mad r3.x, -r3.y, r3.x, l(1.000000)
mul r6.xyw, r8.xyxz, r3.xxxx
mad r3.xyz, r4.wwww, r3.zzzz, r6.xywx
mul r6.xyz, r6.zzzz, r10.xyzx
mul r0.x, r0.x, r0.y
mul r3.xyz, r3.xyzx, r0.xxxx
mad r11.xyz, r6.xyzx, l(0.318309873, 0.318309873, 0.318309873, 0.000000), r3.xyzx
break
default
mov r11.xyz, l(0,0,0,0)
break
endswitch
mul r0.x, r2.w, r3.w
mul r3.xyz, r0.xxxx, cb1[1].xyzx
add r5.xyz, r5.xzwx, r11.xyzx
mul r6.xyz, r9.yzwy, r9.yzwy
switch r1.x
case l(2)
mad r0.xyz, r7.xyzx, r0.zzzz, -r1.yzwy
dp3 r1.x, r0.xyzx, r0.xyzx
rsq r1.x, r1.x
mul r0.xyz, r0.xyzx, r1.xxxx
dp3_sat r1.x, r2.xyzx, r1.yzwy
log r1.x, r1.x
mul r1.x, r1.x, l(12.000000)
exp r1.x, r1.x
mad r2.w, r9.x, l(-2.900000), l(3.000000)
mul r1.x, r1.x, r2.w
dp3 r0.x, r4.xyzx, r0.xyzx
mad r0.x, r0.x, r9.x, l(1.000000)
add_sat r0.x, -r9.x, r0.x
mul r0.y, r0.x, l(0.159154937)
mad r0.x, -r0.x, l(0.159154937), l(1.000000)
mad r0.x, r1.x, r0.x, r0.y
mul r8.xyz, r0.xxxx, r6.xyzx
break
case l(3)
dp3 r0.x, r4.xyzx, r2.xyzx
mad_sat r0.x, r0.x, l(0.500000), l(0.500000)
add r0.y, -r9.x, l(1.000000)
sample_l_indexable(texture2d)(float,float,float,float) r0.xyz, r0.xyxx, t8.xyzw, s8, l(0.000000)
mul r8.xyz, r6.xyzx, r0.xyzx
break
case l(7)
dp3 r0.x, -r4.xyzx, r2.xyzx
add r0.x, r0.x, l(0.500000)
mul_sat r0.x, r0.x, l(0.444444448)
dp3_sat r0.y, -r1.yzwy, -r2.xyzx
mul r0.y, r0.y, r0.y
mad r0.y, r0.y, l(-0.640000), l(1.000000)
mul r0.y, r0.y, r0.y
div r0.y, l(0.114591561), r0.y
mul r0.x, r0.y, r0.x
mul r8.xyz, r6.xyzx, r0.xxxx
break
default
mov r8.xyz, l(0,0,0,0)
break
endswitch
mul r0.xyz, r0.wwww, cb1[1].xyzx
mul r0.xyz, r0.xyzx, r8.xyzx
mad o0.xyz, r5.xyzx, r3.xyzx, r0.xyzx
mov o0.w, l(0)
endif
else
mov o0.xyzw, l(0,0,0,0)
endif
ret
// Approximately 0 instruction slots used



The big space I made at line 77 is where it would be fixed in Little Nightmares, but code here is very different! I don't know what I should fix. "cb0[41]" isn't there at all. I think the only remaining stuff to fix may be this shader and another one related to the sun (jungle stage, for example).


Btw, I have fixed compute shaders like DarkStarSword did. Many thanks, DHR and DarkStarSword :).

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

#61
Posted 06/07/2017 07:30 PM   
New version of the fix: https://s3.amazonaws.com/masterotaku/Tekken+7/Tekken7_fix_WIP_4.7z I have fixed some more of the usual effects, and also all reflections related to compute shaders that I could find (all useable stages in practice mode). I still need help with what I said in my previous post. Just before uploading the fix, I noticed that I had enabled the bad specular fix that I did for the previous release, so some experiments I did with the pixel shader I posted were moot. I have to go to sleep so I can't keep working on this more until tomorrow. Edit: here is one screenshot (more than 2MB so I won't embed it): http://u.cubeupload.com/masterotaku/TekkenGameWin64Shipp.jpg
New version of the fix: https://s3.amazonaws.com/masterotaku/Tekken+7/Tekken7_fix_WIP_4.7z

I have fixed some more of the usual effects, and also all reflections related to compute shaders that I could find (all useable stages in practice mode).

I still need help with what I said in my previous post. Just before uploading the fix, I noticed that I had enabled the bad specular fix that I did for the previous release, so some experiments I did with the pixel shader I posted were moot. I have to go to sleep so I can't keep working on this more until tomorrow.

Edit: here is one screenshot (more than 2MB so I won't embed it): http://u.cubeupload.com/masterotaku/TekkenGameWin64Shipp.jpg

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

#62
Posted 06/07/2017 10:11 PM   
Looks like that's last problem maybe cause I played a bunch tonight and it looked fantastic
Looks like that's last problem maybe cause I played a bunch tonight and it looked fantastic

i7-4790K CPU 4.8Ghz stable overclock.
16 GB RAM Corsair
ASUS Turbo 2080TI
Samsung SSD 840Pro
ASUS Z97-WS3D
Surround ASUS Rog Swift PG278Q(R), 2x PG278Q (yes it works)
Obutto R3volution.
Windows 10 pro 64x (Windows 7 Dual boot)

#63
Posted 06/08/2017 12:54 PM   
[quote="necropants"]Looks like that's last problem maybe cause I played a bunch tonight and it looked fantastic[/quote] Not the last. There is also the sun and its light in some stages (probably related to the sky shader, I think), and two more shaders, related to two fire effects. One of them is one of Alisa's attacks (1b9f2af7c60f905e-ps_replace.txt. Part of the fire effect remains at screen depth): [code]//Alisa attack 2 (fire effect). // ---- Created with 3Dmigoto v1.2.57 on Tue Jun 06 21:04:50 2017 Texture2D<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 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 cb4 : register(b4) { float4 cb4[9]; } cbuffer cb3 : register(b3) { float4 cb3[7]; } cbuffer cb2 : register(b2) { float4 cb2[10]; } cbuffer cb1 : register(b1) { float4 cb1[121]; } cbuffer cb0 : register(b0) { float4 cb0[123]; } // 3Dmigoto declarations #define cmp - Texture1D<float4> IniParams : register(t120); Texture2D<float4> StereoParams : register(t125); #include "matrix.hlsl" void main( float4 v0 : TEXCOORD10, float4 v1 : TEXCOORD11, float4 v2 : TEXCOORD1, float4 v3 : TEXCOORD2, float4 v4 : TEXCOORD3, float4 v5 : PARTICLE_POSITION0, nointerpolation uint v6 : PACKED_EYE_INDEX0, float4 v7 : TEXCOORD7, float4 v8 : SV_Position0, uint v9 : SV_IsFrontFace0, out float4 o0 : SV_Target0) { float4 r0,r1,r2,r3,r4,r5,r6,r7,r8; uint4 bitmask, uiDest; float4 fDest; r0.x = (int)v6.x & 1; if (r0.x == 0) { r0.x = cb0[36].x; r0.y = cb0[37].x; r0.z = cb0[38].x; r0.w = cb0[39].x; r1.x = cb0[36].y; r1.y = cb0[37].y; r1.z = cb0[38].y; r1.w = cb0[39].y; r2.x = cb0[36].z; r2.y = cb0[37].z; r2.z = cb0[38].z; r2.w = cb0[39].z; r3.x = cb0[36].w; r3.y = cb0[37].w; r3.z = cb0[38].w; r3.w = cb0[39].w; r4.xy = cb0[114].xy; r4.zw = cb0[115].zw; r5.xyz = cb0[56].xyz; } else { r0.x = cb1[36].x; r0.y = cb1[37].x; r0.z = cb1[38].x; r0.w = cb1[39].x; r1.x = cb1[36].y; r1.y = cb1[37].y; r1.z = cb1[38].y; r1.w = cb1[39].y; r2.x = cb1[36].z; r2.y = cb1[37].z; r2.z = cb1[38].z; r2.w = cb1[39].z; r3.x = cb1[36].w; r3.y = cb1[37].w; r3.z = cb1[38].w; r3.w = cb1[39].w; r4.xy = cb1[114].xy; r4.zw = cb1[115].zw; r5.xyz = cb1[56].xyz; } r4.xy = v8.xy + -r4.xy; r4.xy = r4.xy * r4.zw + float2(-0.5,-0.5); r4.xy = v8.ww * r4.xy; r4.z = v8.w; r4.xyw = float3(2,-2,1) * r4.xyz; r4.xy = r4.xy / r4.ww; r6.xyzw = -cb3[6].xyxy + r4.xyxy; r6.xyzw = r6.xyzw * cb3[6].zwzw + float4(0.5,0.5,0.5,0.5); r6.xyzw = -v4.xyxy + r6.xyzw; r6.xyzw = cb4[6].xxxx * r6.xyzw + v4.xyxy; r7.x = cb4[6].y; r7.y = v2.z; r6.xyzw = r6.xyzw * v2.xxyy + r7.xyxy; r7.xy = v4.xy * cb4[1].xy + cb4[2].xy; r7.xy = t0.Sample(s0_s, r7.xy).xy; r7.xy = r7.xy * float2(2,2) + float2(-1,-1); r7.xy = max(float2(9.99999997e-007,9.99999997e-007), abs(r7.xy)); r7.xy = log2(r7.xy); r7.xy = cb4[7].yy * r7.xy; r7.xy = exp2(r7.xy); r6.xyzw = r7.xyxy * cb4[7].zzzz + r6.xyzw; r8.xyz = t1.Sample(s1_s, r6.xy).xyz; r6.xy = r7.xy * cb4[7].zz + v4.xy; r7.xyz = t2.Sample(s2_s, r6.xy).xyz; r7.xyz = r8.xyz + r7.xyz; r8.xyz = cb4[7].www * r7.xyz; r7.xyz = -r7.xyz * cb4[7].www + r7.xyz; r7.xyz = r7.xyz * float3(0.5,0.5,0.5) + r8.xyz; r4.w = t3.Sample(s3_s, v4.xy).x; r7.xyz = r7.xyz * r4.www; r7.xyz = r7.xyz * v3.xyz + cb4[3].xyz; r5.w = t4.Sample(s4_s, r6.zw).x; r6.x = v2.w * -9 + 10; r5.w = max(9.99999997e-007, abs(r5.w)); r5.w = log2(r5.w); r5.w = r6.x * r5.w; r5.w = exp2(r5.w); r5.w = min(1, r5.w); r4.w = saturate(r4.w + r4.w); r4.w = r5.w * r4.w; r4.w = v3.w * r4.w; r4.xy = r4.xy * cb0[52].xy + cb0[52].wz; r4.x = t5.SampleLevel(s5_s, r4.xy, 0).x; r4.y = r4.x * cb0[51].x + cb0[51].y; r4.x = r4.x * cb0[51].z + -cb0[51].w; r4.x = 1 / r4.x; r4.x = r4.y + r4.x; r4.x = -r4.z * 1 + r4.x; r4.x = saturate(r4.x / cb4[8].y); r7.w = saturate(r4.w * r4.x); r4.x = cmp(0 < cb0[122].x); if (r4.x != 0) { r4.xyz = v8.xyz; r4.w = 1; r0.x = dot(r4.xyzw, r0.xyzw); r0.y = dot(r4.xyzw, r1.xyzw); r0.z = dot(r4.xyzw, r2.xyzw); r0.w = dot(r4.xyzw, r3.xyzw); r0.xyz = r0.xyz / r0.www; r0.xyz = r0.xyz + -r5.xyz; r1.xyz = -cb2[8].xyz + r0.xyz; r2.xyz = float3(1,1,1) + cb2[9].xyz; r1.xyz = cmp(r2.xyz < abs(r1.xyz)); r0.w = (int)r1.y | (int)r1.x; r0.w = (int)r1.z | (int)r0.w; r0.x = dot(r0.xyz, float3(0.577000022,0.577000022,0.577000022)); r0.x = 0.00200000009 * r0.x; r0.x = frac(r0.x); r0.x = cmp(0.5 < r0.x); r1.yzw = r0.xxx ? float3(0,1,1) : float3(1,1,0); r1.x = 1; r7.xyzw = r0.wwww ? r1.yzwx : r7.xyzw; } r0.xyz = v7.www * r7.xyz; o0.xyz = r0.xyz * r7.www; o0.w = 0; return; } /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // // Generated by Microsoft (R) D3D Shader Disassembler // // using 3Dmigoto v1.2.57 on Tue Jun 06 21:04:50 2017 // // // Input signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // TEXCOORD 10 xyzw 0 NONE float // TEXCOORD 11 xyzw 1 NONE float // TEXCOORD 1 xyzw 2 NONE float xyzw // TEXCOORD 2 xyzw 3 NONE float xyzw // TEXCOORD 3 xyzw 4 NONE float xy // PARTICLE_POSITION 0 xyzw 5 NONE float // PACKED_EYE_INDEX 0 x 6 NONE uint x // TEXCOORD 7 xyzw 7 NONE float w // SV_Position 0 xyzw 8 POS float xyzw // SV_IsFrontFace 0 x 9 FFACE uint // // // 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[123], immediateIndexed dcl_constantbuffer cb1[116], immediateIndexed dcl_constantbuffer cb2[10], immediateIndexed dcl_constantbuffer cb3[7], immediateIndexed dcl_constantbuffer cb4[9], 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_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) t5 dcl_input_ps linear v2.xyzw dcl_input_ps linear v3.xyzw dcl_input_ps linear v4.xy dcl_input_ps constant v6.x dcl_input_ps linear v7.w dcl_input_ps_siv linear noperspective v8.xyzw, position dcl_output o0.xyzw dcl_temps 9 and r0.x, v6.x, l(1) if_z r0.x mov r0.x, cb0[36].x mov r0.y, cb0[37].x mov r0.z, cb0[38].x mov r0.w, cb0[39].x mov r1.x, cb0[36].y mov r1.y, cb0[37].y mov r1.z, cb0[38].y mov r1.w, cb0[39].y mov r2.x, cb0[36].z mov r2.y, cb0[37].z mov r2.z, cb0[38].z mov r2.w, cb0[39].z mov r3.x, cb0[36].w mov r3.y, cb0[37].w mov r3.z, cb0[38].w mov r3.w, cb0[39].w mov r4.xy, cb0[114].xyxx mov r4.zw, cb0[115].zzzw mov r5.xyz, cb0[56].xyzx else mov r0.x, cb1[36].x mov r0.y, cb1[37].x mov r0.z, cb1[38].x mov r0.w, cb1[39].x mov r1.x, cb1[36].y mov r1.y, cb1[37].y mov r1.z, cb1[38].y mov r1.w, cb1[39].y mov r2.x, cb1[36].z mov r2.y, cb1[37].z mov r2.z, cb1[38].z mov r2.w, cb1[39].z mov r3.x, cb1[36].w mov r3.y, cb1[37].w mov r3.z, cb1[38].w mov r3.w, cb1[39].w mov r4.xy, cb1[114].xyxx mov r4.zw, cb1[115].zzzw mov r5.xyz, cb1[56].xyzx endif add r4.xy, -r4.xyxx, v8.xyxx mad r4.xy, r4.xyxx, r4.zwzz, l(-0.500000, -0.500000, 0.000000, 0.000000) mul r4.xy, r4.xyxx, v8.wwww mov r4.z, v8.w mul r4.xyw, r4.xyxz, l(2.000000, -2.000000, 0.000000, 1.000000) div r4.xy, r4.xyxx, r4.wwww add r6.xyzw, r4.xyxy, -cb3[6].xyxy mad r6.xyzw, r6.xyzw, cb3[6].zwzw, l(0.500000, 0.500000, 0.500000, 0.500000) add r6.xyzw, r6.xyzw, -v4.xyxy mad r6.xyzw, cb4[6].xxxx, r6.xyzw, v4.xyxy mov r7.x, cb4[6].y mov r7.y, v2.z mad r6.xyzw, r6.xyzw, v2.xxyy, r7.xyxy mad r7.xy, v4.xyxx, cb4[1].xyxx, cb4[2].xyxx sample_indexable(texture2d)(float,float,float,float) r7.xy, r7.xyxx, t0.xyzw, s0 mad r7.xy, r7.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) max r7.xy, |r7.xyxx|, l(0.000001, 0.000001, 0.000000, 0.000000) log r7.xy, r7.xyxx mul r7.xy, r7.xyxx, cb4[7].yyyy exp r7.xy, r7.xyxx mad r6.xyzw, r7.xyxy, cb4[7].zzzz, r6.xyzw sample_indexable(texture2d)(float,float,float,float) r8.xyz, r6.xyxx, t1.xyzw, s1 mad r6.xy, r7.xyxx, cb4[7].zzzz, v4.xyxx sample_indexable(texture2d)(float,float,float,float) r7.xyz, r6.xyxx, t2.xyzw, s2 add r7.xyz, r7.xyzx, r8.xyzx mul r8.xyz, r7.xyzx, cb4[7].wwww mad r7.xyz, -r7.xyzx, cb4[7].wwww, r7.xyzx mad r7.xyz, r7.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r8.xyzx sample_indexable(texture2d)(float,float,float,float) r4.w, v4.xyxx, t3.yzwx, s3 mul r7.xyz, r4.wwww, r7.xyzx mad r7.xyz, r7.xyzx, v3.xyzx, cb4[3].xyzx sample_indexable(texture2d)(float,float,float,float) r5.w, r6.zwzz, t4.yzwx, s4 mad r6.x, v2.w, l(-9.000000), l(10.000000) max r5.w, |r5.w|, l(0.000001) log r5.w, r5.w mul r5.w, r5.w, r6.x exp r5.w, r5.w min r5.w, r5.w, l(1.000000) add_sat r4.w, r4.w, r4.w mul r4.w, r4.w, r5.w mul r4.w, r4.w, v3.w mad r4.xy, r4.xyxx, cb0[52].xyxx, cb0[52].wzww sample_l_indexable(texture2d)(float,float,float,float) r4.x, r4.xyxx, t5.xyzw, s5, l(0.000000) mad r4.y, r4.x, cb0[51].x, cb0[51].y mad r4.x, r4.x, cb0[51].z, -cb0[51].w div r4.x, l(1.000000, 1.000000, 1.000000, 1.000000), r4.x add r4.x, r4.x, r4.y mad r4.x, -r4.z, l(1.000000), r4.x div_sat r4.x, r4.x, cb4[8].y mul_sat r7.w, r4.x, r4.w lt r4.x, l(0.000000), cb0[122].x if_nz r4.x mov r4.xyz, v8.xyzx mov r4.w, l(1.000000) dp4 r0.x, r4.xyzw, r0.xyzw dp4 r0.y, r4.xyzw, r1.xyzw dp4 r0.z, r4.xyzw, r2.xyzw dp4 r0.w, r4.xyzw, r3.xyzw div r0.xyz, r0.xyzx, r0.wwww add r0.xyz, -r5.xyzx, r0.xyzx add r1.xyz, r0.xyzx, -cb2[8].xyzx add r2.xyz, cb2[9].xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) lt r1.xyz, r2.xyzx, |r1.xyzx| or r0.w, r1.y, r1.x or r0.w, r1.z, r0.w dp3 r0.x, r0.xyzx, l(0.577000, 0.577000, 0.577000, 0.000000) mul r0.x, r0.x, l(0.002000) frc r0.x, r0.x lt r0.x, l(0.500000), r0.x movc r1.yzw, r0.xxxx, l(0,0,1.000000,1.000000), l(0,1.000000,1.000000,0) mov r1.x, l(1.000000) movc r7.xyzw, r0.wwww, r1.yzwx, r7.xyzw endif mul r0.xyz, r7.xyzx, v7.wwww mul o0.xyz, r7.wwww, r0.xyzx mov o0.w, l(0) ret // Approximately 0 instruction slots used ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ [/code] Maybe I'll have to fix it in ASM, because of the differences compared to decal problems. I have some things in mind for when I get home. But if someone already knows the answer, please help :). Edit: also, I need to improve the HUD depth behavior. There are some those shaders where I need to calculate depth better. And maybe catch some more when a round starts.
necropants said:Looks like that's last problem maybe cause I played a bunch tonight and it looked fantastic


Not the last. There is also the sun and its light in some stages (probably related to the sky shader, I think), and two more shaders, related to two fire effects. One of them is one of Alisa's attacks (1b9f2af7c60f905e-ps_replace.txt. Part of the fire effect remains at screen depth):

//Alisa attack 2 (fire effect).
// ---- Created with 3Dmigoto v1.2.57 on Tue Jun 06 21:04:50 2017
Texture2D<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 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 cb4 : register(b4)
{
float4 cb4[9];
}

cbuffer cb3 : register(b3)
{
float4 cb3[7];
}

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

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

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




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

#include "matrix.hlsl"

void main(
float4 v0 : TEXCOORD10,
float4 v1 : TEXCOORD11,
float4 v2 : TEXCOORD1,
float4 v3 : TEXCOORD2,
float4 v4 : TEXCOORD3,
float4 v5 : PARTICLE_POSITION0,
nointerpolation uint v6 : PACKED_EYE_INDEX0,
float4 v7 : TEXCOORD7,
float4 v8 : SV_Position0,
uint v9 : SV_IsFrontFace0,
out float4 o0 : SV_Target0)
{
float4 r0,r1,r2,r3,r4,r5,r6,r7,r8;
uint4 bitmask, uiDest;
float4 fDest;

r0.x = (int)v6.x & 1;
if (r0.x == 0) {
r0.x = cb0[36].x;
r0.y = cb0[37].x;
r0.z = cb0[38].x;
r0.w = cb0[39].x;
r1.x = cb0[36].y;
r1.y = cb0[37].y;
r1.z = cb0[38].y;
r1.w = cb0[39].y;
r2.x = cb0[36].z;
r2.y = cb0[37].z;
r2.z = cb0[38].z;
r2.w = cb0[39].z;
r3.x = cb0[36].w;
r3.y = cb0[37].w;
r3.z = cb0[38].w;
r3.w = cb0[39].w;
r4.xy = cb0[114].xy;
r4.zw = cb0[115].zw;
r5.xyz = cb0[56].xyz;
} else {
r0.x = cb1[36].x;
r0.y = cb1[37].x;
r0.z = cb1[38].x;
r0.w = cb1[39].x;
r1.x = cb1[36].y;
r1.y = cb1[37].y;
r1.z = cb1[38].y;
r1.w = cb1[39].y;
r2.x = cb1[36].z;
r2.y = cb1[37].z;
r2.z = cb1[38].z;
r2.w = cb1[39].z;
r3.x = cb1[36].w;
r3.y = cb1[37].w;
r3.z = cb1[38].w;
r3.w = cb1[39].w;
r4.xy = cb1[114].xy;
r4.zw = cb1[115].zw;
r5.xyz = cb1[56].xyz;
}
r4.xy = v8.xy + -r4.xy;
r4.xy = r4.xy * r4.zw + float2(-0.5,-0.5);
r4.xy = v8.ww * r4.xy;
r4.z = v8.w;
r4.xyw = float3(2,-2,1) * r4.xyz;
r4.xy = r4.xy / r4.ww;


r6.xyzw = -cb3[6].xyxy + r4.xyxy;
r6.xyzw = r6.xyzw * cb3[6].zwzw + float4(0.5,0.5,0.5,0.5);
r6.xyzw = -v4.xyxy + r6.xyzw;
r6.xyzw = cb4[6].xxxx * r6.xyzw + v4.xyxy;
r7.x = cb4[6].y;
r7.y = v2.z;
r6.xyzw = r6.xyzw * v2.xxyy + r7.xyxy;
r7.xy = v4.xy * cb4[1].xy + cb4[2].xy;
r7.xy = t0.Sample(s0_s, r7.xy).xy;
r7.xy = r7.xy * float2(2,2) + float2(-1,-1);
r7.xy = max(float2(9.99999997e-007,9.99999997e-007), abs(r7.xy));
r7.xy = log2(r7.xy);
r7.xy = cb4[7].yy * r7.xy;
r7.xy = exp2(r7.xy);
r6.xyzw = r7.xyxy * cb4[7].zzzz + r6.xyzw;
r8.xyz = t1.Sample(s1_s, r6.xy).xyz;
r6.xy = r7.xy * cb4[7].zz + v4.xy;
r7.xyz = t2.Sample(s2_s, r6.xy).xyz;
r7.xyz = r8.xyz + r7.xyz;
r8.xyz = cb4[7].www * r7.xyz;
r7.xyz = -r7.xyz * cb4[7].www + r7.xyz;
r7.xyz = r7.xyz * float3(0.5,0.5,0.5) + r8.xyz;
r4.w = t3.Sample(s3_s, v4.xy).x;
r7.xyz = r7.xyz * r4.www;
r7.xyz = r7.xyz * v3.xyz + cb4[3].xyz;
r5.w = t4.Sample(s4_s, r6.zw).x;
r6.x = v2.w * -9 + 10;
r5.w = max(9.99999997e-007, abs(r5.w));
r5.w = log2(r5.w);
r5.w = r6.x * r5.w;
r5.w = exp2(r5.w);
r5.w = min(1, r5.w);
r4.w = saturate(r4.w + r4.w);
r4.w = r5.w * r4.w;
r4.w = v3.w * r4.w;
r4.xy = r4.xy * cb0[52].xy + cb0[52].wz;
r4.x = t5.SampleLevel(s5_s, r4.xy, 0).x;
r4.y = r4.x * cb0[51].x + cb0[51].y;
r4.x = r4.x * cb0[51].z + -cb0[51].w;
r4.x = 1 / r4.x;
r4.x = r4.y + r4.x;
r4.x = -r4.z * 1 + r4.x;
r4.x = saturate(r4.x / cb4[8].y);
r7.w = saturate(r4.w * r4.x);
r4.x = cmp(0 < cb0[122].x);
if (r4.x != 0) {
r4.xyz = v8.xyz;
r4.w = 1;
r0.x = dot(r4.xyzw, r0.xyzw);
r0.y = dot(r4.xyzw, r1.xyzw);
r0.z = dot(r4.xyzw, r2.xyzw);
r0.w = dot(r4.xyzw, r3.xyzw);
r0.xyz = r0.xyz / r0.www;



r0.xyz = r0.xyz + -r5.xyz;
r1.xyz = -cb2[8].xyz + r0.xyz;
r2.xyz = float3(1,1,1) + cb2[9].xyz;
r1.xyz = cmp(r2.xyz < abs(r1.xyz));
r0.w = (int)r1.y | (int)r1.x;
r0.w = (int)r1.z | (int)r0.w;
r0.x = dot(r0.xyz, float3(0.577000022,0.577000022,0.577000022));
r0.x = 0.00200000009 * r0.x;
r0.x = frac(r0.x);
r0.x = cmp(0.5 < r0.x);
r1.yzw = r0.xxx ? float3(0,1,1) : float3(1,1,0);
r1.x = 1;
r7.xyzw = r0.wwww ? r1.yzwx : r7.xyzw;
}
r0.xyz = v7.www * r7.xyz;
o0.xyz = r0.xyz * r7.www;
o0.w = 0;
return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
// using 3Dmigoto v1.2.57 on Tue Jun 06 21:04:50 2017
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// TEXCOORD 10 xyzw 0 NONE float
// TEXCOORD 11 xyzw 1 NONE float
// TEXCOORD 1 xyzw 2 NONE float xyzw
// TEXCOORD 2 xyzw 3 NONE float xyzw
// TEXCOORD 3 xyzw 4 NONE float xy
// PARTICLE_POSITION 0 xyzw 5 NONE float
// PACKED_EYE_INDEX 0 x 6 NONE uint x
// TEXCOORD 7 xyzw 7 NONE float w
// SV_Position 0 xyzw 8 POS float xyzw
// SV_IsFrontFace 0 x 9 FFACE uint
//
//
// 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[123], immediateIndexed
dcl_constantbuffer cb1[116], immediateIndexed
dcl_constantbuffer cb2[10], immediateIndexed
dcl_constantbuffer cb3[7], immediateIndexed
dcl_constantbuffer cb4[9], 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_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) t5
dcl_input_ps linear v2.xyzw
dcl_input_ps linear v3.xyzw
dcl_input_ps linear v4.xy
dcl_input_ps constant v6.x
dcl_input_ps linear v7.w
dcl_input_ps_siv linear noperspective v8.xyzw, position
dcl_output o0.xyzw
dcl_temps 9
and r0.x, v6.x, l(1)
if_z r0.x
mov r0.x, cb0[36].x
mov r0.y, cb0[37].x
mov r0.z, cb0[38].x
mov r0.w, cb0[39].x
mov r1.x, cb0[36].y
mov r1.y, cb0[37].y
mov r1.z, cb0[38].y
mov r1.w, cb0[39].y
mov r2.x, cb0[36].z
mov r2.y, cb0[37].z
mov r2.z, cb0[38].z
mov r2.w, cb0[39].z
mov r3.x, cb0[36].w
mov r3.y, cb0[37].w
mov r3.z, cb0[38].w
mov r3.w, cb0[39].w
mov r4.xy, cb0[114].xyxx
mov r4.zw, cb0[115].zzzw
mov r5.xyz, cb0[56].xyzx
else
mov r0.x, cb1[36].x
mov r0.y, cb1[37].x
mov r0.z, cb1[38].x
mov r0.w, cb1[39].x
mov r1.x, cb1[36].y
mov r1.y, cb1[37].y
mov r1.z, cb1[38].y
mov r1.w, cb1[39].y
mov r2.x, cb1[36].z
mov r2.y, cb1[37].z
mov r2.z, cb1[38].z
mov r2.w, cb1[39].z
mov r3.x, cb1[36].w
mov r3.y, cb1[37].w
mov r3.z, cb1[38].w
mov r3.w, cb1[39].w
mov r4.xy, cb1[114].xyxx
mov r4.zw, cb1[115].zzzw
mov r5.xyz, cb1[56].xyzx
endif
add r4.xy, -r4.xyxx, v8.xyxx
mad r4.xy, r4.xyxx, r4.zwzz, l(-0.500000, -0.500000, 0.000000, 0.000000)
mul r4.xy, r4.xyxx, v8.wwww
mov r4.z, v8.w
mul r4.xyw, r4.xyxz, l(2.000000, -2.000000, 0.000000, 1.000000)
div r4.xy, r4.xyxx, r4.wwww
add r6.xyzw, r4.xyxy, -cb3[6].xyxy
mad r6.xyzw, r6.xyzw, cb3[6].zwzw, l(0.500000, 0.500000, 0.500000, 0.500000)
add r6.xyzw, r6.xyzw, -v4.xyxy
mad r6.xyzw, cb4[6].xxxx, r6.xyzw, v4.xyxy
mov r7.x, cb4[6].y
mov r7.y, v2.z
mad r6.xyzw, r6.xyzw, v2.xxyy, r7.xyxy
mad r7.xy, v4.xyxx, cb4[1].xyxx, cb4[2].xyxx
sample_indexable(texture2d)(float,float,float,float) r7.xy, r7.xyxx, t0.xyzw, s0
mad r7.xy, r7.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000)
max r7.xy, |r7.xyxx|, l(0.000001, 0.000001, 0.000000, 0.000000)
log r7.xy, r7.xyxx
mul r7.xy, r7.xyxx, cb4[7].yyyy
exp r7.xy, r7.xyxx
mad r6.xyzw, r7.xyxy, cb4[7].zzzz, r6.xyzw
sample_indexable(texture2d)(float,float,float,float) r8.xyz, r6.xyxx, t1.xyzw, s1
mad r6.xy, r7.xyxx, cb4[7].zzzz, v4.xyxx
sample_indexable(texture2d)(float,float,float,float) r7.xyz, r6.xyxx, t2.xyzw, s2
add r7.xyz, r7.xyzx, r8.xyzx
mul r8.xyz, r7.xyzx, cb4[7].wwww
mad r7.xyz, -r7.xyzx, cb4[7].wwww, r7.xyzx
mad r7.xyz, r7.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r8.xyzx
sample_indexable(texture2d)(float,float,float,float) r4.w, v4.xyxx, t3.yzwx, s3
mul r7.xyz, r4.wwww, r7.xyzx
mad r7.xyz, r7.xyzx, v3.xyzx, cb4[3].xyzx
sample_indexable(texture2d)(float,float,float,float) r5.w, r6.zwzz, t4.yzwx, s4
mad r6.x, v2.w, l(-9.000000), l(10.000000)
max r5.w, |r5.w|, l(0.000001)
log r5.w, r5.w
mul r5.w, r5.w, r6.x
exp r5.w, r5.w
min r5.w, r5.w, l(1.000000)
add_sat r4.w, r4.w, r4.w
mul r4.w, r4.w, r5.w
mul r4.w, r4.w, v3.w
mad r4.xy, r4.xyxx, cb0[52].xyxx, cb0[52].wzww
sample_l_indexable(texture2d)(float,float,float,float) r4.x, r4.xyxx, t5.xyzw, s5, l(0.000000)
mad r4.y, r4.x, cb0[51].x, cb0[51].y
mad r4.x, r4.x, cb0[51].z, -cb0[51].w
div r4.x, l(1.000000, 1.000000, 1.000000, 1.000000), r4.x
add r4.x, r4.x, r4.y
mad r4.x, -r4.z, l(1.000000), r4.x
div_sat r4.x, r4.x, cb4[8].y
mul_sat r7.w, r4.x, r4.w
lt r4.x, l(0.000000), cb0[122].x
if_nz r4.x
mov r4.xyz, v8.xyzx
mov r4.w, l(1.000000)
dp4 r0.x, r4.xyzw, r0.xyzw
dp4 r0.y, r4.xyzw, r1.xyzw
dp4 r0.z, r4.xyzw, r2.xyzw
dp4 r0.w, r4.xyzw, r3.xyzw
div r0.xyz, r0.xyzx, r0.wwww
add r0.xyz, -r5.xyzx, r0.xyzx
add r1.xyz, r0.xyzx, -cb2[8].xyzx
add r2.xyz, cb2[9].xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
lt r1.xyz, r2.xyzx, |r1.xyzx|
or r0.w, r1.y, r1.x
or r0.w, r1.z, r0.w
dp3 r0.x, r0.xyzx, l(0.577000, 0.577000, 0.577000, 0.000000)
mul r0.x, r0.x, l(0.002000)
frc r0.x, r0.x
lt r0.x, l(0.500000), r0.x
movc r1.yzw, r0.xxxx, l(0,0,1.000000,1.000000), l(0,1.000000,1.000000,0)
mov r1.x, l(1.000000)
movc r7.xyzw, r0.wwww, r1.yzwx, r7.xyzw
endif
mul r0.xyz, r7.xyzx, v7.wwww
mul o0.xyz, r7.wwww, r0.xyzx
mov o0.w, l(0)
ret
// Approximately 0 instruction slots used

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


Maybe I'll have to fix it in ASM, because of the differences compared to decal problems. I have some things in mind for when I get home. But if someone already knows the answer, please help :).

Edit: also, I need to improve the HUD depth behavior. There are some those shaders where I need to calculate depth better. And maybe catch some more when a round starts.

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

#64
Posted 06/08/2017 01:17 PM   
No release today, because I have been working until the end of the day. I have fixed the skies and clouds (including the sun), more decals, buildings and glass reflections, Dragon's Nest shadows, etc. 142 files inside ShaderFixes. And I'll probably find more effects to fix. Specular lights still pending.
No release today, because I have been working until the end of the day. I have fixed the skies and clouds (including the sun), more decals, buildings and glass reflections, Dragon's Nest shadows, etc. 142 files inside ShaderFixes. And I'll probably find more effects to fix.

Specular lights still pending.

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

#65
Posted 06/08/2017 10:24 PM   
@masterotaku For specular lights, you may need to fix more than 1 shader. 2198988ccc85453d-ps don't seems to be the right shader. 1b9f2af7c60f905e-ps seems wrong, try to catch another PS related to that effect. Fixing another UE4 game i dump by mistake a shader that start exactly with those long cb0[x] lines....and in the end was another one.
@masterotaku

For specular lights, you may need to fix more than 1 shader. 2198988ccc85453d-ps don't seems to be the right shader.

1b9f2af7c60f905e-ps seems wrong, try to catch another PS related to that effect. Fixing another UE4 game i dump by mistake a shader that start exactly with those long cb0[x] lines....and in the end was another one.

MY WEB

Helix Mod - Making 3D Better

My 3D Screenshot Gallery

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

#66
Posted 06/08/2017 11:57 PM   
New version of the fix: https://s3.amazonaws.com/masterotaku/Tekken+7/Tekken7_fix_WIP_6.7z I have fixed all skies, more effects, background geometry occlusion when it's near the camera, rage effect on all characters... Geometry was A LOT of shaders, that I fixed in an automatic way (find and replace, in all compatible shaders that my PC dumped automatically since the first day). So there are now 1470 shaders in the ShaderFixes folder. This means that you will notice a lot more compiling time when you start a fight in a new stage for the first time. But this was necessary. Still no specular reflections fix. By the way, I put there a hidden feature, to make the Arena stage TVs render a stereoscopic image (3D inside 3D!). However it heavily breaks lighting in other stages, so use at your own risk and for fun. To enable that, search these lines and uncomment them: [code] ;[TextureOverride1] ;Hash=43af44d1 ;StereoMode=1 [/code] For that hidden feature, I've made a new hotkey, F6. By default, the image inside the TVs can be at higher than 100% depth, but with F6 you can make their image pop out (also with a middle step too) to not surpass that 100%. Screenshots of this: http://u.cubeupload.com/masterotaku/Tekkenunlimiteddepth.jpg http://u.cubeupload.com/masterotaku/Tekkenlimiteddepth.jpg @DHR: the rage effect I fixed was in the pixel shaders of characters' geometry. Could that be the key for specular reflections? Here is an example of a "rage effect" fixed shader: [code] //Gigas body. // ---- Created with 3Dmigoto v1.2.57 on Sat Jun 10 17:24:51 2017 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 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 cb5 : register(b5) { float4 cb5[24]; } cbuffer cb4 : register(b4) { float4 cb4[20]; } cbuffer cb3 : register(b3) { float4 cb3[15]; } cbuffer cb2 : register(b2) { float4 cb2[12]; } cbuffer cb1 : register(b1) { float4 cb1[121]; } cbuffer cb0 : register(b0) { float4 cb0[139]; } // 3Dmigoto declarations #define cmp - Texture1D<float4> IniParams : register(t120); Texture2D<float4> StereoParams : register(t125); #include "matrix.hlsl" void main( linear centroid float4 v0 : TEXCOORD10, linear centroid float4 v1 : TEXCOORD11, float4 v2 : COLOR0, float2 v3 : TEXCOORD0, nointerpolation uint v4 : PACKED_EYE_INDEX0, float4 v5 : SV_Position0, uint v6 : SV_IsFrontFace0, out float4 o0 : SV_Target0, out float4 o1 : SV_Target1, out float4 o2 : SV_Target2, out float4 o3 : SV_Target3, out float4 o4 : SV_Target4, out float4 o5 : SV_Target5) { float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12; uint4 bitmask, uiDest; float4 fDest; r0.x = (int)v4.x & 1; if (r0.x == 0) { r0.x = cb0[36].x; r0.y = cb0[37].x; r0.z = cb0[38].x; r0.w = cb0[39].x; r1.x = cb0[36].y; r1.y = cb0[37].y; r1.z = cb0[38].y; r1.w = cb0[39].y; r2.x = cb0[36].z; r2.y = cb0[37].z; r2.z = cb0[38].z; r2.w = cb0[39].z; r3.x = cb0[36].w; r3.y = cb0[37].w; r3.z = cb0[38].w; r3.w = cb0[39].w; r4.xyz = cb0[56].xyz; } else { r0.x = cb1[36].x; r0.y = cb1[37].x; r0.z = cb1[38].x; r0.w = cb1[39].x; r1.x = cb1[36].y; r1.y = cb1[37].y; r1.z = cb1[38].y; r1.w = cb1[39].y; r2.x = cb1[36].z; r2.y = cb1[37].z; r2.z = cb1[38].z; r2.w = cb1[39].z; r3.x = cb1[36].w; r3.y = cb1[37].w; r3.z = cb1[38].w; r3.w = cb1[39].w; r4.xyz = cb1[56].xyz; } r5.xyz = v1.zxy * v0.yzx; r5.xyz = v1.yzx * v0.zxy + -r5.xyz; r5.xyz = v1.www * r5.xyz; r6.xyz = v5.xyz; r6.w = 1; r0.x = dot(r6.xyzw, r0.xyzw); r0.y = dot(r6.xyzw, r1.xyzw); r0.z = dot(r6.xyzw, r2.xyzw); r0.w = dot(r6.xyzw, r3.xyzw); r0.xyz = r0.xyz / r0.www; float4 s = StereoParams.Load(0); matrix m = MATRIX(cb1, 36); matrix im = inverse(m); float4 t = mul(float4(r0.xyz, 1), im); t.x -= s.x * (t.w - s.y) * cb1[116].x / 2; r0.xyz = mul(t, m); r0.w = dot(-r0.xyz, -r0.xyz); r0.w = rsqrt(r0.w); r1.xyz = -r0.xyz * r0.www; r2.xyzw = t0.Sample(s0_s, v3.xy).xyzw; r2.xyz = r2.xyz * float3(2,2,2) + float3(-1,-1,-1); r2.xyz = r2.xyz * cb0[120].www + cb0[120].xyz; r0.w = dot(r2.xyz, r2.xyz); r0.w = rsqrt(r0.w); r2.xyz = r2.xyz * r0.www; r3.xyz = r2.yyy * r5.xyz; r3.xyz = r2.xxx * v0.xyz + r3.xyz; r2.xyz = r2.zzz * v1.xyz + r3.xyz; r0.w = dot(r2.xyz, r2.xyz); r0.w = rsqrt(r0.w); r2.xyz = r2.xyz * r0.www; r0.w = dot(r2.xyz, r1.xyz); r0.w = max(0, r0.w); r0.w = 1 + -r0.w; r0.w = max(9.99999997e-007, abs(r0.w)); r1.x = r0.w * r0.w; r1.x = r1.x * r1.x; r0.w = r1.x * r0.w; r0.w = r0.w * 0.959999979 + 0.0399999991; r0.w = min(1, r0.w); r1.xy = cb4[0].yw + -cb4[0].xz; r1.xy = cb5[18].xx * r1.xy + cb4[0].xz; r0.w = log2(r0.w); r0.w = r1.x * r0.w; r0.w = exp2(r0.w); r1.xzw = cb4[10].xyz + -cb4[9].xyz; r1.xzw = cb5[18].xxx * r1.xzw + cb4[9].xyz; r1.xzw = r1.xzw * r0.www; r1.xyz = r1.xzw * r1.yyy; r0.w = cb4[2].y + -cb4[2].x; r0.w = cb5[18].x * r0.w + cb4[2].x; r0.w = -r2.z * r0.w + 1; r0.w = -r2.z * r0.w + 1; r3.xy = cb4[1].wy + -cb4[1].zx; r3.xy = cb5[18].xx * r3.xy + cb4[1].zx; r0.w = saturate(-r0.w * r3.x + 1); r3.xzw = r1.xyz * r0.www + -r1.xyz; r1.xyz = r3.yyy * r3.xzw + r1.xyz; r1.xyz = max(float3(0,0,0), r1.xyz); r3.xyz = t1.Sample(s1_s, v3.xy).xyz; r5.y = cb5[18].y * r3.x; r3.xyz = r3.xyz * cb5[18].yyy + float3(0.100000001,0.100000001,0.100000001); r1.xyz = r3.xyz * r1.xyz; r1.xyz = r1.xyz + r1.xyz; r0.w = cb4[8].x + -cb4[7].w; r0.w = cb5[18].x * r0.w + cb4[7].w; r1.xyz = r0.www * cb4[19].xyz + r1.xyz; r1.xyz = cb5[1].xyz + r1.xyz; r3.xyz = t2.Sample(s2_s, v3.xy).xyz; r6.xyzw = t3.Sample(s3_s, v3.xy).xyzw; r7.xyz = -cb5[7].xyz + cb5[6].xyz; r7.xyz = r6.xxx * r7.xyz + cb5[7].xyz; r8.xyz = cb5[9].xyz + -r7.xyz; r7.xyz = r6.yyy * r8.xyz + r7.xyz; r8.xyz = cb5[11].xyz + -r7.xyz; r6.xyz = r6.zzz * r8.xyz + r7.xyz; r0.w = max(r6.x, r6.y); r0.w = max(r0.w, r6.z); r0.w = -0.899999976 + r0.w; r0.w = r0.w * 19.9999962 + 1; r0.w = max(1, r0.w); r7.xyz = r3.xyz * r0.www; r6.xyz = r6.xyz * r6.www; r8.xyz = r7.xyz * r6.xyz; r5.zw = -cb5[13].xy + cb5[12].xy; r5.zw = r5.zw * float2(0.5,0.5) + cb5[13].xy; r9.xy = -r5.zw; r1.w = v3.x * v1.w; r10.x = r1.w * 0.5 + r9.x; r9.z = 0.5; r10.y = v3.y; r9.xy = r10.xy + r9.zy; r10.x = dot(r9.xy, cb5[14].xy); r10.y = dot(r9.xy, cb5[15].xy); r5.zw = r10.xy + r5.zw; r5.zw = r5.zw * cb5[21].yy + cb5[16].xy; r5.zw = r5.zw / cb5[17].xy; r9.xyzw = t4.Sample(s4_s, r5.zw).xyzw; r1.w = dot(float3(0.577350259,0.577350259,0.577350259), r9.xyz); r9.xyz = -r1.www * float3(0.577350259,0.577350259,0.577350259) + r9.xyz; r10.xyz = float3(0.577350259,0.577350259,0.577350259) * r9.zxy; r10.xyz = r9.zxy * float3(0.577350259,0.577350259,0.577350259) + -r10.zxy; sincos(cb5[18].w, r11.x, r12.x); r10.xyz = r11.xxx * r10.xyz; r9.xyz = r9.xyz * r12.xxx + r10.xyz; r9.xyz = r1.www * float3(0.577350259,0.577350259,0.577350259) + r9.xyz; r1.w = dot(r9.xyz, float3(0.300000012,0.589999974,0.109999999)); r10.xyz = r1.www + -r9.xyz; r9.xyz = cb5[21].www * r10.xyz + r9.xyz; r1.w = cb5[22].y * r9.w; r9.xyz = -r3.xyz * r0.www + r9.xyz; r9.xyz = r1.www * r9.xyz + r7.xyz; r6.xyz = -r7.xyz * r6.xyz + r9.xyz; r6.xyz = r1.www * r6.xyz + r8.xyz; r0.w = 1 + -r6.w; r3.xyz = r0.www * r3.xyz + r6.xyz; r3.xyz = saturate(cb5[2].xyz * r3.xyz); r0.w = cb4[6].x + -cb4[5].w; r0.w = cb5[18].x * r0.w + cb4[5].w; r0.w = max(cb4[5].z, r0.w); r1.w = saturate(-r0.w * 0.200000003 + cb5[22].w); r0.w = saturate(-r0.w * 0.200000003 + cb5[23].x); r0.w = r0.w + -r1.w; r0.w = saturate(r2.w * r0.w + r1.w); r5.x = saturate(cb5[22].z); r5.y = saturate(r5.y); o2.z = r0.w * cb0[121].y + cb0[121].x; r0.w = cmp(0 < cb2[11].y); o5.x = r0.w ? cb3[5].x : 1; r6.xyz = -r3.xyz * r5.xxx + r3.xyz; r0.w = 0.0799999982 * r5.y; r7.xyz = -r5.yyy * float3(0.0799999982,0.0799999982,0.0799999982) + r3.xyz; r7.xyz = r5.xxx * r7.xyz + r0.www; r6.xyz = r6.xyz * cb0[118].www + cb0[118].xyz; r7.xyz = r7.xyz * cb0[119].www + cb0[119].xyz; r8.xyz = r2.yzy * r2.yzx; r9.yw = r2.zz * r2.yx; r0.w = r2.x * r2.x + -r8.x; r10.yzw = float3(-1.02332771,1.02332771,-1.02332771) * r2.yzx; r9.xz = r8.zy * float2(1,3) + float2(0,-1); r8.xyzw = float4(0.858085215,-0.858085215,0.247708291,-0.858085215) * r9.xyzw; r0.w = 0.429042608 * r0.w; r10.x = 0.886227548; r1.w = dot(cb3[8].xyzw, r10.xyzw); r2.w = dot(cb3[11].xyzw, r8.xyzw); r1.w = r2.w + r1.w; r9.x = cb3[14].x * r0.w + r1.w; r1.w = dot(cb3[9].xyzw, r10.xyzw); r2.w = dot(cb3[12].xyzw, r8.xyzw); r1.w = r2.w + r1.w; r9.y = cb3[14].y * r0.w + r1.w; r1.w = dot(cb3[10].xyzw, r10.xyzw); r2.w = dot(cb3[13].xyzw, r8.xyzw); r1.w = r2.w + r1.w; r9.z = cb3[14].z * r0.w + r1.w; r8.xyz = max(float3(0,0,0), r9.xyz); r8.xyz = cb0[138].xyz * r8.xyz; r0.w = dot(r8.xyz, float3(0.300000012,0.589999974,0.109999999)); r9.xyz = r8.xyz * r6.xyz; r7.xyz = r7.xyz * float3(0.449999988,0.449999988,0.449999988) + r6.xyz; r6.xyz = -r8.xyz * r6.xyz + r7.xyz; r6.xyz = cb0[126].yyy * r6.xyz + r9.xyz; r1.w = cmp(0 < cb0[122].x); if (r1.w != 0) { r0.xyz = r0.xyz + -r4.xyz; r4.xyz = -cb2[8].xyz + r0.xyz; r7.xyz = float3(1,1,1) + cb2[9].xyz; r4.xyz = cmp(r7.xyz < abs(r4.xyz)); r1.w = (int)r4.y | (int)r4.x; r1.w = (int)r4.z | (int)r1.w; r0.x = dot(r0.xyz, float3(0.577000022,0.577000022,0.577000022)); r0.x = 0.00200000009 * r0.x; r0.x = frac(r0.x); r0.x = cmp(0.5 < r0.x); r0.xyz = r0.xxx ? float3(0,1,1) : float3(1,1,0); r1.xyz = r1.www ? r0.xyz : r1.xyz; } o0.xyz = r6.xyz + r1.xyz; r0.x = 0.5 + cb5[23].z; r0.x = (uint)r0.x; r0.x = (int)r0.x & 3; r1.xyz = float3(0.0078125,0.0078125,0.0078125) * v5.xyx; r1.xyz = frac(r1.xyz); r1.xyz = r1.xyz * float3(128,128,128) + float3(-64.3406219,-72.4656219,-64.3406219); r1.xyz = r1.xyz * r1.xyy; r0.y = dot(r1.xyz, float3(20.390625,60.703125,2.42812085)); r0.y = frac(r0.y); o1.xyz = r2.xyz * float3(0.5,0.5,0.5) + float3(0.5,0.5,0.5); r0.x = (uint)r0.x; o1.w = 0.333333343 * r0.x; r0.xy = float2(0.00390625,-0.5) + r0.wy; r0.x = log2(r0.x); r0.x = r0.x * 0.0625 + 0.5; o3.w = r0.y * 0.00392156886 + r0.x; o0.w = 0; o2.w = 0.788235307; o2.xy = r5.xy; o3.xyz = r3.xyz; o4.xyzw = float4(0,0,0,0); o5.yzw = float3(1,1,1); return; } /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // // Generated by Microsoft (R) D3D Shader Disassembler // // using 3Dmigoto v1.2.57 on Sat Jun 10 17:24:51 2017 // // // Input signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // TEXCOORD 10 xyzw 0 NONE float xyz // TEXCOORD 11 xyzw 1 NONE float xyzw // COLOR 0 xyzw 2 NONE float // TEXCOORD 0 xy 3 NONE float xy // PACKED_EYE_INDEX 0 x 4 NONE uint x // SV_Position 0 xyzw 5 POS float xyz // SV_IsFrontFace 0 x 6 FFACE uint // // // Output signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // SV_Target 0 xyzw 0 TARGET float xyzw // SV_Target 1 xyzw 1 TARGET float xyzw // SV_Target 2 xyzw 2 TARGET float xyzw // SV_Target 3 xyzw 3 TARGET float xyzw // SV_Target 4 xyzw 4 TARGET float xyzw // SV_Target 5 xyzw 5 TARGET float xyzw // ps_5_0 dcl_globalFlags refactoringAllowed dcl_constantbuffer cb0[139], immediateIndexed dcl_constantbuffer cb1[57], immediateIndexed dcl_constantbuffer cb2[12], immediateIndexed dcl_constantbuffer cb3[15], immediateIndexed dcl_constantbuffer cb4[20], immediateIndexed dcl_constantbuffer cb5[24], 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_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_input_ps linear centroid v0.xyz dcl_input_ps linear centroid v1.xyzw dcl_input_ps linear v3.xy dcl_input_ps constant v4.x dcl_input_ps_siv linear noperspective v5.xyz, position dcl_output o0.xyzw dcl_output o1.xyzw dcl_output o2.xyzw dcl_output o3.xyzw dcl_output o4.xyzw dcl_output o5.xyzw dcl_temps 13 and r0.x, v4.x, l(1) if_z r0.x mov r0.x, cb0[36].x mov r0.y, cb0[37].x mov r0.z, cb0[38].x mov r0.w, cb0[39].x mov r1.x, cb0[36].y mov r1.y, cb0[37].y mov r1.z, cb0[38].y mov r1.w, cb0[39].y mov r2.x, cb0[36].z mov r2.y, cb0[37].z mov r2.z, cb0[38].z mov r2.w, cb0[39].z mov r3.x, cb0[36].w mov r3.y, cb0[37].w mov r3.z, cb0[38].w mov r3.w, cb0[39].w mov r4.xyz, cb0[56].xyzx else mov r0.x, cb1[36].x mov r0.y, cb1[37].x mov r0.z, cb1[38].x mov r0.w, cb1[39].x mov r1.x, cb1[36].y mov r1.y, cb1[37].y mov r1.z, cb1[38].y mov r1.w, cb1[39].y mov r2.x, cb1[36].z mov r2.y, cb1[37].z mov r2.z, cb1[38].z mov r2.w, cb1[39].z mov r3.x, cb1[36].w mov r3.y, cb1[37].w mov r3.z, cb1[38].w mov r3.w, cb1[39].w mov r4.xyz, cb1[56].xyzx endif mul r5.xyz, v0.yzxy, v1.zxyz mad r5.xyz, v1.yzxy, v0.zxyz, -r5.xyzx mul r5.xyz, r5.xyzx, v1.wwww mov r6.xyz, v5.xyzx mov r6.w, l(1.000000) dp4 r0.x, r6.xyzw, r0.xyzw dp4 r0.y, r6.xyzw, r1.xyzw dp4 r0.z, r6.xyzw, r2.xyzw dp4 r0.w, r6.xyzw, r3.xyzw div r0.xyz, r0.xyzx, r0.wwww dp3 r0.w, -r0.xyzx, -r0.xyzx rsq r0.w, r0.w mul r1.xyz, r0.wwww, -r0.xyzx sample_indexable(texture2d)(float,float,float,float) r2.xyzw, v3.xyxx, t0.xyzw, s0 mad r2.xyz, r2.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000) mad r2.xyz, r2.xyzx, cb0[120].wwww, cb0[120].xyzx dp3 r0.w, r2.xyzx, r2.xyzx rsq r0.w, r0.w mul r2.xyz, r0.wwww, r2.xyzx mul r3.xyz, r5.xyzx, r2.yyyy mad r3.xyz, r2.xxxx, v0.xyzx, r3.xyzx mad r2.xyz, r2.zzzz, v1.xyzx, r3.xyzx dp3 r0.w, r2.xyzx, r2.xyzx rsq r0.w, r0.w mul r2.xyz, r0.wwww, r2.xyzx dp3 r0.w, r2.xyzx, r1.xyzx max r0.w, r0.w, l(0.000000) add r0.w, -r0.w, l(1.000000) max r0.w, |r0.w|, l(0.000001) mul r1.x, r0.w, r0.w mul r1.x, r1.x, r1.x mul r0.w, r0.w, r1.x mad r0.w, r0.w, l(0.960000), l(0.040000) min r0.w, r0.w, l(1.000000) add r1.xy, -cb4[0].xzxx, cb4[0].ywyy mad r1.xy, cb5[18].xxxx, r1.xyxx, cb4[0].xzxx log r0.w, r0.w mul r0.w, r0.w, r1.x exp r0.w, r0.w add r1.xzw, -cb4[9].xxyz, cb4[10].xxyz mad r1.xzw, cb5[18].xxxx, r1.xxzw, cb4[9].xxyz mul r1.xzw, r0.wwww, r1.xxzw mul r1.xyz, r1.yyyy, r1.xzwx add r0.w, -cb4[2].x, cb4[2].y mad r0.w, cb5[18].x, r0.w, cb4[2].x mad r0.w, -r2.z, r0.w, l(1.000000) mad r0.w, -r2.z, r0.w, l(1.000000) add r3.xy, -cb4[1].zxzz, cb4[1].wyww mad r3.xy, cb5[18].xxxx, r3.xyxx, cb4[1].zxzz mad_sat r0.w, -r0.w, r3.x, l(1.000000) mad r3.xzw, r1.xxyz, r0.wwww, -r1.xxyz mad r1.xyz, r3.yyyy, r3.xzwx, r1.xyzx max r1.xyz, r1.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) sample_indexable(texture2d)(float,float,float,float) r3.xyz, v3.xyxx, t1.xyzw, s1 mul r5.y, r3.x, cb5[18].y mad r3.xyz, r3.xyzx, cb5[18].yyyy, l(0.100000, 0.100000, 0.100000, 0.000000) mul r1.xyz, r1.xyzx, r3.xyzx add r1.xyz, r1.xyzx, r1.xyzx add r0.w, -cb4[7].w, cb4[8].x mad r0.w, cb5[18].x, r0.w, cb4[7].w mad r1.xyz, r0.wwww, cb4[19].xyzx, r1.xyzx add r1.xyz, r1.xyzx, cb5[1].xyzx sample_indexable(texture2d)(float,float,float,float) r3.xyz, v3.xyxx, t2.xyzw, s2 sample_indexable(texture2d)(float,float,float,float) r6.xyzw, v3.xyxx, t3.xyzw, s3 add r7.xyz, cb5[6].xyzx, -cb5[7].xyzx mad r7.xyz, r6.xxxx, r7.xyzx, cb5[7].xyzx add r8.xyz, -r7.xyzx, cb5[9].xyzx mad r7.xyz, r6.yyyy, r8.xyzx, r7.xyzx add r8.xyz, -r7.xyzx, cb5[11].xyzx mad r6.xyz, r6.zzzz, r8.xyzx, r7.xyzx max r0.w, r6.y, r6.x max r0.w, r6.z, r0.w add r0.w, r0.w, l(-0.900000) mad r0.w, r0.w, l(19.999996), l(1.000000) max r0.w, r0.w, l(1.000000) mul r7.xyz, r0.wwww, r3.xyzx mul r6.xyz, r6.wwww, r6.xyzx mul r8.xyz, r6.xyzx, r7.xyzx add r5.zw, cb5[12].xxxy, -cb5[13].xxxy mad r5.zw, r5.zzzw, l(0.000000, 0.000000, 0.500000, 0.500000), cb5[13].xxxy mov r9.xy, -r5.zwzz mul r1.w, v1.w, v3.x mad r10.x, r1.w, l(0.500000), r9.x mov r9.z, l(0.500000) mov r10.y, v3.y add r9.xy, r9.zyzz, r10.xyxx dp2 r10.x, r9.xyxx, cb5[14].xyxx dp2 r10.y, r9.xyxx, cb5[15].xyxx add r5.zw, r5.zzzw, r10.xxxy mad r5.zw, r5.zzzw, cb5[21].yyyy, cb5[16].xxxy div r5.zw, r5.zzzw, cb5[17].xxxy sample_indexable(texture2d)(float,float,float,float) r9.xyzw, r5.zwzz, t4.xyzw, s4 dp3 r1.w, l(0.577350259, 0.577350259, 0.577350259, 0.000000), r9.xyzx mad r9.xyz, -r1.wwww, l(0.577350259, 0.577350259, 0.577350259, 0.000000), r9.xyzx mul r10.xyz, r9.zxyz, l(0.577350259, 0.577350259, 0.577350259, 0.000000) mad r10.xyz, r9.zxyz, l(0.577350259, 0.577350259, 0.577350259, 0.000000), -r10.zxyz sincos r11.x, r12.x, cb5[18].w mul r10.xyz, r10.xyzx, r11.xxxx mad r9.xyz, r9.xyzx, r12.xxxx, r10.xyzx mad r9.xyz, r1.wwww, l(0.577350259, 0.577350259, 0.577350259, 0.000000), r9.xyzx dp3 r1.w, r9.xyzx, l(0.300000, 0.590000, 0.110000, 0.000000) add r10.xyz, -r9.xyzx, r1.wwww mad r9.xyz, cb5[21].wwww, r10.xyzx, r9.xyzx mul r1.w, r9.w, cb5[22].y mad r9.xyz, -r3.xyzx, r0.wwww, r9.xyzx mad r9.xyz, r1.wwww, r9.xyzx, r7.xyzx mad r6.xyz, -r7.xyzx, r6.xyzx, r9.xyzx mad r6.xyz, r1.wwww, r6.xyzx, r8.xyzx add r0.w, -r6.w, l(1.000000) mad r3.xyz, r0.wwww, r3.xyzx, r6.xyzx mul_sat r3.xyz, r3.xyzx, cb5[2].xyzx add r0.w, -cb4[5].w, cb4[6].x mad r0.w, cb5[18].x, r0.w, cb4[5].w max r0.w, r0.w, cb4[5].z mad_sat r1.w, -r0.w, l(0.200000), cb5[22].w mad_sat r0.w, -r0.w, l(0.200000), cb5[23].x add r0.w, -r1.w, r0.w mad_sat r0.w, r2.w, r0.w, r1.w mov_sat r5.x, cb5[22].z mov_sat r5.y, r5.y mad o2.z, r0.w, cb0[121].y, cb0[121].x lt r0.w, l(0.000000), cb2[11].y movc o5.x, r0.w, cb3[5].x, l(1.000000) mad r6.xyz, -r3.xyzx, r5.xxxx, r3.xyzx mul r0.w, r5.y, l(0.080000) mad r7.xyz, -r5.yyyy, l(0.080000, 0.080000, 0.080000, 0.000000), r3.xyzx mad r7.xyz, r5.xxxx, r7.xyzx, r0.wwww mad r6.xyz, r6.xyzx, cb0[118].wwww, cb0[118].xyzx mad r7.xyz, r7.xyzx, cb0[119].wwww, cb0[119].xyzx mul r8.xyz, r2.yzxy, r2.yzyy mul r9.yw, r2.yyyx, r2.zzzz mad r0.w, r2.x, r2.x, -r8.x mul r10.yzw, r2.yyzx, l(0.000000, -1.02332771, 1.02332771, -1.02332771) mad r9.xz, r8.zzyz, l(1.000000, 0.000000, 3.000000, 0.000000), l(0.000000, 0.000000, -1.000000, 0.000000) mul r8.xyzw, r9.xyzw, l(0.858085215, -0.858085215, 0.247708291, -0.858085215) mul r0.w, r0.w, l(0.429042608) mov r10.x, l(0.886227548) dp4 r1.w, cb3[8].xyzw, r10.xyzw dp4 r2.w, cb3[11].xyzw, r8.xyzw add r1.w, r1.w, r2.w mad r9.x, cb3[14].x, r0.w, r1.w dp4 r1.w, cb3[9].xyzw, r10.xyzw dp4 r2.w, cb3[12].xyzw, r8.xyzw add r1.w, r1.w, r2.w mad r9.y, cb3[14].y, r0.w, r1.w dp4 r1.w, cb3[10].xyzw, r10.xyzw dp4 r2.w, cb3[13].xyzw, r8.xyzw add r1.w, r1.w, r2.w mad r9.z, cb3[14].z, r0.w, r1.w max r8.xyz, r9.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) mul r8.xyz, r8.xyzx, cb0[138].xyzx dp3 r0.w, r8.xyzx, l(0.300000, 0.590000, 0.110000, 0.000000) mul r9.xyz, r6.xyzx, r8.xyzx mad r7.xyz, r7.xyzx, l(0.450000, 0.450000, 0.450000, 0.000000), r6.xyzx mad r6.xyz, -r8.xyzx, r6.xyzx, r7.xyzx mad r6.xyz, cb0[126].yyyy, r6.xyzx, r9.xyzx lt r1.w, l(0.000000), cb0[122].x if_nz r1.w add r0.xyz, -r4.xyzx, r0.xyzx add r4.xyz, r0.xyzx, -cb2[8].xyzx add r7.xyz, cb2[9].xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) lt r4.xyz, r7.xyzx, |r4.xyzx| or r1.w, r4.y, r4.x or r1.w, r4.z, r1.w dp3 r0.x, r0.xyzx, l(0.577000, 0.577000, 0.577000, 0.000000) mul r0.x, r0.x, l(0.002000) frc r0.x, r0.x lt r0.x, l(0.500000), r0.x movc r0.xyz, r0.xxxx, l(0,1.000000,1.000000,0), l(1.000000,1.000000,0,0) movc r1.xyz, r1.wwww, r0.xyzx, r1.xyzx endif add o0.xyz, r1.xyzx, r6.xyzx add r0.x, cb5[23].z, l(0.500000) ftou r0.x, r0.x and r0.x, r0.x, l(3) mul r1.xyz, v5.xyxx, l(0.00781250000, 0.00781250000, 0.00781250000, 0.000000) frc r1.xyz, r1.xyzx mad r1.xyz, r1.xyzx, l(128.000000, 128.000000, 128.000000, 0.000000), l(-64.340622, -72.465622, -64.340622, 0.000000) mul r1.xyz, r1.xyyx, r1.xyzx dp3 r0.y, r1.xyzx, l(20.390625, 60.703125, 2.42812085, 0.000000) frc r0.y, r0.y mad o1.xyz, r2.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) utof r0.x, r0.x mul o1.w, r0.x, l(0.333333343) add r0.xy, r0.wyww, l(0.00390625000, -0.500000, 0.000000, 0.000000) log r0.x, r0.x mad r0.x, r0.x, l(0.062500), l(0.500000) mad o3.w, r0.y, l(0.00392156886), r0.x mov o0.w, l(0) mov o2.w, l(0.788235307) mov o2.xy, r5.xyxx mov o3.xyz, r3.xyzx mov o4.xyzw, l(0,0,0,0) mov o5.yzw, l(0,1.000000,1.000000,1.000000) ret // Approximately 0 instruction slots used ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ [/code]
New version of the fix: https://s3.amazonaws.com/masterotaku/Tekken+7/Tekken7_fix_WIP_6.7z


I have fixed all skies, more effects, background geometry occlusion when it's near the camera, rage effect on all characters...

Geometry was A LOT of shaders, that I fixed in an automatic way (find and replace, in all compatible shaders that my PC dumped automatically since the first day). So there are now 1470 shaders in the ShaderFixes folder. This means that you will notice a lot more compiling time when you start a fight in a new stage for the first time. But this was necessary.

Still no specular reflections fix.

By the way, I put there a hidden feature, to make the Arena stage TVs render a stereoscopic image (3D inside 3D!). However it heavily breaks lighting in other stages, so use at your own risk and for fun. To enable that, search these lines and uncomment them:

;[TextureOverride1]
;Hash=43af44d1
;StereoMode=1


For that hidden feature, I've made a new hotkey, F6. By default, the image inside the TVs can be at higher than 100% depth, but with F6 you can make their image pop out (also with a middle step too) to not surpass that 100%.

Screenshots of this:


http://u.cubeupload.com/masterotaku/Tekkenunlimiteddepth.jpg

http://u.cubeupload.com/masterotaku/Tekkenlimiteddepth.jpg



@DHR: the rage effect I fixed was in the pixel shaders of characters' geometry. Could that be the key for specular reflections?

Here is an example of a "rage effect" fixed shader:

//Gigas body.
// ---- Created with 3Dmigoto v1.2.57 on Sat Jun 10 17:24:51 2017
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 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 cb5 : register(b5)
{
float4 cb5[24];
}

cbuffer cb4 : register(b4)
{
float4 cb4[20];
}

cbuffer cb3 : register(b3)
{
float4 cb3[15];
}

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

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

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




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

#include "matrix.hlsl"

void main(
linear centroid float4 v0 : TEXCOORD10,
linear centroid float4 v1 : TEXCOORD11,
float4 v2 : COLOR0,
float2 v3 : TEXCOORD0,
nointerpolation uint v4 : PACKED_EYE_INDEX0,
float4 v5 : SV_Position0,
uint v6 : SV_IsFrontFace0,
out float4 o0 : SV_Target0,
out float4 o1 : SV_Target1,
out float4 o2 : SV_Target2,
out float4 o3 : SV_Target3,
out float4 o4 : SV_Target4,
out float4 o5 : SV_Target5)
{
float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12;
uint4 bitmask, uiDest;
float4 fDest;

r0.x = (int)v4.x & 1;
if (r0.x == 0) {
r0.x = cb0[36].x;
r0.y = cb0[37].x;
r0.z = cb0[38].x;
r0.w = cb0[39].x;
r1.x = cb0[36].y;
r1.y = cb0[37].y;
r1.z = cb0[38].y;
r1.w = cb0[39].y;
r2.x = cb0[36].z;
r2.y = cb0[37].z;
r2.z = cb0[38].z;
r2.w = cb0[39].z;
r3.x = cb0[36].w;
r3.y = cb0[37].w;
r3.z = cb0[38].w;
r3.w = cb0[39].w;
r4.xyz = cb0[56].xyz;
} else {
r0.x = cb1[36].x;
r0.y = cb1[37].x;
r0.z = cb1[38].x;
r0.w = cb1[39].x;
r1.x = cb1[36].y;
r1.y = cb1[37].y;
r1.z = cb1[38].y;
r1.w = cb1[39].y;
r2.x = cb1[36].z;
r2.y = cb1[37].z;
r2.z = cb1[38].z;
r2.w = cb1[39].z;
r3.x = cb1[36].w;
r3.y = cb1[37].w;
r3.z = cb1[38].w;
r3.w = cb1[39].w;
r4.xyz = cb1[56].xyz;
}
r5.xyz = v1.zxy * v0.yzx;
r5.xyz = v1.yzx * v0.zxy + -r5.xyz;
r5.xyz = v1.www * r5.xyz;
r6.xyz = v5.xyz;
r6.w = 1;
r0.x = dot(r6.xyzw, r0.xyzw);
r0.y = dot(r6.xyzw, r1.xyzw);
r0.z = dot(r6.xyzw, r2.xyzw);
r0.w = dot(r6.xyzw, r3.xyzw);
r0.xyz = r0.xyz / r0.www;

float4 s = StereoParams.Load(0);
matrix m = MATRIX(cb1, 36);
matrix im = inverse(m);
float4 t = mul(float4(r0.xyz, 1), im);
t.x -= s.x * (t.w - s.y) * cb1[116].x / 2;
r0.xyz = mul(t, m);

r0.w = dot(-r0.xyz, -r0.xyz);
r0.w = rsqrt(r0.w);
r1.xyz = -r0.xyz * r0.www;
r2.xyzw = t0.Sample(s0_s, v3.xy).xyzw;
r2.xyz = r2.xyz * float3(2,2,2) + float3(-1,-1,-1);
r2.xyz = r2.xyz * cb0[120].www + cb0[120].xyz;
r0.w = dot(r2.xyz, r2.xyz);
r0.w = rsqrt(r0.w);
r2.xyz = r2.xyz * r0.www;
r3.xyz = r2.yyy * r5.xyz;
r3.xyz = r2.xxx * v0.xyz + r3.xyz;
r2.xyz = r2.zzz * v1.xyz + r3.xyz;
r0.w = dot(r2.xyz, r2.xyz);
r0.w = rsqrt(r0.w);
r2.xyz = r2.xyz * r0.www;
r0.w = dot(r2.xyz, r1.xyz);
r0.w = max(0, r0.w);
r0.w = 1 + -r0.w;
r0.w = max(9.99999997e-007, abs(r0.w));
r1.x = r0.w * r0.w;
r1.x = r1.x * r1.x;
r0.w = r1.x * r0.w;
r0.w = r0.w * 0.959999979 + 0.0399999991;
r0.w = min(1, r0.w);
r1.xy = cb4[0].yw + -cb4[0].xz;
r1.xy = cb5[18].xx * r1.xy + cb4[0].xz;
r0.w = log2(r0.w);
r0.w = r1.x * r0.w;
r0.w = exp2(r0.w);
r1.xzw = cb4[10].xyz + -cb4[9].xyz;
r1.xzw = cb5[18].xxx * r1.xzw + cb4[9].xyz;
r1.xzw = r1.xzw * r0.www;
r1.xyz = r1.xzw * r1.yyy;
r0.w = cb4[2].y + -cb4[2].x;
r0.w = cb5[18].x * r0.w + cb4[2].x;
r0.w = -r2.z * r0.w + 1;
r0.w = -r2.z * r0.w + 1;
r3.xy = cb4[1].wy + -cb4[1].zx;
r3.xy = cb5[18].xx * r3.xy + cb4[1].zx;
r0.w = saturate(-r0.w * r3.x + 1);
r3.xzw = r1.xyz * r0.www + -r1.xyz;
r1.xyz = r3.yyy * r3.xzw + r1.xyz;
r1.xyz = max(float3(0,0,0), r1.xyz);
r3.xyz = t1.Sample(s1_s, v3.xy).xyz;
r5.y = cb5[18].y * r3.x;
r3.xyz = r3.xyz * cb5[18].yyy + float3(0.100000001,0.100000001,0.100000001);
r1.xyz = r3.xyz * r1.xyz;
r1.xyz = r1.xyz + r1.xyz;
r0.w = cb4[8].x + -cb4[7].w;
r0.w = cb5[18].x * r0.w + cb4[7].w;
r1.xyz = r0.www * cb4[19].xyz + r1.xyz;
r1.xyz = cb5[1].xyz + r1.xyz;
r3.xyz = t2.Sample(s2_s, v3.xy).xyz;
r6.xyzw = t3.Sample(s3_s, v3.xy).xyzw;
r7.xyz = -cb5[7].xyz + cb5[6].xyz;
r7.xyz = r6.xxx * r7.xyz + cb5[7].xyz;
r8.xyz = cb5[9].xyz + -r7.xyz;
r7.xyz = r6.yyy * r8.xyz + r7.xyz;
r8.xyz = cb5[11].xyz + -r7.xyz;
r6.xyz = r6.zzz * r8.xyz + r7.xyz;
r0.w = max(r6.x, r6.y);
r0.w = max(r0.w, r6.z);
r0.w = -0.899999976 + r0.w;
r0.w = r0.w * 19.9999962 + 1;
r0.w = max(1, r0.w);
r7.xyz = r3.xyz * r0.www;
r6.xyz = r6.xyz * r6.www;
r8.xyz = r7.xyz * r6.xyz;
r5.zw = -cb5[13].xy + cb5[12].xy;
r5.zw = r5.zw * float2(0.5,0.5) + cb5[13].xy;
r9.xy = -r5.zw;
r1.w = v3.x * v1.w;
r10.x = r1.w * 0.5 + r9.x;
r9.z = 0.5;
r10.y = v3.y;
r9.xy = r10.xy + r9.zy;
r10.x = dot(r9.xy, cb5[14].xy);
r10.y = dot(r9.xy, cb5[15].xy);
r5.zw = r10.xy + r5.zw;
r5.zw = r5.zw * cb5[21].yy + cb5[16].xy;
r5.zw = r5.zw / cb5[17].xy;
r9.xyzw = t4.Sample(s4_s, r5.zw).xyzw;
r1.w = dot(float3(0.577350259,0.577350259,0.577350259), r9.xyz);
r9.xyz = -r1.www * float3(0.577350259,0.577350259,0.577350259) + r9.xyz;
r10.xyz = float3(0.577350259,0.577350259,0.577350259) * r9.zxy;
r10.xyz = r9.zxy * float3(0.577350259,0.577350259,0.577350259) + -r10.zxy;
sincos(cb5[18].w, r11.x, r12.x);
r10.xyz = r11.xxx * r10.xyz;
r9.xyz = r9.xyz * r12.xxx + r10.xyz;
r9.xyz = r1.www * float3(0.577350259,0.577350259,0.577350259) + r9.xyz;
r1.w = dot(r9.xyz, float3(0.300000012,0.589999974,0.109999999));
r10.xyz = r1.www + -r9.xyz;
r9.xyz = cb5[21].www * r10.xyz + r9.xyz;
r1.w = cb5[22].y * r9.w;
r9.xyz = -r3.xyz * r0.www + r9.xyz;
r9.xyz = r1.www * r9.xyz + r7.xyz;
r6.xyz = -r7.xyz * r6.xyz + r9.xyz;
r6.xyz = r1.www * r6.xyz + r8.xyz;
r0.w = 1 + -r6.w;
r3.xyz = r0.www * r3.xyz + r6.xyz;
r3.xyz = saturate(cb5[2].xyz * r3.xyz);
r0.w = cb4[6].x + -cb4[5].w;
r0.w = cb5[18].x * r0.w + cb4[5].w;
r0.w = max(cb4[5].z, r0.w);
r1.w = saturate(-r0.w * 0.200000003 + cb5[22].w);
r0.w = saturate(-r0.w * 0.200000003 + cb5[23].x);
r0.w = r0.w + -r1.w;
r0.w = saturate(r2.w * r0.w + r1.w);
r5.x = saturate(cb5[22].z);
r5.y = saturate(r5.y);
o2.z = r0.w * cb0[121].y + cb0[121].x;
r0.w = cmp(0 < cb2[11].y);
o5.x = r0.w ? cb3[5].x : 1;
r6.xyz = -r3.xyz * r5.xxx + r3.xyz;
r0.w = 0.0799999982 * r5.y;
r7.xyz = -r5.yyy * float3(0.0799999982,0.0799999982,0.0799999982) + r3.xyz;
r7.xyz = r5.xxx * r7.xyz + r0.www;
r6.xyz = r6.xyz * cb0[118].www + cb0[118].xyz;
r7.xyz = r7.xyz * cb0[119].www + cb0[119].xyz;
r8.xyz = r2.yzy * r2.yzx;
r9.yw = r2.zz * r2.yx;
r0.w = r2.x * r2.x + -r8.x;
r10.yzw = float3(-1.02332771,1.02332771,-1.02332771) * r2.yzx;
r9.xz = r8.zy * float2(1,3) + float2(0,-1);
r8.xyzw = float4(0.858085215,-0.858085215,0.247708291,-0.858085215) * r9.xyzw;
r0.w = 0.429042608 * r0.w;
r10.x = 0.886227548;
r1.w = dot(cb3[8].xyzw, r10.xyzw);
r2.w = dot(cb3[11].xyzw, r8.xyzw);
r1.w = r2.w + r1.w;
r9.x = cb3[14].x * r0.w + r1.w;
r1.w = dot(cb3[9].xyzw, r10.xyzw);
r2.w = dot(cb3[12].xyzw, r8.xyzw);
r1.w = r2.w + r1.w;
r9.y = cb3[14].y * r0.w + r1.w;
r1.w = dot(cb3[10].xyzw, r10.xyzw);
r2.w = dot(cb3[13].xyzw, r8.xyzw);
r1.w = r2.w + r1.w;
r9.z = cb3[14].z * r0.w + r1.w;
r8.xyz = max(float3(0,0,0), r9.xyz);
r8.xyz = cb0[138].xyz * r8.xyz;
r0.w = dot(r8.xyz, float3(0.300000012,0.589999974,0.109999999));
r9.xyz = r8.xyz * r6.xyz;
r7.xyz = r7.xyz * float3(0.449999988,0.449999988,0.449999988) + r6.xyz;
r6.xyz = -r8.xyz * r6.xyz + r7.xyz;
r6.xyz = cb0[126].yyy * r6.xyz + r9.xyz;
r1.w = cmp(0 < cb0[122].x);
if (r1.w != 0) {
r0.xyz = r0.xyz + -r4.xyz;
r4.xyz = -cb2[8].xyz + r0.xyz;
r7.xyz = float3(1,1,1) + cb2[9].xyz;
r4.xyz = cmp(r7.xyz < abs(r4.xyz));
r1.w = (int)r4.y | (int)r4.x;
r1.w = (int)r4.z | (int)r1.w;
r0.x = dot(r0.xyz, float3(0.577000022,0.577000022,0.577000022));
r0.x = 0.00200000009 * r0.x;
r0.x = frac(r0.x);
r0.x = cmp(0.5 < r0.x);
r0.xyz = r0.xxx ? float3(0,1,1) : float3(1,1,0);
r1.xyz = r1.www ? r0.xyz : r1.xyz;
}
o0.xyz = r6.xyz + r1.xyz;
r0.x = 0.5 + cb5[23].z;
r0.x = (uint)r0.x;
r0.x = (int)r0.x & 3;
r1.xyz = float3(0.0078125,0.0078125,0.0078125) * v5.xyx;
r1.xyz = frac(r1.xyz);
r1.xyz = r1.xyz * float3(128,128,128) + float3(-64.3406219,-72.4656219,-64.3406219);
r1.xyz = r1.xyz * r1.xyy;
r0.y = dot(r1.xyz, float3(20.390625,60.703125,2.42812085));
r0.y = frac(r0.y);
o1.xyz = r2.xyz * float3(0.5,0.5,0.5) + float3(0.5,0.5,0.5);
r0.x = (uint)r0.x;
o1.w = 0.333333343 * r0.x;
r0.xy = float2(0.00390625,-0.5) + r0.wy;
r0.x = log2(r0.x);
r0.x = r0.x * 0.0625 + 0.5;
o3.w = r0.y * 0.00392156886 + r0.x;
o0.w = 0;
o2.w = 0.788235307;
o2.xy = r5.xy;
o3.xyz = r3.xyz;
o4.xyzw = float4(0,0,0,0);
o5.yzw = float3(1,1,1);
return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
// using 3Dmigoto v1.2.57 on Sat Jun 10 17:24:51 2017
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// TEXCOORD 10 xyzw 0 NONE float xyz
// TEXCOORD 11 xyzw 1 NONE float xyzw
// COLOR 0 xyzw 2 NONE float
// TEXCOORD 0 xy 3 NONE float xy
// PACKED_EYE_INDEX 0 x 4 NONE uint x
// SV_Position 0 xyzw 5 POS float xyz
// SV_IsFrontFace 0 x 6 FFACE uint
//
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target 0 xyzw 0 TARGET float xyzw
// SV_Target 1 xyzw 1 TARGET float xyzw
// SV_Target 2 xyzw 2 TARGET float xyzw
// SV_Target 3 xyzw 3 TARGET float xyzw
// SV_Target 4 xyzw 4 TARGET float xyzw
// SV_Target 5 xyzw 5 TARGET float xyzw
//
ps_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[139], immediateIndexed
dcl_constantbuffer cb1[57], immediateIndexed
dcl_constantbuffer cb2[12], immediateIndexed
dcl_constantbuffer cb3[15], immediateIndexed
dcl_constantbuffer cb4[20], immediateIndexed
dcl_constantbuffer cb5[24], 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_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_input_ps linear centroid v0.xyz
dcl_input_ps linear centroid v1.xyzw
dcl_input_ps linear v3.xy
dcl_input_ps constant v4.x
dcl_input_ps_siv linear noperspective v5.xyz, position
dcl_output o0.xyzw
dcl_output o1.xyzw
dcl_output o2.xyzw
dcl_output o3.xyzw
dcl_output o4.xyzw
dcl_output o5.xyzw
dcl_temps 13
and r0.x, v4.x, l(1)
if_z r0.x
mov r0.x, cb0[36].x
mov r0.y, cb0[37].x
mov r0.z, cb0[38].x
mov r0.w, cb0[39].x
mov r1.x, cb0[36].y
mov r1.y, cb0[37].y
mov r1.z, cb0[38].y
mov r1.w, cb0[39].y
mov r2.x, cb0[36].z
mov r2.y, cb0[37].z
mov r2.z, cb0[38].z
mov r2.w, cb0[39].z
mov r3.x, cb0[36].w
mov r3.y, cb0[37].w
mov r3.z, cb0[38].w
mov r3.w, cb0[39].w
mov r4.xyz, cb0[56].xyzx
else
mov r0.x, cb1[36].x
mov r0.y, cb1[37].x
mov r0.z, cb1[38].x
mov r0.w, cb1[39].x
mov r1.x, cb1[36].y
mov r1.y, cb1[37].y
mov r1.z, cb1[38].y
mov r1.w, cb1[39].y
mov r2.x, cb1[36].z
mov r2.y, cb1[37].z
mov r2.z, cb1[38].z
mov r2.w, cb1[39].z
mov r3.x, cb1[36].w
mov r3.y, cb1[37].w
mov r3.z, cb1[38].w
mov r3.w, cb1[39].w
mov r4.xyz, cb1[56].xyzx
endif
mul r5.xyz, v0.yzxy, v1.zxyz
mad r5.xyz, v1.yzxy, v0.zxyz, -r5.xyzx
mul r5.xyz, r5.xyzx, v1.wwww
mov r6.xyz, v5.xyzx
mov r6.w, l(1.000000)
dp4 r0.x, r6.xyzw, r0.xyzw
dp4 r0.y, r6.xyzw, r1.xyzw
dp4 r0.z, r6.xyzw, r2.xyzw
dp4 r0.w, r6.xyzw, r3.xyzw
div r0.xyz, r0.xyzx, r0.wwww
dp3 r0.w, -r0.xyzx, -r0.xyzx
rsq r0.w, r0.w
mul r1.xyz, r0.wwww, -r0.xyzx
sample_indexable(texture2d)(float,float,float,float) r2.xyzw, v3.xyxx, t0.xyzw, s0
mad r2.xyz, r2.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
mad r2.xyz, r2.xyzx, cb0[120].wwww, cb0[120].xyzx
dp3 r0.w, r2.xyzx, r2.xyzx
rsq r0.w, r0.w
mul r2.xyz, r0.wwww, r2.xyzx
mul r3.xyz, r5.xyzx, r2.yyyy
mad r3.xyz, r2.xxxx, v0.xyzx, r3.xyzx
mad r2.xyz, r2.zzzz, v1.xyzx, r3.xyzx
dp3 r0.w, r2.xyzx, r2.xyzx
rsq r0.w, r0.w
mul r2.xyz, r0.wwww, r2.xyzx
dp3 r0.w, r2.xyzx, r1.xyzx
max r0.w, r0.w, l(0.000000)
add r0.w, -r0.w, l(1.000000)
max r0.w, |r0.w|, l(0.000001)
mul r1.x, r0.w, r0.w
mul r1.x, r1.x, r1.x
mul r0.w, r0.w, r1.x
mad r0.w, r0.w, l(0.960000), l(0.040000)
min r0.w, r0.w, l(1.000000)
add r1.xy, -cb4[0].xzxx, cb4[0].ywyy
mad r1.xy, cb5[18].xxxx, r1.xyxx, cb4[0].xzxx
log r0.w, r0.w
mul r0.w, r0.w, r1.x
exp r0.w, r0.w
add r1.xzw, -cb4[9].xxyz, cb4[10].xxyz
mad r1.xzw, cb5[18].xxxx, r1.xxzw, cb4[9].xxyz
mul r1.xzw, r0.wwww, r1.xxzw
mul r1.xyz, r1.yyyy, r1.xzwx
add r0.w, -cb4[2].x, cb4[2].y
mad r0.w, cb5[18].x, r0.w, cb4[2].x
mad r0.w, -r2.z, r0.w, l(1.000000)
mad r0.w, -r2.z, r0.w, l(1.000000)
add r3.xy, -cb4[1].zxzz, cb4[1].wyww
mad r3.xy, cb5[18].xxxx, r3.xyxx, cb4[1].zxzz
mad_sat r0.w, -r0.w, r3.x, l(1.000000)
mad r3.xzw, r1.xxyz, r0.wwww, -r1.xxyz
mad r1.xyz, r3.yyyy, r3.xzwx, r1.xyzx
max r1.xyz, r1.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
sample_indexable(texture2d)(float,float,float,float) r3.xyz, v3.xyxx, t1.xyzw, s1
mul r5.y, r3.x, cb5[18].y
mad r3.xyz, r3.xyzx, cb5[18].yyyy, l(0.100000, 0.100000, 0.100000, 0.000000)
mul r1.xyz, r1.xyzx, r3.xyzx
add r1.xyz, r1.xyzx, r1.xyzx
add r0.w, -cb4[7].w, cb4[8].x
mad r0.w, cb5[18].x, r0.w, cb4[7].w
mad r1.xyz, r0.wwww, cb4[19].xyzx, r1.xyzx
add r1.xyz, r1.xyzx, cb5[1].xyzx
sample_indexable(texture2d)(float,float,float,float) r3.xyz, v3.xyxx, t2.xyzw, s2
sample_indexable(texture2d)(float,float,float,float) r6.xyzw, v3.xyxx, t3.xyzw, s3
add r7.xyz, cb5[6].xyzx, -cb5[7].xyzx
mad r7.xyz, r6.xxxx, r7.xyzx, cb5[7].xyzx
add r8.xyz, -r7.xyzx, cb5[9].xyzx
mad r7.xyz, r6.yyyy, r8.xyzx, r7.xyzx
add r8.xyz, -r7.xyzx, cb5[11].xyzx
mad r6.xyz, r6.zzzz, r8.xyzx, r7.xyzx
max r0.w, r6.y, r6.x
max r0.w, r6.z, r0.w
add r0.w, r0.w, l(-0.900000)
mad r0.w, r0.w, l(19.999996), l(1.000000)
max r0.w, r0.w, l(1.000000)
mul r7.xyz, r0.wwww, r3.xyzx
mul r6.xyz, r6.wwww, r6.xyzx
mul r8.xyz, r6.xyzx, r7.xyzx
add r5.zw, cb5[12].xxxy, -cb5[13].xxxy
mad r5.zw, r5.zzzw, l(0.000000, 0.000000, 0.500000, 0.500000), cb5[13].xxxy
mov r9.xy, -r5.zwzz
mul r1.w, v1.w, v3.x
mad r10.x, r1.w, l(0.500000), r9.x
mov r9.z, l(0.500000)
mov r10.y, v3.y
add r9.xy, r9.zyzz, r10.xyxx
dp2 r10.x, r9.xyxx, cb5[14].xyxx
dp2 r10.y, r9.xyxx, cb5[15].xyxx
add r5.zw, r5.zzzw, r10.xxxy
mad r5.zw, r5.zzzw, cb5[21].yyyy, cb5[16].xxxy
div r5.zw, r5.zzzw, cb5[17].xxxy
sample_indexable(texture2d)(float,float,float,float) r9.xyzw, r5.zwzz, t4.xyzw, s4
dp3 r1.w, l(0.577350259, 0.577350259, 0.577350259, 0.000000), r9.xyzx
mad r9.xyz, -r1.wwww, l(0.577350259, 0.577350259, 0.577350259, 0.000000), r9.xyzx
mul r10.xyz, r9.zxyz, l(0.577350259, 0.577350259, 0.577350259, 0.000000)
mad r10.xyz, r9.zxyz, l(0.577350259, 0.577350259, 0.577350259, 0.000000), -r10.zxyz
sincos r11.x, r12.x, cb5[18].w
mul r10.xyz, r10.xyzx, r11.xxxx
mad r9.xyz, r9.xyzx, r12.xxxx, r10.xyzx
mad r9.xyz, r1.wwww, l(0.577350259, 0.577350259, 0.577350259, 0.000000), r9.xyzx
dp3 r1.w, r9.xyzx, l(0.300000, 0.590000, 0.110000, 0.000000)
add r10.xyz, -r9.xyzx, r1.wwww
mad r9.xyz, cb5[21].wwww, r10.xyzx, r9.xyzx
mul r1.w, r9.w, cb5[22].y
mad r9.xyz, -r3.xyzx, r0.wwww, r9.xyzx
mad r9.xyz, r1.wwww, r9.xyzx, r7.xyzx
mad r6.xyz, -r7.xyzx, r6.xyzx, r9.xyzx
mad r6.xyz, r1.wwww, r6.xyzx, r8.xyzx
add r0.w, -r6.w, l(1.000000)
mad r3.xyz, r0.wwww, r3.xyzx, r6.xyzx
mul_sat r3.xyz, r3.xyzx, cb5[2].xyzx
add r0.w, -cb4[5].w, cb4[6].x
mad r0.w, cb5[18].x, r0.w, cb4[5].w
max r0.w, r0.w, cb4[5].z
mad_sat r1.w, -r0.w, l(0.200000), cb5[22].w
mad_sat r0.w, -r0.w, l(0.200000), cb5[23].x
add r0.w, -r1.w, r0.w
mad_sat r0.w, r2.w, r0.w, r1.w
mov_sat r5.x, cb5[22].z
mov_sat r5.y, r5.y
mad o2.z, r0.w, cb0[121].y, cb0[121].x
lt r0.w, l(0.000000), cb2[11].y
movc o5.x, r0.w, cb3[5].x, l(1.000000)
mad r6.xyz, -r3.xyzx, r5.xxxx, r3.xyzx
mul r0.w, r5.y, l(0.080000)
mad r7.xyz, -r5.yyyy, l(0.080000, 0.080000, 0.080000, 0.000000), r3.xyzx
mad r7.xyz, r5.xxxx, r7.xyzx, r0.wwww
mad r6.xyz, r6.xyzx, cb0[118].wwww, cb0[118].xyzx
mad r7.xyz, r7.xyzx, cb0[119].wwww, cb0[119].xyzx
mul r8.xyz, r2.yzxy, r2.yzyy
mul r9.yw, r2.yyyx, r2.zzzz
mad r0.w, r2.x, r2.x, -r8.x
mul r10.yzw, r2.yyzx, l(0.000000, -1.02332771, 1.02332771, -1.02332771)
mad r9.xz, r8.zzyz, l(1.000000, 0.000000, 3.000000, 0.000000), l(0.000000, 0.000000, -1.000000, 0.000000)
mul r8.xyzw, r9.xyzw, l(0.858085215, -0.858085215, 0.247708291, -0.858085215)
mul r0.w, r0.w, l(0.429042608)
mov r10.x, l(0.886227548)
dp4 r1.w, cb3[8].xyzw, r10.xyzw
dp4 r2.w, cb3[11].xyzw, r8.xyzw
add r1.w, r1.w, r2.w
mad r9.x, cb3[14].x, r0.w, r1.w
dp4 r1.w, cb3[9].xyzw, r10.xyzw
dp4 r2.w, cb3[12].xyzw, r8.xyzw
add r1.w, r1.w, r2.w
mad r9.y, cb3[14].y, r0.w, r1.w
dp4 r1.w, cb3[10].xyzw, r10.xyzw
dp4 r2.w, cb3[13].xyzw, r8.xyzw
add r1.w, r1.w, r2.w
mad r9.z, cb3[14].z, r0.w, r1.w
max r8.xyz, r9.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
mul r8.xyz, r8.xyzx, cb0[138].xyzx
dp3 r0.w, r8.xyzx, l(0.300000, 0.590000, 0.110000, 0.000000)
mul r9.xyz, r6.xyzx, r8.xyzx
mad r7.xyz, r7.xyzx, l(0.450000, 0.450000, 0.450000, 0.000000), r6.xyzx
mad r6.xyz, -r8.xyzx, r6.xyzx, r7.xyzx
mad r6.xyz, cb0[126].yyyy, r6.xyzx, r9.xyzx
lt r1.w, l(0.000000), cb0[122].x
if_nz r1.w
add r0.xyz, -r4.xyzx, r0.xyzx
add r4.xyz, r0.xyzx, -cb2[8].xyzx
add r7.xyz, cb2[9].xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
lt r4.xyz, r7.xyzx, |r4.xyzx|
or r1.w, r4.y, r4.x
or r1.w, r4.z, r1.w
dp3 r0.x, r0.xyzx, l(0.577000, 0.577000, 0.577000, 0.000000)
mul r0.x, r0.x, l(0.002000)
frc r0.x, r0.x
lt r0.x, l(0.500000), r0.x
movc r0.xyz, r0.xxxx, l(0,1.000000,1.000000,0), l(1.000000,1.000000,0,0)
movc r1.xyz, r1.wwww, r0.xyzx, r1.xyzx
endif
add o0.xyz, r1.xyzx, r6.xyzx
add r0.x, cb5[23].z, l(0.500000)
ftou r0.x, r0.x
and r0.x, r0.x, l(3)
mul r1.xyz, v5.xyxx, l(0.00781250000, 0.00781250000, 0.00781250000, 0.000000)
frc r1.xyz, r1.xyzx
mad r1.xyz, r1.xyzx, l(128.000000, 128.000000, 128.000000, 0.000000), l(-64.340622, -72.465622, -64.340622, 0.000000)
mul r1.xyz, r1.xyyx, r1.xyzx
dp3 r0.y, r1.xyzx, l(20.390625, 60.703125, 2.42812085, 0.000000)
frc r0.y, r0.y
mad o1.xyz, r2.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
utof r0.x, r0.x
mul o1.w, r0.x, l(0.333333343)
add r0.xy, r0.wyww, l(0.00390625000, -0.500000, 0.000000, 0.000000)
log r0.x, r0.x
mad r0.x, r0.x, l(0.062500), l(0.500000)
mad o3.w, r0.y, l(0.00392156886), r0.x
mov o0.w, l(0)
mov o2.w, l(0.788235307)
mov o2.xy, r5.xyxx
mov o3.xyz, r3.xyzx
mov o4.xyzw, l(0,0,0,0)
mov o5.yzw, l(0,1.000000,1.000000,1.000000)
ret
// Approximately 0 instruction slots used

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

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

#67
Posted 06/10/2017 05:50 PM   
Ohohoho, let's say I improvised and I have fixed the remaining fire/smoke effects and a heatwave effect in Devil's pit :). If you are curious, DHR, here is how I did that "Alisa attack 2 (fire effect)" shader I posted a few posts above (relevant code): [code] r4.xy = v8.xy + -r4.xy; r4.xy = r4.xy * r4.zw + float2(-0.5,-0.5); r4.xy = v8.ww * r4.xy; r4.z = v8.w; r4.x-=stereo.x*(r4.z-stereo.y)*0.5; r4.xyw = float3(2,-2,1) * r4.xyz; //r4.xy = r4.xy / r4.ww; r4.xyz = r4.xyz / r4.www; [/code] Yep, "completing" that last line with the z axis fixed it completely (the commented line is the original). Otherwise there was a haloing effect after applying the stereo correction. For a heatwave effect of a different shader: [code] r1.z = v6.w; r1.x-=stereo.x*(r1.z-stereo.y)*0.5; r1.xyw = float3(2,-2,1) * r1.xyz; r1.xyz = r1.xyz / r1.www; //<----- I inserted the line, totally new. It wasn't there before. r0.zw = r1.xy / r1.ww; [/code] This will be for the next release. I'll have to go to bed soon. Remaining: the annoying specular lighting. Once it's done, the game will be perfect!
Ohohoho, let's say I improvised and I have fixed the remaining fire/smoke effects and a heatwave effect in Devil's pit :).

If you are curious, DHR, here is how I did that "Alisa attack 2 (fire effect)" shader I posted a few posts above (relevant code):

r4.xy = v8.xy + -r4.xy;
r4.xy = r4.xy * r4.zw + float2(-0.5,-0.5);
r4.xy = v8.ww * r4.xy;
r4.z = v8.w;

r4.x-=stereo.x*(r4.z-stereo.y)*0.5;

r4.xyw = float3(2,-2,1) * r4.xyz;
//r4.xy = r4.xy / r4.ww;
r4.xyz = r4.xyz / r4.www;


Yep, "completing" that last line with the z axis fixed it completely (the commented line is the original). Otherwise there was a haloing effect after applying the stereo correction.

For a heatwave effect of a different shader:

r1.z = v6.w;

r1.x-=stereo.x*(r1.z-stereo.y)*0.5;

r1.xyw = float3(2,-2,1) * r1.xyz;
r1.xyz = r1.xyz / r1.www; //<----- I inserted the line, totally new. It wasn't there before.
r0.zw = r1.xy / r1.ww;



This will be for the next release. I'll have to go to bed soon.

Remaining: the annoying specular lighting. Once it's done, the game will be perfect!

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

#68
Posted 06/10/2017 10:46 PM   
Amazing work, I am so grateful. Is it just me or is the electricity effects not quite at the right depth as well? it seems like it's at the hud depth Kazuyas electric wind god fist for example, or When using a While standing right punch Gut hook attack. Most people struggle to do EWGF so it might be easier to check in practice mode with the move list demonstration if is the case. or maybe in story assist when playing with kazuya I think it's Story assist + LP
Amazing work, I am so grateful.

Is it just me or is the electricity effects not quite at the right depth as well? it seems like it's at the hud depth
Kazuyas electric wind god fist for example, or When using a While standing right punch Gut hook attack.
Most people struggle to do EWGF so it might be easier to check in practice mode with the move list demonstration if is the case. or maybe in story assist when playing with kazuya I think it's Story assist + LP

i7-4790K CPU 4.8Ghz stable overclock.
16 GB RAM Corsair
ASUS Turbo 2080TI
Samsung SSD 840Pro
ASUS Z97-WS3D
Surround ASUS Rog Swift PG278Q(R), 2x PG278Q (yes it works)
Obutto R3volution.
Windows 10 pro 64x (Windows 7 Dual boot)

#69
Posted 06/11/2017 02:52 AM   
New version with those latest fixes, and some more shaders (not THAT one): https://s3.amazonaws.com/masterotaku/Tekken+7/Tekken7_fix_WIP_7.7z Also, new feature. Press "z" to toggle Kuma's and Panda's hair, if you want to get more fps (http://u.cubeupload.com/masterotaku/Tekkennohair.jpg). I already answered necropants personally about his question. The effect is OK :).
New version with those latest fixes, and some more shaders (not THAT one): https://s3.amazonaws.com/masterotaku/Tekken+7/Tekken7_fix_WIP_7.7z


Also, new feature. Press "z" to toggle Kuma's and Panda's hair, if you want to get more fps (http://u.cubeupload.com/masterotaku/Tekkennohair.jpg).


I already answered necropants personally about his question. The effect is OK :).

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

#70
Posted 06/11/2017 10:43 AM   
The hud depth of the item purchase menu is wrong,The only bug I've ever found
The hud depth of the item purchase menu is wrong,The only bug I've ever found

#71
Posted 06/11/2017 11:12 AM   
[quote="daspwan"]The hud depth of the item purchase menu is wrong,The only bug I've ever found[/quote] Yes, it has its own depth without me touching anything. I think it's the same shader as the character select screen. I gave it less priority than other shaders, but I'll try to do something about it soonish.
daspwan said:The hud depth of the item purchase menu is wrong,The only bug I've ever found


Yes, it has its own depth without me touching anything. I think it's the same shader as the character select screen. I gave it less priority than other shaders, but I'll try to do something about it soonish.

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

#72
Posted 06/11/2017 12:05 PM   
[quote="masterotaku"]If you are curious, DHR, here is how I did that "Alisa attack 2 (fire effect)" shader I posted a few posts above (relevant code): Remaining: the annoying specular lighting. Once it's done, the game will be perfect![/quote] Very nice about fixing that shader....never seen in other UE4 game. It's a Halo issue fix? About the specular lighting, you can search in one more than 1 shader. The issue is the one in this screenshots, in the floor? (http://u.cubeupload.com/masterotaku/Tekkennohair.jpg) Maybe is another CS - same patter than reflections.
masterotaku said:If you are curious, DHR, here is how I did that "Alisa attack 2 (fire effect)" shader I posted a few posts above (relevant code):

Remaining: the annoying specular lighting. Once it's done, the game will be perfect!


Very nice about fixing that shader....never seen in other UE4 game. It's a Halo issue fix?

About the specular lighting, you can search in one more than 1 shader.
The issue is the one in this screenshots, in the floor? (http://u.cubeupload.com/masterotaku/Tekkennohair.jpg)
Maybe is another CS - same patter than reflections.

MY WEB

Helix Mod - Making 3D Better

My 3D Screenshot Gallery

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

#73
Posted 06/11/2017 01:58 PM   
[quote="DHR"] Very nice about fixing that shader....never seen in other UE4 game. It's a Halo issue fix?[/quote] First, "r4.x-=stereo.x*(r4.z-stereo.y)*0.5;" fixes weirdness in the effect (part of it at screen depth), but that fix causes haloing when it's in contact with surrounding elements. And then using "r4.xyz = r4.xyz / r4.www;" instead of the original "r4.xy = r4.xy / r4.ww;" took care of the haloing. The result is perfect. [quote="DHR"] The issue is the one in this screenshots, in the floor?[/quote] No, the floor in that screenshot is fine (CS put at max depth instead of screen depth. All compute shaders are OK now). The problem is more visible in other stages (or in that stage but looking at the moon reflection on the floor) and in characters, especially at 0 convergence. I think "2198988ccc85453d-ps.txt" is the right shader. I can modify the depth of specular reflections in it (just before the "mad r2.xyz, r2.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)" line), but I don't have the correct depth value for the correction. I may try replacing its code or part of it with another lighting shader so I can make the correction (fc52fbc20a93996b-ps.txt, for example). But I may need to change the vertex shader too. I don't want it to be visually different at all, though.
DHR said:
Very nice about fixing that shader....never seen in other UE4 game. It's a Halo issue fix?


First, "r4.x-=stereo.x*(r4.z-stereo.y)*0.5;" fixes weirdness in the effect (part of it at screen depth), but that fix causes haloing when it's in contact with surrounding elements. And then using "r4.xyz = r4.xyz / r4.www;" instead of the original "r4.xy = r4.xy / r4.ww;" took care of the haloing. The result is perfect.

DHR said:
The issue is the one in this screenshots, in the floor?


No, the floor in that screenshot is fine (CS put at max depth instead of screen depth. All compute shaders are OK now). The problem is more visible in other stages (or in that stage but looking at the moon reflection on the floor) and in characters, especially at 0 convergence.

I think "2198988ccc85453d-ps.txt" is the right shader. I can modify the depth of specular reflections in it (just before the "mad r2.xyz, r2.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)" line), but I don't have the correct depth value for the correction. I may try replacing its code or part of it with another lighting shader so I can make the correction (fc52fbc20a93996b-ps.txt, for example). But I may need to change the vertex shader too. I don't want it to be visually different at all, though.

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

#74
Posted 06/11/2017 02:45 PM   
Yeah I think the specular lights is most noticeable in Goukis Temple stage. Other than this and the aforementioned HUD issues. Which I can live with, I would say it's pretty much 3d Ready. =D Maybe ask DJ-RK I think he fixed similar issues in SF5 which is also UE4, if that helps.
Yeah I think the specular lights is most noticeable in Goukis Temple stage. Other than this and the aforementioned HUD issues. Which I can live with, I would say it's pretty much 3d Ready.

=D

Maybe ask DJ-RK I think he fixed similar issues in SF5 which is also UE4, if that helps.

i7-4790K CPU 4.8Ghz stable overclock.
16 GB RAM Corsair
ASUS Turbo 2080TI
Samsung SSD 840Pro
ASUS Z97-WS3D
Surround ASUS Rog Swift PG278Q(R), 2x PG278Q (yes it works)
Obutto R3volution.
Windows 10 pro 64x (Windows 7 Dual boot)

#75
Posted 06/12/2017 04:24 AM   
  5 / 9    
Scroll To Top