//Octopath Traveler II vignette and chromatic aberration. Temenos chapter 2.
// ---- Created with 3Dmigoto v1.3.16 on Fri Mar 10 16:39:25 2023
Texture2D<float4> t3 : register(t3);

Texture2D<float4> t2 : register(t2);

Texture2D<float4> t1 : register(t1);

Texture2D<float4> t0 : register(t0);

SamplerState s3_s : register(s3);

SamplerState s2_s : register(s2);

SamplerState s1_s : register(s1);

SamplerState s0_s : register(s0);

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

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




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


void main(
  linear noperspective float4 v0 : TEXCOORD0,
  float4 v1 : SV_POSITION0,
  out float4 o0 : SV_Target0)
{
  float4 r0,r1,r2,r3,r4;
  uint4 bitmask, uiDest;
  float4 fDest;
  
  float4 stereo = StereoParams.Load(0);
  float4 iniparams90 = IniParams.Load(int2(90,0));
  
  r0.xy = cb0[29].zw * v1.xy;
  r0.z = t1.SampleLevel(s1_s, r0.xy, 0).x;
  r0.w = r0.z * cb1[65].z + -cb1[65].w;
  r0.z = r0.z * cb1[65].x + cb1[65].y;
  r0.w = 1 / r0.w;
  r0.z = r0.z + r0.w;
  r0.w = -cb1[154].z + r0.z;
  r0.w = -cb1[155].y + r0.w;
  r0.w = max(0, r0.w);
  r0.w = cb1[154].z + r0.w;
  r1.x = cmp(cb1[154].z < r0.z);
  r0.z = r1.x ? r0.w : r0.z;
  r0.z = 9.99999975e-006 * r0.z;
  r0.w = cb1[154].z * 9.99999975e-006 + -r0.z;
  r1.x = cb1[155].x * cb1[154].w;
  r0.w = r1.x * r0.w;
  r1.x = cb1[154].z * 9.99999975e-006 + -cb1[155].x;
  r0.z = r1.x * r0.z;
  r0.z = r0.w / r0.z;
  r0.z = min(1, abs(r0.z));
  r0.z = 5 * r0.z;
  r0.z = min(1, r0.z);
  r0.z = 1 + -r0.z;
  
  //if (iniparams90.y==1) {
  //  r0.z = 1;
  //}
  
  r1.w = 0;
  r2.xyzw = t2.Sample(s3_s, v0.xy).xyzw;
  r0.w = max(0.00100000005, r2.w);
  r2.xyz = r2.xyz / r0.www;
  r0.w = saturate(cb0[27].w * r2.w);
  r3.xyz = t0.Sample(s0_s, r0.xy).xyz;
  r4.xyzw = t3.Sample(s2_s, r0.xy).xyzw;
  r2.xyz = -r3.xyz + r2.xyz;
  r1.xyz = r0.www * r2.xyz + r3.xyz;
  r2.xyz = r3.xyz + -r1.xyz;
  r2.w = 1;
  r0.xyzw = r0.zzzz * r2.xyzw + r1.xyzw;
  r1.x = v0.x;
  r1.y = cb0[28].y + v0.y;
  r1.xyzw = t2.Sample(s3_s, r1.xy).xyzw;
  r2.x = max(0.00100000005, r1.w);
  r2.xyz = r1.xyz / r2.xxx;
  r1.x = saturate(cb0[27].w * r1.w);
  r2.w = 0;
  r2.xyzw = r2.xyzw + -r0.xyzw;
  r0.xyzw = r1.xxxx * r2.xyzw + r0.xyzw;
  r1.xyz = r3.xyz + -r0.xyz;
  r0.xyz = r0.www * r1.xyz + r0.xyz;
  o0.xyz = r0.xyz * r4.www + r4.xyz;
  o0.w = 0;
  return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v1.3.16 on Fri Mar 10 16:39:25 2023
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// TEXCOORD                 0   xyzw        0     NONE   float   xy
// SV_POSITION              0   xyzw        1      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[30], immediateIndexed
dcl_constantbuffer cb1[156], immediateIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, mode_default
dcl_sampler s2, mode_default
dcl_sampler s3, 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_input_ps linear noperspective v0.xy
dcl_input_ps_siv linear noperspective v1.xy, position
dcl_output o0.xyzw
dcl_temps 5
mul r0.xy, v1.xyxx, cb0[29].zwzz
sample_l_indexable(texture2d)(float,float,float,float) r0.z, r0.xyxx, t1.yzxw, s1, l(0.000000)
mad r0.w, r0.z, cb1[65].z, -cb1[65].w
mad r0.z, r0.z, cb1[65].x, cb1[65].y
div r0.w, l(1.000000, 1.000000, 1.000000, 1.000000), r0.w
add r0.z, r0.w, r0.z
add r0.w, r0.z, -cb1[154].z
add r0.w, r0.w, -cb1[155].y
max r0.w, r0.w, l(0.000000)
add r0.w, r0.w, cb1[154].z
lt r1.x, cb1[154].z, r0.z
movc r0.z, r1.x, r0.w, r0.z
mul r0.z, r0.z, l(0.000010)
mad r0.w, cb1[154].z, l(0.000010), -r0.z
mul r1.x, cb1[154].w, cb1[155].x
mul r0.w, r0.w, r1.x
mad r1.x, cb1[154].z, l(0.000010), -cb1[155].x
mul r0.z, r0.z, r1.x
div r0.z, r0.w, r0.z
min r0.z, |r0.z|, l(1.000000)
mul r0.z, r0.z, l(5.000000)
min r0.z, r0.z, l(1.000000)
add r0.z, -r0.z, l(1.000000)
mov r1.w, l(0)
sample_indexable(texture2d)(float,float,float,float) r2.xyzw, v0.xyxx, t2.xyzw, s3
max r0.w, r2.w, l(0.001000)
div r2.xyz, r2.xyzx, r0.wwww
mul_sat r0.w, r2.w, cb0[27].w
sample_indexable(texture2d)(float,float,float,float) r3.xyz, r0.xyxx, t0.xyzw, s0
sample_indexable(texture2d)(float,float,float,float) r4.xyzw, r0.xyxx, t3.xyzw, s2
add r2.xyz, r2.xyzx, -r3.xyzx
mad r1.xyz, r0.wwww, r2.xyzx, r3.xyzx
add r2.xyz, -r1.xyzx, r3.xyzx
mov r2.w, l(1.000000)
mad r0.xyzw, r0.zzzz, r2.xyzw, r1.xyzw
mov r1.x, v0.x
add r1.y, v0.y, cb0[28].y
sample_indexable(texture2d)(float,float,float,float) r1.xyzw, r1.xyxx, t2.xyzw, s3
max r2.x, r1.w, l(0.001000)
div r2.xyz, r1.xyzx, r2.xxxx
mul_sat r1.x, r1.w, cb0[27].w
mov r2.w, l(0)
add r2.xyzw, -r0.xyzw, r2.xyzw
mad r0.xyzw, r1.xxxx, r2.xyzw, r0.xyzw
add r1.xyz, -r0.xyzx, r3.xyzx
mad r0.xyz, r0.wwww, r1.xyzx, r0.xyzx
mad o0.xyz, r0.xyzx, r4.wwww, r4.xyzx
mov o0.w, l(0)
ret
// Approximately 0 instruction slots used

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