// AUTOMATICALLY CONVERTED FROM SHADER FIXES 
//
// Generated by Microsoft (R) HLSL Shader Compiler 10.1
//
//   using 3Dmigoto v0.7.11 on Thu Oct  8 23:19:03 2026
//
//
// Buffer Definitions:
//
// cbuffer TransformCB
// {
//
//   float4 mtx_palette[32];            // Offset:    0 Size:   512
//   float4 y_scale;                    // Offset:  512 Size:    16
//
// }
//
// cbuffer PerDrawCB
// {
//
//   struct
//   {
//
//       uint width;                    // Offset:    0
//       uint height;                   // Offset:    4
//       bool linear_filtering;         // Offset:    8
//
//   } textures[7];                     // Offset:    0 Size:   108 [unused]
//   float4 combiner_inputs[6];         // Offset:  112 Size:    96 [unused]
//   float4 fog_color;                  // Offset:  208 Size:    16 [unused]
//   float4 grayscale_color;            // Offset:  224 Size:    16 [unused]
//   float4 uv_transform[2];            // Offset:  240 Size:    32
//   float4 texture_clamp[2];           // Offset:  272 Size:    32 [unused]
//   float4 fog_params;                 // Offset:  304 Size:    16 [unused]
//   float4 palette_params[2];          // Offset:  320 Size:    32 [unused]
//   float4 lod_params;                 // Offset:  352 Size:    16 [unused]
//   float4 uCustom[32];                // Offset:  368 Size:   512 [unused]
//   float4 debug_tint;                 // Offset:  880 Size:    16 [unused]
//
// }
//
//
// Resource Bindings:
//
// Name                                 Type  Format         Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// IniParams                         texture  float4          1d  120        1
// StereoParams                      texture  float4          2d  125        1
// PerDrawCB                         cbuffer      NA          NA    1        1
// TransformCB                       cbuffer      NA          NA    4        1
//
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// POSITION                 0   xyzw        0     NONE   float   xyzw
// MTXSLOT                  0   x           1     NONE   float   x
// TEXCOORD                 0   xy          2     NONE   float   xy
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_POSITION              0   xyzw        0      POS   float   xyzw
// TEXCOORD                 0   xy          1     NONE   float   xy
// TEXCOORD                 1     z         1     NONE   float     z
// P                        0   x           2  RTINDEX    uint   x
//
vs_4_0
dcl_output_siv o2.x, rendertarget_array_index
dcl_constantbuffer CB4[33], dynamicIndexed
dcl_constantbuffer CB1[16], immediateIndexed
dcl_resource_texture1d (float,float,float,float) t120
dcl_resource_buffer (float,float,float,float) t125
dcl_input v0.xyzw
dcl_input v1.x
dcl_input v2.xy
dcl_output_siv o0.xyzw, position
dcl_output o1.xy
dcl_output o1.z
dcl_temps 9
ld_indexable(buffer)(float,float,float,float) r8.xyzw, l(0, 0, 0, 0), t125.xyzw
mov o2.x, r8.z
mov r0.y, l(0)
add r0.z, v1.x, l(0.500000)
round_z r0.z, r0.z
ftou r0.z, r0.z
ishl r0.z, r0.z, l(2)
utof r0.w, r0.z
ftoi r0.w, r0.w
iadd r1.xyz, r0.wwww, l(1, 2, 3, 0)
itof r1.xyz, r1.xyzx
ftou r1.xyz, r1.xyzx
mul r2.xyzw, v0.yyyy, cb4[r1.x + 0].xyzw
mad r2.xyzw, v0.xxxx, cb4[r0.z + 0].xyzw, r2.xyzw
mad r2.xyzw, v0.zzzz, cb4[r1.y + 0].xyzw, r2.xyzw
mad r1.xyzw, v0.wwww, cb4[r1.z + 0].xyzw, r2.xyzw
ld r2.xyzw, l(10, 0, 0, 0), t120.xyzw
ld r3.xyzw, l(0, 0, 0, 0), t125.xyzw
div r0.z, r3.y, r2.z
add r0.z, -r0.z, l(1.000000)
mad r4.x, r3.x, r0.z, r1.x
mul r4.y, r0.z, r3.x
mad r5.x, r3.x, r2.x, r1.x
eq r0.z, r2.w, l(1.000000)
mul r5.y, r2.x, r3.x
movc r0.zw, r0.zzzz, r4.xxxy, r5.xxxy
eq r2.x, r1.w, l(1.000000)
ld r4.xyzw, l(3, 0, 0, 0), t120.xyzw
ne r2.yzw, r4.wwwx, l(0.000000, 8.000000, 10.000000, 2.000000)
eq r4.xyz, r4.xxwx, l(2.000000, 12.000000, 8.000000, 0.000000)
and r3.z, r2.z, r2.x
and r4.yw, r2.xxxx, r4.xxxy
and r2.x, r4.z, r4.x
or r2.x, r2.w, r2.x
and r2.x, r2.x, r3.z
and r2.yw, r2.yyyy, r4.yyyw
and r2.yz, r2.zzzz, r2.yywy
mov r0.x, r1.x
movc r0.yz, r2.xxxx, r0.zzwz, r0.xxyx
mad r0.w, -r3.y, l(0.000555555569), l(1.000000)
mad r4.x, r3.x, r0.w, r0.x
mul r4.y, r0.w, r3.x
movc r0.yz, r2.zzzz, r4.xxyx, r0.yyzy
add r4.x, r3.x, r0.x
mov r4.y, r3.x
movc r0.xy, r2.yyyy, r4.xyxx, r0.yzyy
mov r6.x, r0.x
mov o1.z, r0.y
add r0.x, r1.w, r1.z
mul r6.z, r0.x, l(0.500000)
mul r6.y, r1.y, cb4[32].x
mov r6.w, r1.w
mad o1.xy, v2.xyxx, cb1[15].xzxx, cb1[15].ywyy
add r7.x, -r8.y, r6.w
mul r7.y, r8.x, r8.w
mad r7.x, r7.x, r7.y, r6.x
ne r7.y, l(1.000000), r6.w
movc r6.x, r7.y, r7.x, r6.x
mov o0.xyzw, r6.xyzw
ret
// Approximately 52 instruction slots used

///////////////////////////////// HLSL Code /////////////////////////////////
// // ---- Created with geo-11 v0.7.11 on Thu Oct  8 23:19:03 2026
//
// cbuffer TransformCB : register(b4)
// {
//   float4 mtx_palette[32] : packoffset(c0);
//   float4 y_scale : packoffset(c32);
// }
//
// cbuffer PerDrawCB : register(b1)
// {
//
//   struct
//   {
//     uint width;
//     uint height;
//     bool linear_filtering;
//   } textures[7] : packoffset(c0);
//
//   float4 combiner_inputs[6] : packoffset(c7);
//   float4 fog_color : packoffset(c13);
//   float4 grayscale_color : packoffset(c14);
//   float4 uv_transform[2] : packoffset(c15);
//   float4 texture_clamp[2] : packoffset(c17);
//   float4 fog_params : packoffset(c19);
//   float4 palette_params[2] : packoffset(c20);
//   float4 lod_params : packoffset(c22);
//   float4 uCustom[32] : packoffset(c23);
//   float4 debug_tint : packoffset(c55);
// }
//
//
//
// // 3Dmigoto declarations
// #define cmp -
// Texture1D<float4> IniParams : register(t120);
// Buffer<float4> StereoParams : register(t125);
//
//
// void main(
//   float4 v0 : POSITION0,
//   float v1 : MTXSLOT0,
//   float2 v2 : TEXCOORD0,
//   out float4 o0 : SV_POSITION0,
//   out float2 o1 : TEXCOORD0,
//   out float p1 : TEXCOORD1,
//   out uint o2 : P0)
// {
//   float4 r0,r1,r2,r3,r4,r5,r6,r7,r8;
//   uint4 bitmask, uiDest;
//   float4 fDest;
//
//   r8.xyzw = StereoParams.Load(float4(0,0,0,0)).xyzw;
//   o2.x = r8.z;
//   r0.y = 0;
//   r0.z = 0.5 + v1.x;
//   r0.z = trunc(r0.z);
//   r0.z = (uint)r0.z;
//   r0.z = (uint)r0.z << 2;
//   r0.w = (uint)r0.z;
//   r0.w = (int)r0.w;
//   r1.xyz = (int3)r0.www + int3(1,2,3);
//   r1.xyz = (int3)r1.xyz;
//   r1.xyz = (uint3)r1.xyz;
//   r2.xyzw = mtx_palette[r1.x].xyzw * v0.yyyy;
//   r2.xyzw = v0.xxxx * mtx_palette[r0.z].xyzw + r2.xyzw;
//   r2.xyzw = v0.zzzz * mtx_palette[r1.y].xyzw + r2.xyzw;
//   r1.xyzw = v0.wwww * mtx_palette[r1.z].xyzw + r2.xyzw;
//   r2.xyzw = IniParams.Load(float4(10,0,0,0)).xyzw;
//   r3.xyzw = StereoParams.Load(float4(0,0,0,0)).xyzw;
//   r0.z = r3.y / r2.z;
//   r0.z = 1 + -r0.z;
//   r4.x = r3.x * r0.z + r1.x;
//   r4.y = r3.x * r0.z;
//   r5.x = r3.x * r2.x + r1.x;
//   r0.z = cmp(r2.w == 1.000000);
//   r5.y = r3.x * r2.x;
//   r0.zw = r0.zz ? r4.xy : r5.xy;
//   r2.x = cmp(r1.w == 1.000000);
//   r4.xyzw = IniParams.Load(float4(3,0,0,0)).xyzw;
//   r2.yzw = cmp(r4.wwx != float3(8,10,2));
//   r4.xyz = cmp(r4.xxw == float3(2,12,8));
//   r3.z = r2.z ? r2.x : 0;
//   r4.yw = r2.xx ? r4.xy : 0;
//   r2.x = r4.z ? r4.x : 0;
//   r2.x = (int)r2.w | (int)r2.x;
//   r2.x = r2.x ? r3.z : 0;
//   r2.yw = r2.yy ? r4.yw : 0;
//   r2.yz = r2.zz ? r2.yw : 0;
//   r0.x = r1.x;
//   r0.yz = r2.xx ? r0.zw : r0.xy;
//   r0.w = -r3.y * 0.000555555569 + 1;
//   r4.x = r3.x * r0.w + r0.x;
//   r4.y = r3.x * r0.w;
//   r0.yz = r2.zz ? r4.xy : r0.yz;
//   r4.x = r0.x + r3.x;
//   r4.y = r3.x;
//   r0.xy = r2.yy ? r4.xy : r0.yz;
//   r6.x = r0.x;
//   p1.x = r0.y;
//   r0.x = r1.z + r1.w;
//   r6.z = 0.5 * r0.x;
//   r6.y = y_scale.x * r1.y;
//   r6.w = r1.w;
//   o1.xy = v2.xy * uv_transform[0].xz + uv_transform[0].yw;
//   r7.x = r6.w + -r8.y;
//   r7.y = r8.w * r8.x;
//   r7.x = r7.x * r7.y + r6.x;
//   r7.y = cmp(1.000000 != r6.w);
//   r6.x = r7.y ? r7.x : r6.x;
//   o0.xyzw = r6.xyzw;
//   return;
// }
/////////////////////////////////////////////////////////////////////////////
