// CIRRUS 2 fake normal

cbuffer _Globals : register(b0)
{
  float4x4 viewproj : packoffset(c0);
  float4 cv4 : packoffset(c4);
  float4 cam : packoffset(c5);
  float4 LightDir : packoffset(c6);
  float4 Ambient : packoffset(c7);
  float4 TexSteps : packoffset(c8);
}

SamplerState mySampler_s : register(s0);
SamplerState AndSampler_s : register(s1);
Texture2D<float4> AndSampler : register(t0);
Texture2D<float4> mySampler : register(t1);


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


void main(
  float4 v0 : SV_Position0,
  float4 v1 : TEXCOORD0,
  float4 v2 : TEXCOORD1,
  float2 v3 : TEXCOORD2,
  float4 v4 : COLOR0,
  float4 v5 : COLOR1,
  out float4 o0 : SV_Target0)
{
  float4 r0,r1,r2;
  uint4 bitmask, uiDest;
  float4 fDest;

 // r0.xyzw = AndSampler.Sample(AndSampler_s, v3.xy).xyzw;
 // r1.xyzw = mySampler.Sample(mySampler_s, v1.xy).xyzw;
 // r0.x = dot(-LightDir.xz, -LightDir.xz);
 // r0.x = rsqrt(r0.x);
 // r0.xz = -LightDir.xz * r0.xx;
 // r0.xz = TexSteps.xy * r0.xz;
 // r1.xz = v1.xy;
 // r0.w = 0;
 // r1.w = 0;
 // while (true) {
 //   r2.x = cmp(r1.w >= 4);
 //   if (r2.x != 0) break;
 //   r2.xyzw = mySampler.Sample(mySampler_s, r1.xz).xyzw;
 //   r0.w = r2.y + r0.w;
 //   r1.xz = r0.xz * float2(2,2) + r1.xz;
 //   r1.w = 1 + r1.w;
 // }
 // r0.x = r0.w * r0.y;
 // r0.x = 0.25 * r0.x;
 // r0.z = Ambient.x + Ambient.y;
 // r0.z = Ambient.z + r0.z;
 // r0.z = r0.z * 0.333299994 + -0.5;
 // r0.z = saturate(r0.z + r0.z);
 // r0.z = v4.w * r0.z;
 // r0.x = r1.y * r0.y + -r0.x;
 // r0.y = v5.x + v5.y;
 //  r0.y = v5.z + r0.y;
 // r0.y = saturate(-r0.y * 0.333299994 + 1);
 // r0.x = r0.x * r0.y;
 // r0.y = v4.x * 0.5 + 1;
 // r0.x = r0.x * r0.y;
 // r0.x = r0.z * r0.x;
 // o0.xyzw = saturate(r0.xxxx);
 o0.xyzw = 0.0;
  return;
}
