//DBSZ Goku SSJ3 ryu ken flames. Temporal part convergence scaling compensates lack of convergence in normal fix.
// ---- Created with geo-11 v0.6.198 on Sat Oct 12 21:39:13 2024
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 cb2 : register(b2)
{
  float4 cb2[15];
}

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

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




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


void main(
  float4 v0 : SV_Position0,
  float4 v1 : TEXCOORD2,
  float4 v2 : TEXCOORD3,
  uint v3 : SV_IsFrontFace0,
  out float4 o0 : SV_Target0)
{
  float4 r0,r1,r2,r3,r10,r12,r11,r20,r30;
  uint4 bitmask, uiDest;
  float4 fDest;
  
  float4 stereo = StereoParams.Load(0);
  float4 prev = StereoParams.Load(int3(2,0,0));
  
  r0.xyz = float3(-2097152,-2097152,-2097152) * cb0[65].xyz;
  r1.xyz = cb0[9].xyw * r0.yyy;
  r0.xyw = r0.xxx * cb0[8].xyw + r1.xyz;
  r0.xyz = r0.zzz * cb0[10].xyw + r0.xyw;
  r0.xyz = cb0[11].xyw + r0.xyz;
  r1.xyz = cb1[1].xyz * float3(2097152,2097152,2097152) + cb1[5].xyz;
  r2.xyz = cb0[9].xyw * r1.yyy;
  r1.xyw = r1.xxx * cb0[8].xyw + r2.xyz;
  r1.xyz = r1.zzz * cb0[10].xyw + r1.xyw;
  r0.xyz = r1.xyz + r0.xyz;
  
  r0.x+=prev.x*(r0.z*0-prev.y);
  
  r0.xy = r0.xy / r0.zz;
  r0.xy = r0.xy * float2(0.5,-0.5) + float2(0.5,0.5);
  r0.xy = r0.xy * cb0[129].xy + float2(0.5,0.5);
  r0.xy = cb0[129].zw * r0.xy;
  
  //r11.xy = cb0[132].zw * v0.xy;
  ////r11.z = t0.SampleLevel(s0_s, r11.xy, 0).x;
  //r11.z = 1/r0.z;
  //r12.xyzw = cb0[49].xyzw * v0.yyyy;
  //r12.xyzw = v0.xxxx * cb0[48].xyzw + r12.xyzw;
  //r12.xyzw = v0.zzzz * cb0[50].xyzw + r12.xyzw;
  //r12.xyzw = cb0[51].xyzw + r12.xyzw;
  
  //r10.xyzw = cb0[49].xyzw * v0.yyyy;
  //r10.xyzw = v0.xxxx * cb0[48].xyzw + r10.xyzw;
  //r11.xy = asuint(cb0[37].xy);
  //r11.xy = v0.xy + -r11.xy;
  //r11.xy = cb0[38].zw * r11.xy;
  //r12.xy = r11.xy * cb0[129].xy + cb0[128].xy;
  //r12.xy = cb0[132].zw * r12.xy;
  //r11.w = t0.SampleLevel(s0_s, r12.xy, 0).x;
  //r11.w = max(1.00000005e-18, r11.w);
  //r10.xyzw = r11.wwww * cb0[50].xyzw + r10.xyzw;
  //r10.xyzw = cb0[51].xyzw + r10.xyzw;
  //r10.xyz = r10.xyz / r10.www;
  
  
  r30.xyzw = v0.xyzw;
  r30.x+=stereo.x*(stereo.y*0-1)*cb0[129].x*0.5;
  
  r20.zw = -cb0[128].xy + r30.xy;
  r20.xy = r20.zw * cb0[129].zw + -r0.xy;
  
  r0.zw = -cb0[128].xy + v0.xy;
  r0.xy = r20.zw * cb0[129].zw + -r0.xy;
  r1.xyz = -cb1[5].xyz + cb0[73].xyz;
  r2.xyz = -cb1[1].xyz + cb0[64].xyz;
  r3.xyz = r1.xyz * float3(9.53674316e-07,9.53674316e-07,9.53674316e-07) + r2.xyz;
  r1.xyz = r1.xyz * r1.xyz;
  r0.zw = r3.xy * r2.xy;
  r0.z = r0.z + r0.w;
  r0.z = r2.z * r3.z + r0.z;
  r1.xy = float2(4.76837158e-07,4.76837158e-07) * r1.xy;
  r0.w = r1.x + r1.y;
  r0.w = r1.z * 4.76837158e-07 + r0.w;
  r0.z = r0.w * 4.76837158e-07 + r0.z;
  r0.z = sqrt(r0.z);
  r0.xy = r0.zz * r20.xy;
  r1.z = cb0[129].x / cb0[129].y;
  r1.yw = float2(1,1);
  r0.xy = r1.zw * r0.xy;
  r0.zw = cb2[11].xy * r0.xy;
  r0.xy = cb2[6].xy * r0.xy;
  r0.xyzw = cb2[3].wwww * r0.xyzw;
  r0.xyzw = float4(2097152,2097152,2097152,2097152) * r0.xyzw;
  r0.xyzw = frac(r0.xyzw);
  r1.zw = cb2[10].xy * cb0[143].yy;
  r1.zw = frac(r1.zw);
  r1.zw = r1.zw + r0.zw;
  r1.z = t3.SampleBias(s3_s, r1.zw, cb0[144].x).x;
  r2.xy = cb2[12].zw * cb0[143].yy;
  r2.xy = frac(r2.xy);
  r0.zw = r2.xy + r0.zw;
  r0.z = t3.SampleBias(s3_s, r0.zw, cb0[144].x).y;
  r0.z = r1.z + r0.z;
  r0.z = cb2[13].x * r0.z;
  r1.x = v0.z;
  r1.xy = v0.ww * r1.xy;
  r0.w = r1.x * cb0[71].z + -cb0[71].w;
  r0.w = 1 / r0.w;
  r1.x = r1.x * cb0[71].x + cb0[71].y;
  r0.w = r1.x + r0.w;
  r1.x = cmp(cb0[35].w < 1);
  r0.w = r1.x ? r1.y : r0.w;
  r0.w = cb2[8].z * r0.w;
  r0.w = saturate(0.100000001 * r0.w);
  r0.z = r0.z * r0.w;
  r0.z = t0.SampleBias(s0_s, r0.zz, cb0[144].x).x;
  r1.x = cb2[4].w * cb0[143].y;
  r1.x = frac(r1.x);
  r1.z = cb2[5].x * cb0[143].y;
  r1.z = frac(r1.z);
  r1.xy = r1.xz + r0.xy;
  r1.x = t1.SampleBias(s1_s, r1.xy, cb0[144].x).x;
  r1.yz = cb2[7].zw * cb0[143].yy;
  r1.yz = frac(r1.yz);
  r0.xy = r1.yz + r0.xy;
  r0.x = t1.SampleBias(s1_s, r0.xy, cb0[144].x).x;
  r0.x = r1.x + r0.x;
  r0.x = cb2[8].x * r0.x;
  r0.x = r0.x * r0.w;
  r0.x = t2.SampleBias(s2_s, r0.xx, cb0[144].x).x;
  r0.y = t0.SampleBias(s0_s, v2.xy, cb0[144].x).x;
  r0.x = r0.y * r0.x;
  r0.x = r0.z * r0.y + r0.x;
  r0.y = log2(r0.x);
  r0.y = cb2[13].y * r0.y;
  r0.y = exp2(r0.y);
  r0.y = ceil(r0.y);
  r0.z = 1 + -v1.w;
  r0.y = r0.y * r0.z;
  r0.z = cmp(0 >= r0.x);
  r0.y = r0.z ? 0 : r0.y;
  r0.y = v1.w + r0.y;
  r0.z = v1.w * r0.x;
  r0.x = -r0.x * v1.w + 0.0799999982;
  r0.x = cmp(9.99999975e-06 < abs(r0.x));
  r0.z = cmp(0.0799999982 >= r0.z);
  r0.y = r0.z ? 0 : r0.y;
  r0.x = r0.x ? r0.y : 0;
  r0.x = r0.x * cb2[14].w + -0.333299994;
  r0.x = cmp(r0.x < 0);
  if (r0.x != 0) discard;
  o0.xyzw = float4(0,0,0,0);
  return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v0.6.198 on Sat Oct 12 21:39:13 2024
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Position              0   xyzw        0      POS   float   xyzw
// TEXCOORD                 2   xyzw        1     NONE   float      w
// TEXCOORD                 3   xyzw        2     NONE   float   xy
// SV_IsFrontFace           0   x           3    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[145], immediateIndexed
dcl_constantbuffer CB1[6], immediateIndexed
dcl_constantbuffer CB2[15], 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_siv linear noperspective v0.xyzw, position
dcl_input_ps linear v1.w
dcl_input_ps linear v2.xy
dcl_output o0.xyzw
dcl_temps 4
mul r0.xyz, cb0[65].xyzx, l(-2097152.000000, -2097152.000000, -2097152.000000, 0.000000)
mul r1.xyz, r0.yyyy, cb0[9].xywx
mad r0.xyw, r0.xxxx, cb0[8].xyxw, r1.xyxz
mad r0.xyz, r0.zzzz, cb0[10].xywx, r0.xywx
add r0.xyz, r0.xyzx, cb0[11].xywx
mad r1.xyz, cb1[1].xyzx, l(2097152.000000, 2097152.000000, 2097152.000000, 0.000000), cb1[5].xyzx
mul r2.xyz, r1.yyyy, cb0[9].xywx
mad r1.xyw, r1.xxxx, cb0[8].xyxw, r2.xyxz
mad r1.xyz, r1.zzzz, cb0[10].xywx, r1.xywx
add r0.xyz, r0.xyzx, r1.xyzx
div r0.xy, r0.xyxx, r0.zzzz
mad r0.xy, r0.xyxx, l(0.500000, -0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
mad r0.xy, r0.xyxx, cb0[129].xyxx, l(0.500000, 0.500000, 0.000000, 0.000000)
mul r0.xy, r0.xyxx, cb0[129].zwzz
add r0.zw, v0.xxxy, -cb0[128].xxxy
mad r0.xy, r0.zwzz, cb0[129].zwzz, -r0.xyxx
add r1.xyz, cb0[73].xyzx, -cb1[5].xyzx
add r2.xyz, cb0[64].xyzx, -cb1[1].xyzx
mad r3.xyz, r1.xyzx, l(9.536743164E-07, 9.536743164E-07, 9.536743164E-07, 0.000000), r2.xyzx
mul r1.xyz, r1.xyzx, r1.xyzx
mul r0.zw, r2.xxxy, r3.xxxy
add r0.z, r0.w, r0.z
mad r0.z, r2.z, r3.z, r0.z
mul r1.xy, r1.xyxx, l(4.768371582E-07, 4.768371582E-07, 0.000000, 0.000000)
add r0.w, r1.y, r1.x
mad r0.w, r1.z, l(4.768371582E-07), r0.w
mad r0.z, r0.w, l(4.768371582E-07), r0.z
sqrt r0.z, r0.z
mul r0.xy, r0.xyxx, r0.zzzz
div r1.z, cb0[129].x, cb0[129].y
mov r1.yw, l(0,1.000000,0,1.000000)
mul r0.xy, r0.xyxx, r1.zwzz
mul r0.zw, r0.xxxy, cb2[11].xxxy
mul r0.xy, r0.xyxx, cb2[6].xyxx
mul r0.xyzw, r0.xyzw, cb2[3].wwww
mul r0.xyzw, r0.xyzw, l(2097152.000000, 2097152.000000, 2097152.000000, 2097152.000000)
frc r0.xyzw, r0.xyzw
mul r1.zw, cb0[143].yyyy, cb2[10].xxxy
frc r1.zw, r1.zzzw
add r1.zw, r0.zzzw, r1.zzzw
sample_b_indexable(texture2d)(float,float,float,float) r1.z, r1.zwzz, t3.yzxw, s3, cb0[144].x
mul r2.xy, cb0[143].yyyy, cb2[12].zwzz
frc r2.xy, r2.xyxx
add r0.zw, r0.zzzw, r2.xxxy
sample_b_indexable(texture2d)(float,float,float,float) r0.z, r0.zwzz, t3.xzyw, s3, cb0[144].x
add r0.z, r0.z, r1.z
mul r0.z, r0.z, cb2[13].x
mov r1.x, v0.z
mul r1.xy, r1.xyxx, v0.wwww
mad r0.w, r1.x, cb0[71].z, -cb0[71].w
div r0.w, l(1.000000, 1.000000, 1.000000, 1.000000), r0.w
mad r1.x, r1.x, cb0[71].x, cb0[71].y
add r0.w, r0.w, r1.x
lt r1.x, cb0[35].w, l(1.000000)
movc r0.w, r1.x, r1.y, r0.w
mul r0.w, r0.w, cb2[8].z
mul_sat r0.w, r0.w, l(0.100000)
mul r0.z, r0.w, r0.z
sample_b_indexable(texture2d)(float,float,float,float) r0.z, r0.zzzz, t0.yzxw, s0, cb0[144].x
mul r1.x, cb0[143].y, cb2[4].w
frc r1.x, r1.x
mul r1.z, cb0[143].y, cb2[5].x
frc r1.z, r1.z
add r1.xy, r0.xyxx, r1.xzxx
sample_b_indexable(texture2d)(float,float,float,float) r1.x, r1.xyxx, t1.xyzw, s1, cb0[144].x
mul r1.yz, cb0[143].yyyy, cb2[7].zzwz
frc r1.yz, r1.yyzy
add r0.xy, r0.xyxx, r1.yzyy
sample_b_indexable(texture2d)(float,float,float,float) r0.x, r0.xyxx, t1.xyzw, s1, cb0[144].x
add r0.x, r0.x, r1.x
mul r0.x, r0.x, cb2[8].x
mul r0.x, r0.w, r0.x
sample_b_indexable(texture2d)(float,float,float,float) r0.x, r0.xxxx, t2.xyzw, s2, cb0[144].x
sample_b_indexable(texture2d)(float,float,float,float) r0.y, v2.xyxx, t0.yxzw, s0, cb0[144].x
mul r0.x, r0.x, r0.y
mad r0.x, r0.z, r0.y, r0.x
log r0.y, r0.x
mul r0.y, r0.y, cb2[13].y
exp r0.y, r0.y
round_pi r0.y, r0.y
add r0.z, -v1.w, l(1.000000)
mul r0.y, r0.z, r0.y
ge r0.z, l(0.000000), r0.x
movc r0.y, r0.z, l(0), r0.y
add r0.y, r0.y, v1.w
mul r0.z, r0.x, v1.w
mad r0.x, -r0.x, v1.w, l(0.080000)
lt r0.x, l(0.000010), |r0.x|
ge r0.z, l(0.080000), r0.z
movc r0.y, r0.z, l(0), r0.y
and r0.x, r0.y, r0.x
mad r0.x, r0.x, cb2[14].w, l(-0.333300)
lt r0.x, r0.x, l(0.000000)
discard_nz r0.x
mov o0.xyzw, l(0,0,0,0)
ret
// Approximately 0 instruction slots used

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