// ---- Created with 3Dmigoto v0.6.164 on Wed Aug 27 00:03:49 2025

cbuffer _Globals : register(b0)
{
  row_major float4x4 m001_ViewProjMat : packoffset(c0);
  float4 d002_CameraNearAndFarAndNearRelAndFarInv : packoffset(c5);
  float4 ucp0_ClipPlane : packoffset(c29);
  row_major float3x4 m000_WorldMat : packoffset(c49);
  float4 d007_PosDecompressionScaleAndOffset : packoffset(c56);
}



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


void main(
  uint4 v0 : POSITION0,
  uint4 v1 : TANGENT0,
  uint4 v2 : NORMAL0,
  float4 v3 : TEXCOORD0,
  float4 v4 : TEXCOORD1,
  out float4 o0 : SV_Position0,
  out float4 o1 : TEXCOORD0,
  out float4 o2 : TEXCOORD1,
  out float4 o3 : TEXCOORD2,
  out float4 o4 : TEXCOORD3,
  out float4 o5 : TEXCOORD4,
  out float4 o6 : TEXCOORD5,
  out float4 o7 : TEXCOORD6,
  out float4 o8 : TEXCOORD7,
  out float4 o9 : TEXCOORD8,
  out float4 o10 : SV_ClipDistance0)
{
  float4 r0,r1,r2,r3;
  uint4 bitmask, uiDest;
  float4 fDest;

  r0.xyzw = (uint4)v1.xyzw;
  r1.x = cmp(r0.y >= 128);
  r1.xy = r1.xx ? float2(-128,-1) : float2(-0,1);
  r0.y = r1.x + r0.y;
  r1.xz = d007_PosDecompressionScaleAndOffset.ww * float2(1,256);
  r2.z = dot(r0.xy, r1.xz);
  r3.xyzw = (uint4)v0.xyzw;
  r2.x = dot(r3.xy, r1.xz);
  r2.y = dot(r3.zw, r1.xz);
  r2.xyz = d007_PosDecompressionScaleAndOffset.xyz + r2.xyz;
  r2.w = 1;
  r3.x = dot(m000_WorldMat._m00_m01_m02_m03, r2.xyzw);
  r3.y = dot(m000_WorldMat._m10_m11_m12_m13, r2.xyzw);
  r3.z = dot(m000_WorldMat._m20_m21_m22_m23, r2.xyzw);
  r3.w = 1;
  r2.x = dot(m001_ViewProjMat._m00_m01_m02_m03, r3.xyzw);
  r2.y = dot(m001_ViewProjMat._m10_m11_m12_m13, r3.xyzw);
  r2.z = dot(m001_ViewProjMat._m20_m21_m22_m23, r3.xyzw);
  r2.w = dot(m001_ViewProjMat._m30_m31_m32_m33, r3.xyzw);
  o0.xyzw = r2.xyzw;
  
 
  
  o10.xyzw = dot(r2.xyzw, ucp0_ClipPlane.xyzw);
  o4.x = r2.z;
  r3.w = d002_CameraNearAndFarAndNearRelAndFarInv.w * r2.w;
  o4.y = 1 / r2.w;
  o1.xyzw = r3.xyzw;
  o2.xyzw = r3.xyzw;
  o3.xy = v3.xy;
  o3.zw = float2(0,0);
  o4.zw = float2(0,0);
  o5.w = 0;
  r2.xyzw = (uint4)v2.xyzw;
  r0.x = r2.w;
  r1.xzw = r2.xyz * float3(0.00784313772,0.00784313772,0.00784313772) + float3(-1,-1,-1);
  r0.xyz = r0.zwx * float3(0.00784313772,0.00784313772,0.00784313772) + float3(-1,-1,-1);
  r2.xyz = r1.wxz * r0.yzx;
  r2.xyz = r1.zwx * r0.zxy + -r2.xyz;
  r2.xyz = r2.xyz * r1.yyy;
  o5.y = dot(m000_WorldMat._m00_m01_m02, r2.xyz);
  o5.x = dot(m000_WorldMat._m00_m01_m02, r0.xyz);
  o5.z = dot(m000_WorldMat._m00_m01_m02, r1.xzw);
  o6.x = dot(m000_WorldMat._m10_m11_m12, r0.xyz);
  o7.x = dot(m000_WorldMat._m20_m21_m22, r0.xyz);
  o6.z = dot(m000_WorldMat._m10_m11_m12, r1.xzw);
  o7.z = dot(m000_WorldMat._m20_m21_m22, r1.xzw);
  o6.y = dot(m000_WorldMat._m10_m11_m12, r2.xyz);
  o7.y = dot(m000_WorldMat._m20_m21_m22, r2.xyz);
  o6.w = 0;
  o7.w = 0;
  r0.xy = v4.xy;
  r0.zw = float2(0,0);
  o8.xyzw = r0.xyww;
  o9.xyzw = r0.xyzw;
  
//float4 s = StereoParams.Load(0);
//float4 testeo = IniParams.Load(int2(90,0));
//o9.x += s.x * testeo.x;   
  
  
  return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) HLSL Shader Compiler 10.1
//
//   using 3Dmigoto v0.6.164 on Wed Aug 27 00:03:49 2025
//
//
// Buffer Definitions:
//
// cbuffer $Globals
// {
//
//   row_major float4x4 m001_ViewProjMat;// Offset:    0 Size:    64
//   float4 d002_CameraNearAndFarAndNearRelAndFarInv;// Offset:   80 Size:    16
//   float4 ucp0_ClipPlane;             // Offset:  464 Size:    16
//   row_major float3x4 m000_WorldMat;  // Offset:  784 Size:    48
//   float4 d007_PosDecompressionScaleAndOffset;// Offset:  896 Size:    16
//
// }
//
//
// Resource Bindings:
//
// Name                                 Type  Format         Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// $Globals                          cbuffer      NA          NA    0        1
//
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// POSITION                 0   xyzw        0     NONE    uint   xyzw
// TANGENT                  0   xyzw        1     NONE    uint   xyzw
// NORMAL                   0   xyzw        2     NONE    uint   xyzw
// TEXCOORD                 0   xyzw        3     NONE   float   xy
// TEXCOORD                 1   xyzw        4     NONE   float   xy
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Position              0   xyzw        0      POS   float   xyzw
// TEXCOORD                 0   xyzw        1     NONE   float   xyzw
// TEXCOORD                 1   xyzw        2     NONE   float   xyzw
// TEXCOORD                 2   xyzw        3     NONE   float   xyzw
// TEXCOORD                 3   xyzw        4     NONE   float   xyzw
// TEXCOORD                 4   xyzw        5     NONE   float   xyzw
// TEXCOORD                 5   xyzw        6     NONE   float   xyzw
// TEXCOORD                 6   xyzw        7     NONE   float   xyzw
// TEXCOORD                 7   xyzw        8     NONE   float   xyzw
// TEXCOORD                 8   xyzw        9     NONE   float   xyzw
// SV_ClipDistance          0   xyzw       10  CLIPDST   float   xyzw
//
vs_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer CB0[57], immediateIndexed
dcl_input v0.xyzw
dcl_input v1.xyzw
dcl_input v2.xyzw
dcl_input v3.xy
dcl_input v4.xy
dcl_output_siv o0.xyzw, position
dcl_output o1.xyzw
dcl_output o2.xyzw
dcl_output o3.xyzw
dcl_output o4.xyzw
dcl_output o5.xyzw
dcl_output o6.xyzw
dcl_output o7.xyzw
dcl_output o8.xyzw
dcl_output o9.xyzw
dcl_output_siv o10.xyzw, clip_distance
dcl_temps 4
utof r0.xyzw, v1.xyzw
ge r1.x, r0.y, l(128.000000)
movc r1.xy, r1.xxxx, l(-128.000000,-1.000000,0,0), l(-0.000000,1.000000,0,0)
add r0.y, r0.y, r1.x
mul r1.xz, l(1.000000, 0.000000, 256.000000, 0.000000), cb0[56].wwww
dp2 r2.z, r0.xyxx, r1.xzxx
utof r3.xyzw, v0.xyzw
dp2 r2.x, r3.xyxx, r1.xzxx
dp2 r2.y, r3.zwzz, r1.xzxx
add r2.xyz, r2.xyzx, cb0[56].xyzx
mov r2.w, l(1.000000)
dp4 r3.x, cb0[49].xyzw, r2.xyzw
dp4 r3.y, cb0[50].xyzw, r2.xyzw
dp4 r3.z, cb0[51].xyzw, r2.xyzw
mov r3.w, l(1.000000)
dp4 r2.x, cb0[0].xyzw, r3.xyzw
dp4 r2.y, cb0[1].xyzw, r3.xyzw
dp4 r2.z, cb0[2].xyzw, r3.xyzw
dp4 r2.w, cb0[3].xyzw, r3.xyzw
mov o0.xyzw, r2.xyzw
dp4 o10.xyzw, r2.xyzw, cb0[29].xyzw
mov o4.x, r2.z
mul r3.w, r2.w, cb0[5].w
div o4.y, l(1.000000, 1.000000, 1.000000, 1.000000), r2.w
mov o1.xyzw, r3.xyzw
mov o2.xyzw, r3.xyzw
mov o3.xy, v3.xyxx
mov o3.zw, l(0,0,0,0)
mov o4.zw, l(0,0,0,0)
mov o5.w, l(0)
utof r2.xyzw, v2.xyzw
mov r0.x, r2.w
mad r1.xzw, r2.xxyz, l(0.00784313772, 0.000000, 0.00784313772, 0.00784313772), l(-1.000000, 0.000000, -1.000000, -1.000000)
mad r0.xyz, r0.zwxz, l(0.00784313772, 0.00784313772, 0.00784313772, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
mul r2.xyz, r0.yzxy, r1.wxzw
mad r2.xyz, r1.zwxz, r0.zxyz, -r2.xyzx
mul r2.xyz, r1.yyyy, r2.xyzx
dp3 o5.y, cb0[49].xyzx, r2.xyzx
dp3 o5.x, cb0[49].xyzx, r0.xyzx
dp3 o5.z, cb0[49].xyzx, r1.xzwx
dp3 o6.x, cb0[50].xyzx, r0.xyzx
dp3 o7.x, cb0[51].xyzx, r0.xyzx
dp3 o6.z, cb0[50].xyzx, r1.xzwx
dp3 o7.z, cb0[51].xyzx, r1.xzwx
dp3 o6.y, cb0[50].xyzx, r2.xyzx
dp3 o7.y, cb0[51].xyzx, r2.xyzx
mov o6.w, l(0)
mov o7.w, l(0)
mov r0.xy, v4.xyxx
mov r0.zw, l(0,0,0,0)
mov o8.xyzw, r0.xyww
mov o9.xyzw, r0.xyzw
ret
// Approximately 53 instruction slots used

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