//KH3 barrel distortion PS 2. Remind DLC Xehanort battle in sky.
// ---- Created with geo-11 v0.6.198 on Fri Apr 24 17:25:21 2026
Texture2D<float4> t0 : register(t0);

SamplerState s0_s : register(s0);

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

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




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


void main(
  float4 v0 : TEXCOORD0,
  out float4 o0 : SV_Target0)
{
  float4 r0,r1;
  uint4 bitmask, uiDest;
  float4 fDest;
  
  float4 stereo = StereoParams.Load(0);
  
  r0.x = cb1[119].z / cb1[119].w;
  r1.xy = cb0[18].xy + -v0.xy;
  r0.x = r1.y * r0.x;
  r1.z = cb0[20].y * r0.x;
  
  r1.x+=stereo.x*0.5;
  
  r0.x = dot(r1.xz, r1.xz);
  r0.yz = cb0[20].xx * r1.xy;
  r0.x = sqrt(r0.x);
  r0.x = saturate(r0.x / cb0[18].w);
  r0.x = 1 + -r0.x;
  r0.xy = r0.yz * r0.xx;
  r0.zw = v0.zw * cb0[16].xy + cb0[16].zw;
  r0.zw = float2(0.5,0.5) + r0.zw;
  r0.xy = r0.zw * cb0[0].zw + r0.xy;
  r0.xyz = t0.Sample(s0_s, r0.xy).xyz;
  o0.xyz = r0.xyz;
  o0.w = 0;
  return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v0.6.198 on Fri Apr 24 17:25:21 2026
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// TEXCOORD                 0   xyzw        0     NONE   float   xyzw
//
//
// 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[21], immediateIndexed
dcl_constantbuffer CB1[120], immediateIndexed
dcl_sampler s0, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_input_ps linear v0.xyzw
dcl_output o0.xyzw
dcl_temps 2
div r0.x, cb1[119].z, cb1[119].w
add r1.xy, -v0.xyxx, cb0[18].xyxx
mul r0.x, r0.x, r1.y
mul r1.z, r0.x, cb0[20].y
dp2 r0.x, r1.xzxx, r1.xzxx
mul r0.yz, r1.xxyx, cb0[20].xxxx
sqrt r0.x, r0.x
div_sat r0.x, r0.x, cb0[18].w
add r0.x, -r0.x, l(1.000000)
mul r0.xy, r0.xxxx, r0.yzyy
mad r0.zw, v0.zzzw, cb0[16].xxxy, cb0[16].zzzw
add r0.zw, r0.zzzw, l(0.000000, 0.000000, 0.500000, 0.500000)
mad r0.xy, r0.zwzz, cb0[0].zwzz, r0.xyxx
sample_indexable(texture2d)(float,float,float,float) r0.xyz, r0.xyxx, t0.xyzw, s0
mov o0.xyz, r0.xyzx
mov o0.w, l(0)
ret
// Approximately 0 instruction slots used

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